SPB Git

spb/zyquo-cloud Public MIT

Native macOS AI chat client for 12 cloud providers — your keys, every cloud model, one beautiful chat.

Swift 97.4% Shell 1.7% Makefile 1%

phase0: repo scaffold, live provider probes (models + SSE), signing notes from zyquo-term

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
simon-pierre boucher committed 11 days ago (Jul 30, 2026)

Showing 17 changed files with +2,221 and −0

added .gitignore +7 −0
@@ -0,0 +1,7 @@
1 +.build/
2 +.DS_Store
3 +*.icns.tmp
4 +.env.keys
5 +dist/
6 +*.zip
7 +*.dmg
added CLAUDE.md +354 −0
@@ -0,0 +1,354 @@
1 +# CLAUDE.md — Zyquo Cloud
2 +
3 +## Project Identity
4 +
5 +**Zyquo Cloud** is a legendary, native macOS AI chat client written in **Swift + SwiftUI**, built **entirely without Xcode** (Swift Package Manager + command-line toolchain only). It is inspired by MindMac but must significantly surpass it in features, polish, and provider coverage.
6 +
7 +The name matters: **Zyquo Cloud** is the cloud edition of the Zyquo family — it connects exclusively to **cloud AI model APIs**. Users bring their own API keys for 12 different cloud AI providers and can chat with any model from any of them, switch models mid-conversation, and manage everything from a beautiful, fast, truly native macOS interface. The "Cloud" identity must be reflected everywhere: app name, bundle, wordmark, and above all the app icon. The visual design is a first-class deliverable: Zyquo Cloud must look like an app Apple would feature.
8 +
9 +**Naming conventions (use these consistently everywhere):**
10 +- Display name / product name: `Zyquo Cloud`
11 +- App bundle: `Zyquo Cloud.app`
12 +- Bundle identifier: `com.zyquo.cloud`
13 +- Executable / SPM target: `ZyquoCloud` (no space)
14 +- Data folder: `~/Library/Application Support/ZyquoCloud/`
15 +- Repo module prefix in file headers: `Zyquo Cloud`
16 +
17 +---
18 +
19 +## 📋 MANDATORY FILE HEADER — EVERY CODE FILE
20 +
21 +**Every single code file you write** (all `.swift` files, plus `Makefile`, shell scripts, `Package.swift`, verification scripts — anything containing code) **MUST begin with this header comment**, adapted to the file's comment syntax:
22 +
23 +```swift
24 +//
25 +// <FileName>.swift
26 +// Zyquo Cloud
27 +//
28 +// Author: Simon-Pierre Boucher
29 +// Mail: contact@spboucher.ai
30 +//
31 +```
32 +
33 +For shell scripts / Makefiles:
34 +
35 +```bash
36 +#
37 +# <filename>
38 +# Zyquo Cloud
39 +#
40 +# Author: Simon-Pierre Boucher
41 +# Mail: contact@spboucher.ai
42 +#
43 +```
44 +
45 +No exceptions. If you ever create or refactor a file and the header is missing, add it. Before declaring the project done, run a sweep over the repository to verify every code file carries the header.
46 +
47 +---
48 +
49 +## 🧭 METHODOLOGY — WORK METHODICALLY, KEEP EVERYTHING COHERENT
50 +
51 +You must execute this project **strictly in phase order (0 → 8)**. Do not jump ahead, do not interleave phases, do not start the UI before the provider layer compiles, and do not write provider code before Phase 0 research is complete.
52 +
53 +**Working rules:**
54 +
55 +1. **One phase at a time.** At the start of each phase, write a short plan (checklist) into `docs/PLAN.md`; check items off as you complete them. At the end of each phase, perform a **phase checkpoint**: build the project (`swift build`), run what's runnable, fix all warnings/errors, and write a 3–5 line phase summary in `docs/PLAN.md` before moving on.
56 +2. **Phase gates:** Phase 0 is complete only when `docs/PROVIDERS.md` covers all 12 providers with all 8 research points. Phase 3 is complete only when the vault encrypts/decrypts round-trip in a test. Phase 4 spec is the contract for all UI in Phase 6. Phase 7 is complete only when the results table is fully green. Phase 8 is complete only when `spctl` says "Notarized Developer ID".
57 +3. **Single source of truth, everywhere:**
58 + - Model data → only from `ModelCatalog` (itself generated from `docs/PROVIDERS.md`). Never hardcode a model ID in a view or client.
59 + - Colors, fonts, spacing, radii → only from `ZyquoTheme` design tokens. Zero raw hex values or magic numbers in views.
60 + - Provider behavior differences (auth header, endpoint, params supported) → only in the provider client layer, never leaking into ViewModels or Views.
61 + - Product naming → only per the conventions above. Never `Zyquo` alone, never `ZyquoCloud` in user-facing text.
62 +4. **Coherence sweeps:** after Phases 3, 6, and 8, do a dedicated consistency pass over the whole codebase: naming conventions uniform (types `UpperCamelCase`, one term per concept — e.g., always `AIModel`, never a mix of `Model`/`LLM`/`AIModel`), no dead code, no duplicated logic between provider clients (shared code lives in `OpenAICompatibleClient`), file headers present, folder structure matches Phase 2 exactly.
63 +5. **Compile early, compile often.** Never accumulate more than one file of unbuilt changes. If the build breaks, fixing it is the immediate priority.
64 +6. **Commit discipline:** one logical unit per commit, message prefixed by phase (e.g., `phase4: add ZyquoTheme color tokens`). Never commit secrets.
65 +7. **When research and reality disagree** (e.g., a model in `docs/PROVIDERS.md` fails in Phase 7), update `docs/PROVIDERS.md` AND `ModelCatalog` together — the two must never drift apart.
66 +
67 +---
68 +
69 +## ⚠️ PHASE 0 — MANDATORY INTENSIVE WEB RESEARCH (DO THIS FIRST, BEFORE WRITING ANY CODE)
70 +
71 +Before writing a single line of Swift, you MUST perform an **intensive, exhaustive web research session** to document every provider below. This research must be **perfect and complete** — the entire app depends on it. Do NOT rely on your training data: model catalogs, endpoints, and parameters change constantly. Search the official documentation of each provider.
72 +
73 +For **EACH** of the 12 providers below, research and document in `docs/PROVIDERS.md`:
74 +
75 +1. **Base API URL** and all relevant endpoints (chat completions, model listing, etc.)
76 +2. **Authentication method** (header name, `Bearer` vs `x-api-key`, etc.)
77 +3. **The COMPLETE, CURRENT list of available models** — exact model IDs as used in API calls, context window sizes, max output tokens, pricing if documented, and capabilities (vision, function calling, reasoning/thinking modes, streaming, JSON mode)
78 +4. **Request/response format** — is it OpenAI-compatible? If not, document the exact schema (e.g., Anthropic's Messages API, Gemini's `generateContent`)
79 +5. **Streaming format** (SSE structure, delta format, stop events)
80 +6. **Special parameters** (e.g., `reasoning_effort`, `thinking`, Perplexity's search/citations, Qwen's `enable_thinking`, DeepSeek reasoner specifics)
81 +7. **Rate limits and error response formats**
82 +8. **Whether a `/models` listing endpoint exists** (so Zyquo Cloud can also fetch models dynamically at runtime)
83 +
84 +### The 12 providers (all mandatory):
85 +
86 +| Provider | Notes to verify during research |
87 +|---|---|
88 +| **OpenAI** | Full GPT model catalog, reasoning models, vision, endpoints |
89 +| **Anthropic** | Messages API (NOT OpenAI-compatible), all Claude models, `anthropic-version` header |
90 +| **xAI (Grok)** | OpenAI-compatible, full Grok catalog |
91 +| **Mistral** | La Plateforme API, full catalog including codestral, magistral, etc. |
92 +| **Google Gemini** | `generativelanguage.googleapis.com`, native format AND OpenAI-compat endpoint — document both, full Gemini catalog |
93 +| **Alibaba Qwen (DashScope)** | International endpoint (`dashscope-intl.aliyuncs.com`) vs China endpoint, OpenAI-compatible mode, full Qwen catalog |
94 +| **DeepSeek** | `deepseek-chat`, `deepseek-reasoner`, reasoning content in stream |
95 +| **Kimi (Moonshot AI)** | `api.moonshot.ai` (international) vs `.cn`, kimi-k2 and full catalog |
96 +| **Perplexity** | Sonar models, search citations in responses, search-specific params |
97 +| **Together AI** | Huge open-model catalog (Llama, Qwen, DeepSeek, Mixtral hosted…) — document the main/serverless models |
98 +| **DeepInfra** | OpenAI-compatible, document main hosted models |
99 +| **Cerebras** | OpenAI-compatible, ultra-fast inference, full model catalog |
100 +
101 +**Research quality bar:** For every provider, visit the OFFICIAL docs (platform.openai.com, docs.anthropic.com, docs.x.ai, docs.mistral.ai, ai.google.dev, DashScope docs, api-docs.deepseek.com, platform.moonshot.ai, docs.perplexity.ai, docs.together.ai, deepinfra.com/docs, inference-docs.cerebras.ai). Cross-check with each provider's `/models` endpoint spec. Write everything into `docs/PROVIDERS.md` before coding. This document is the single source of truth for the built-in model catalog shipped inside Zyquo Cloud.
102 +
103 +---
104 +
105 +## PHASE 1 — Project Setup (No Xcode)
106 +
107 +- **Toolchain:** Swift Package Manager only. `Package.swift` with executable target `ZyquoCloud`. Build with `swift build -c release`.
108 +- **App bundle:** Write a `Makefile` (or `build.sh`) that:
109 + 1. Runs `swift build -c release`
110 + 2. Assembles a proper `Zyquo Cloud.app` bundle (`Contents/MacOS/ZyquoCloud`, `Contents/Info.plist`, `Contents/Resources/AppIcon.icns`)
111 + 3. Signs the app (see PHASE 8 — real Developer ID signing + notarization; ad-hoc only as a dev fallback)
112 +- **Info.plist** must include: `CFBundleName` / `CFBundleDisplayName` = `Zyquo Cloud`, bundle ID `com.zyquo.cloud`, `LSMinimumSystemVersion` (macOS 13.0+), `NSHighResolutionCapable`, `CFBundleIconFile`, `LSApplicationCategoryType` (`public.app-category.productivity`), version/build numbers.
113 +- **Entry point:** `@main` SwiftUI `App` struct. Ensure proper activation when launched outside Finder (`NSApplication.shared.setActivationPolicy(.regular)` + activate).
114 +- **No third-party dependencies unless truly necessary.** Prefer Foundation + SwiftUI + CryptoKit. Apple's `swift-markdown` via SPM is acceptable for Markdown parsing.
115 +- Minimum deployment: macOS 13 (Ventura). arm64 mandatory; universal binary (arm64 + x86_64 via `lipo`) is the target for release builds.
116 +
117 +---
118 +
119 +## PHASE 2 — Architecture
120 +
121 +```
122 +Sources/ZyquoCloud/
123 +├── App/ # @main, window setup, menu bar extra
124 +├── DesignSystem/ # ZyquoTheme, colors, typography, spacing, reusable components
125 +├── Models/ # Conversation, Message, Provider, AIModel, Persona, etc.
126 +├── Providers/
127 +│ ├── ProviderProtocol.swift
128 +│ ├── OpenAICompatibleClient.swift # OpenAI, xAI, Mistral, DashScope, DeepSeek, Kimi, Perplexity, Together, DeepInfra, Cerebras, Gemini-compat
129 +│ ├── AnthropicClient.swift # native Messages API
130 +│ └── GeminiClient.swift # native generateContent (if compat mode is insufficient)
131 +├── Services/
132 +│ ├── SecureKeyStore.swift # custom encryption (Phase 3)
133 +│ ├── PersistenceService.swift # conversations as JSON in Application Support
134 +│ ├── StreamingService.swift # SSE parsing
135 +│ └── ModelCatalog.swift # built from PROVIDERS.md + dynamic /models fetch
136 +├── ViewModels/
137 +└── Views/
138 +```
139 +
140 +- **All networking with `URLSession`** (`bytes(for:)` for SSE streaming). No external HTTP libs.
141 +- **Concurrency:** structured concurrency (`async/await`, `AsyncSequence`, `@MainActor` for UI state).
142 +- **Persistence:** JSON files in `~/Library/Application Support/ZyquoCloud/`.
143 +
144 +---
145 +
146 +## PHASE 3 — API Key Storage: CUSTOM ENCRYPTION (NO KEYCHAIN)
147 +
148 +**Explicit requirement: DO NOT use the macOS Keychain.** Keys are encrypted by the app itself.
149 +
150 +Implement `SecureKeyStore`:
151 +
152 +1. **Encryption:** AES-256-GCM via **CryptoKit**.
153 +2. **Master key derivation:** HKDF (CryptoKit) from:
154 + - A random 32-byte salt generated on first launch, stored alongside the vault
155 + - Machine-bound entropy: hardware UUID (`IOPlatformUUID` via IOKit) + user home path
156 + - A static app pepper compiled into the binary (obfuscated — assembled at runtime, never a plain string literal)
157 +3. **Vault file:** single encrypted vault `~/Library/Application Support/ZyquoCloud/vault.zq` — format `[salt][nonce][ciphertext+tag]`; plaintext is a JSON dictionary `{"openai": "sk-...", "anthropic": "sk-ant-...", ...}`.
158 +4. Keys decrypted into memory only when needed, never logged, never written to disk in plaintext, redacted everywhere in the UI (show only the last 4 characters).
159 +5. Settings UI: per-provider secure fields, a "Test" button per provider, masked display of saved keys, per-key delete.
160 +
161 +---
162 +
163 +## PHASE 4 — DESIGN SYSTEM & UI SPECIFICATION (LIGHT THEME, PIXEL-PERFECT)
164 +
165 +Design is a hard requirement, not decoration. Zyquo Cloud ships with a **flagship light theme** that must be flawless. Build a real design system in `Sources/ZyquoCloud/DesignSystem/` and use it everywhere — zero hardcoded colors or magic numbers in views.
166 +
167 +### 4.1 — Light theme specification (the default, must be perfect)
168 +
169 +**Color tokens** (define in `ZyquoTheme`, all as semantic tokens). The palette leans into the **Cloud** identity: airy off-white sky canvas, sky-to-indigo accent.
170 +
171 +| Token | Value (light) | Usage |
172 +|---|---|---|
173 +| `background` | `#FAFBFD` (airy, faintly cool off-white — like high daylight sky) | Main chat canvas |
174 +| `surface` | `#FFFFFF` | Cards, message bubbles (assistant), input bar |
175 +| `surfaceSecondary` | `#F2F4F8` | Hover states, code block background |
176 +| `sidebar` | `NSVisualEffectView` `.sidebar` material (translucent) | Sidebar |
177 +| `accent` | `#4E6AF0` (sky-indigo) | Primary actions, selection, links, send button |
178 +| `accentSubtle` | `#EBEFFD` | Selected conversation row, user bubble tint |
179 +| `textPrimary` | `#1A1C22` | Body text |
180 +| `textSecondary` | `#6B7080` | Timestamps, metadata, captions |
181 +| `textTertiary` | `#9EA3B0` | Placeholders, disabled |
182 +| `border` | `#E4E7EE` | Hairline separators (0.5pt) |
183 +| `success` / `warning` / `danger` | `#2FA36B` / `#D9822B` / `#D64545` | Status, key test results, destructive actions |
184 +
185 +Rules: never pure black text on pure white; hairlines at 0.5pt; shadows extremely soft (`black.opacity(0.06)`, radius 12, y 2) and used sparingly (floating panels, popovers only). Dark theme derives from the same tokens (define values too — a deep night-sky navy base, not flat gray), but the **light theme is the flagship** and gets first-class attention.
186 +
187 +**Typography** (SF Pro system font, define as tokens):
188 +- `title` 20pt semibold — window/section titles
189 +- `body` 13.5pt regular, line-height 1.45 — messages (this generous line height is mandatory for readability)
190 +- `bodyEmphasis` 13.5pt medium
191 +- `caption` 11pt regular — timestamps, token counts
192 +- `code` 12.5pt SF Mono — code blocks and inline code
193 +- User can adjust chat font size (12–18pt) in Settings; everything scales cleanly.
194 +
195 +**Spacing scale:** 4 / 8 / 12 / 16 / 20 / 24 / 32. **Corner radii:** 6 (small controls), 10 (bubbles, cards), 14 (floating panels). Standard content insets: 16pt. Max message column width: 760pt, centered — never full-bleed text on wide windows.
196 +
197 +### 4.2 — Layout & screens (exact spec)
198 +
199 +**Main window**`NavigationSplitView`, min size 980×640, default 1240×800:
200 +
201 +- **Sidebar (260pt, translucent material):** "Zyquo Cloud" wordmark top-left (wordmark uses the icon's cloud-Z glyph at 16pt beside the name); search field; "New Chat" prominent button; conversation list grouped by *Pinned / Today / Yesterday / Previous 7 Days / Older*; each row = title (1 line, truncated) + model badge + relative time; hover reveals pin/delete icons; selected row uses `accentSubtle` with 6pt radius; folders/tags section at bottom; footer with settings gear + usage summary.
202 +- **Chat area:**
203 + - *Header (52pt, hairline below):* conversation title (inline-editable), centered **model chip** (provider logo glyph + model name, click → model picker popover), right side: compare-mode button, export, info popover (system prompt, parameters, total tokens & cost).
204 + - *Transcript:* user messages right-aligned in `accentSubtle` bubbles (radius 10); assistant messages left-aligned on `surface` with the provider glyph as avatar; 16pt vertical rhythm between turns; timestamps and per-message token/cost in `caption` appearing on hover; smooth auto-scroll during streaming with a "jump to bottom" pill when scrolled up; collapsible "Thinking…" section (chevron, `textSecondary`, monospaced) for reasoning models; Perplexity citations as numbered chips under the message.
205 + - *Markdown rendering:* full support — headings, tables (bordered, alternating row tint `surfaceSecondary`), blockquotes (3pt accent left bar), lists, links in `accent`; **code blocks**: `surfaceSecondary` background, 10pt radius, language label top-left, copy button top-right, SF Mono, native syntax highlighting via `AttributedString` (build a lightweight highlighter for Swift, Python, JS/TS, JSON, HTML/CSS, Bash, SQL, Go, Rust, C/C++).
206 + - *Input bar:* floating card docked at bottom (surface, radius 14, soft shadow, 12pt margin); multiline auto-growing text editor (max ~10 lines then scroll); left: attach button (images/files); right: parameter quick-toggle + circular accent **send button** (⌘↩); attached images shown as 56pt thumbnails above the field with remove buttons; drag-and-drop highlights the bar with a dashed accent border.
207 +- **Empty state:** centered Zyquo Cloud icon, greeting, 4 suggested prompt cards, model chip — must look intentional and beautiful, never blank.
208 +
209 +**Settings window** (`Settings` scene, native toolbar-style tabs, 720×520):
210 +1. **Providers & Keys** — provider list with logo glyph, masked key, status dot (green verified / gray unset / red failed), inline "Test" button with spinner → ✅/❌ + latency
211 +2. **Models** — catalog browser per provider: context window, capabilities badges (vision / reasoning / tools), pricing, favorite star, "Refresh from API" button, custom model/endpoint editor
212 +3. **Appearance** — Light/Dark/System, accent color choices (sky-indigo default + graphite, teal, amber, rose), chat font size slider with live preview
213 +4. **Shortcuts** — recordable key bindings
214 +5. **Advanced** — streaming toggle, retry policy, default parameters, data folder reveal, export/import all data
215 +
216 +**Quick Chat panel** (global hotkey ⌥Space): floating Spotlight-style panel, 640pt wide, radius 14, prominent shadow, single input + model chip; answers expand below; ESC dismisses; appears on the active screen, vertically at 30%.
217 +
218 +**Compare mode:** 2–4 vertical columns, one model chip each, same prompt broadcast, independent streaming, per-column copy/regenerate.
219 +
220 +### 4.3 — Motion & micro-interactions
221 +- Streaming text appears smoothly (no jitter, no layout thrash); subtle blinking caret at the stream tail
222 +- Message send: input clears instantly, user bubble animates in with a 150ms ease-out fade+rise
223 +- Hover states on every interactive element (80ms ease); button presses scale to 0.97
224 +- Model picker popover: springy but fast (`.snappy`)
225 +- Never block the main thread; 60fps at all times, including during streaming into long conversations (use lazy rendering for transcripts)
226 +
227 +### 4.4 — Design quality gate
228 +Before declaring the project done, review every screen against this checklist: consistent token usage, aligned baselines, no clipped text, correct dark-mode derivation, clean scaling with the font slider, all states designed (empty, loading, error, streaming, disabled). If a screen looks "developer-made" rather than "designed", iterate until it doesn't.
229 +
230 +---
231 +
232 +## PHASE 5 — APP ICON: ULTRA-LEGENDARY "CLOUD" ICON, DESIGNED IN SVG
233 +
234 +The icon is a deliverable of its own and it must embody the **Cloud** identity — this is Zyquo *Cloud*, the app that talks to cloud AI APIs. It must be **designed in SVG first** (`assets/icon/zyquo-cloud.svg`), then converted to `.icns`.
235 +
236 +**Creative direction — make it iconic:**
237 +- **Concept:** a fusion of the **"Z" monogram and a cloud form**. Two strong directions to explore (pick and refine the best after rendering both):
238 + 1. *Z-in-cloud:* a sleek white cloud silhouette (soft, modern, geometric — not a cartoon puff) floating on the gradient canvas, with a bold accent-colored **Z** cut through or embossed into the cloud, its diagonal stroke rendered as a luminous beam crossing the cloud like light through sky.
239 + 2. *Cloud-built-Z:* the Z itself constructed so its upper and lower horizontal strokes swell into subtle cloud-curved terminals, reading simultaneously as a letterform and a cloud — one shape, two meanings.
240 +- **Canvas:** macOS Big Sur–style **rounded squircle** (Apple squircle curvature, not a plain rounded rect).
241 +- **Palette (sky story, coherent with the app's light theme):** vertical gradient background from clear sky blue to deep indigo (`#6FA8FF → #4E6AF0 → #3A3F9E` territory — tune for richness and depth), cloud/monogram in white/near-white with a very subtle inner luminous gradient; one restrained highlight (soft top light, as if sunlit from above) for atmosphere and depth. Optionally a whisper of a second, distant cloud layer for parallax depth — only if it stays clean at small sizes. No gimmicks, no 10-color gradients, no bevel-heavy 2010 look — modern, airy, premium, unmistakably "cloud".
242 +- **Precision:** clean paths, `viewBox="0 0 1024 1024"`, optical (not mathematical) centering, stroke weights that survive downscaling.
243 +- **Iterate:** render the SVG to PNG at 1024/512/256/128/64/32/16, LOOK at the results, and refine until it is crisp and striking at every size — especially 16px and 32px. If small sizes get muddy, bake a simplified small-size variant (e.g., drop the secondary cloud layer, thicken the Z) into the icns for 16/32px.
244 +
245 +**Pipeline (scripted in the Makefile):**
246 +1. `zyquo-cloud.svg` → PNGs at 16, 32, 64, 128, 256, 512, 1024 (use `rsvg-convert`, or a small Swift rasterizer with `NSImage`/CoreGraphics if librsvg is unavailable)
247 +2. Assemble `AppIcon.iconset` (including `@2x` entries) → `iconutil -c icns``Contents/Resources/AppIcon.icns`
248 +3. The SVG source stays in the repo as the single source of truth.
249 +
250 +Also derive from the same SVG: a monochrome **menu bar template icon** (18×18pt, `isTemplate = true` — the cloud-Z silhouette works beautifully as a template glyph) and the in-app empty-state glyph and sidebar wordmark glyph.
251 +
252 +---
253 +
254 +## PHASE 6 — Features (This is where Zyquo Cloud becomes LEGENDARY)
255 +
256 +### Core chat
257 +- Multi-conversation sidebar with search, pin, rename, delete, folders/tags
258 +- Full **streaming** with a stop button
259 +- **Model picker per conversation AND per message** — switch provider/model mid-conversation
260 +- Message actions: copy, edit & resend, regenerate (optionally with a different model), delete, quote-reply
261 +- **Reasoning/thinking display** (DeepSeek Reasoner, Qwen thinking, Claude extended thinking, OpenAI reasoning summaries when available) in the collapsible section
262 +- **Perplexity citations** as clickable numbered sources
263 +- Token/usage per message and per conversation (from API `usage`), with estimated cost from Phase 0 pricing
264 +- System prompt per conversation + global default
265 +- Per-conversation parameters: temperature, top_p, max tokens, frequency/presence penalty — only show what the selected provider supports
266 +
267 +### Vision & attachments
268 +- Drag & drop or paste **images** for vision-capable models (base64 per provider format)
269 +- Drag & drop **text files** (txt, md, code, csv, json) — contents injected into the message
270 +
271 +### Productivity (surpassing MindMac)
272 +- **Prompt Library**: ship ≥50 high-quality templates (writing, coding, analysis, translation…) + user templates with `{{input}}` variables
273 +- **Personas**: system prompt + preferred model + parameters, selectable per conversation
274 +- **Quick Chat** global panel (Phase 4.2)
275 +- **Compare mode** (Phase 4.2)
276 +- **Export**: conversation → Markdown, and → PDF (`ImageRenderer`/`NSPrintOperation`)
277 +- Full-text **search across all conversations**
278 +- Auto-generated conversation titles (cheap model from the same provider after the first exchange)
279 +
280 +### macOS-native polish
281 +- Shortcuts: ⌘N new chat, ⌘K model switcher/command palette, ⌘F search, ⌘↩ send, ⌘⇧E export, ⌥Space Quick Chat
282 +- **Menu bar extra** (toggleable) using the template icon
283 +- Launch fast, feel instant — no jank
284 +
285 +### Model management
286 +- Complete built-in catalog from Phase 0 (`ModelCatalog`)
287 +- **Dynamic model fetching** from `/models` endpoints (refresh in Settings)
288 +- **Custom models** (custom ID + base URL) → free support for any OpenAI-compatible cloud endpoint (OpenRouter, Groq, etc.)
289 +- Favorite models pinned in the picker
290 +
291 +---
292 +
293 +## PHASE 7 — API VERIFICATION WITH REAL KEYS (MANDATORY)
294 +
295 +The user will provide **real API keys for all 12 providers**. You MUST:
296 +
297 +1. Build a verification harness (`zyquo-verify` CLI target or script) that, for **every provider**:
298 + - Lists models via `/models` where available and diffs against the built-in catalog
299 + - Sends a minimal chat completion (`"Reply with exactly: OK"`) to **every chat model** in the catalog (skip embedding/audio/image-only models)
300 + - Tests **streaming** on at least one model per provider
301 + - Tests **vision** on one vision-capable model per provider that supports it
302 +2. Produce a results table: provider → model → ✅/❌ → error message if failed.
303 +3. **Fix every failure** (wrong ID, endpoint, header, schema) and iterate until everything that should work, works. Remove or flag genuinely deprecated models.
304 +4. Never commit, log, or embed the user's keys anywhere. Keys live only in the encrypted vault or env vars during testing.
305 +
306 +---
307 +
308 +## PHASE 8 — SIGNING & NOTARIZATION (REAL, NOT AD-HOC)
309 +
310 +The user has an existing, working signing/notarization setup for another project. **Before doing anything, read and inspect the folder:**
311 +
312 +```
313 +/Users/simon-pierreboucher/Desktop/other/OTHER/zyquo-term
314 +```
315 +
316 +In that folder, locate everything related to signing and notarization: build/notarization scripts, Makefile targets, the **Developer ID Application certificate identity name**, the **Team ID**, the **Apple ID / app-specific password or stored `notarytool` keychain profile name**, entitlements files, and any `.env`/config holding these values. **Reuse the exact same identity, Team ID, and notarytool credentials/profile for Zyquo Cloud.** Do not invent placeholder values — extract the real ones from that folder, and never print secrets into logs or commit them to the repo.
317 +
318 +Then implement `make release`:
319 +
320 +1. Build universal release binary (arm64 + x86_64, `lipo`), assemble `Zyquo Cloud.app`
321 +2. Write `entitlements.plist`**Hardened Runtime** enabled; only the entitlements actually needed (network client; no unnecessary exceptions). Base it on what zyquo-term uses if applicable.
322 +3. `codesign --force --options runtime --timestamp --entitlements entitlements.plist --sign "Developer ID Application: <identity from zyquo-term>" "Zyquo Cloud.app"` (sign nested code first if any)
323 +4. Zip with `ditto -c -k --keepParent`
324 +5. `xcrun notarytool submit "Zyquo Cloud.zip" --keychain-profile "<profile from zyquo-term>" --wait` (or `--apple-id/--team-id/--password` if that's how zyquo-term does it)
325 +6. On acceptance: `xcrun stapler staple "Zyquo Cloud.app"`, then verify with `spctl -a -vv "Zyquo Cloud.app"` (must say "accepted, source=Notarized Developer ID") and `stapler validate`
326 +7. Optionally produce a distributable DMG (`hdiutil`) with the app + Applications symlink, sign and staple the DMG too
327 +8. If notarization fails, fetch the log (`notarytool log`), fix every issue (signature, entitlements, hardened runtime), and resubmit until it passes.
328 +
329 +Keep a `make dev` target with ad-hoc signing for fast local iteration.
330 +
331 +---
332 +
333 +## Engineering Standards
334 +
335 +- Swift 5.9+ (Swift 6 mode if the toolchain allows); zero compiler warnings
336 +- Every provider request/response modeled with `Codable` structs — no dictionary spelunking
337 +- Robust error handling: map HTTP + provider error bodies to clear human messages ("Invalid API key for Mistral", "Rate limited — retrying in 20s") with exponential backoff on 429/5xx
338 +- Long read timeouts for streaming; cancellation everywhere
339 +- All UI strings centralized (future localization-ready); design tokens only — no hardcoded colors/sizes in views
340 +- `README.md` with build instructions (`make` → dev app, `make release` → notarized app)
341 +- Commit in logical increments with clear messages
342 +
343 +## Definition of Done
344 +
345 +- `make release` produces a **Developer ID–signed, notarized, stapled** `Zyquo Cloud.app` (verified by `spctl`), built with zero Xcode
346 +- The cloud-themed SVG icon exists, is genuinely striking at all sizes, and is embedded as `.icns` + menu bar template icon; the sidebar wordmark uses the same glyph
347 +- The light theme matches the Phase 4 spec exactly and passes the design quality gate; dark theme derived and correct
348 +- Naming is coherent everywhere: `Zyquo Cloud` in all user-facing text, `com.zyquo.cloud` bundle ID, `ZyquoCloud` target/data folder
349 +- All 12 providers configured; keys encrypted with the custom vault (no Keychain anywhere in the codebase)
350 +- The verification harness shows a green table across all providers/models with the user's real keys
351 +- All features in Phase 6 implemented and functional
352 +- **Every code file starts with the mandatory Author/Mail header** (verified by a repository-wide sweep)
353 +- `docs/PLAN.md` shows every phase completed with its checkpoint summary; `docs/PROVIDERS.md` and `ModelCatalog` are in perfect sync
354 +- Zyquo Cloud feels like a polished, legendary native Mac app — clearly better than MindMac
added docs/PLAN.md +17 −0
@@ -0,0 +1,17 @@
1 +# Zyquo Cloud — Build Plan
2 +
3 +## Phase 0 — Provider Research (in progress)
4 +
5 +- [ ] Live-probe `/models` endpoints of all 12 providers with real keys (authoritative current model IDs)
6 +- [ ] Web research: official docs for each provider (auth, endpoints, schema, streaming, special params, rate limits, pricing)
7 +- [ ] Write `docs/PROVIDERS.md` covering all 12 providers × 8 research points
8 +- [ ] Phase checkpoint: PROVIDERS.md complete + summary
9 +
10 +## Phase 1 — Project Setup (pending)
11 +## Phase 2 — Architecture (pending)
12 +## Phase 3 — SecureKeyStore (pending)
13 +## Phase 4 — Design System (pending)
14 +## Phase 5 — App Icon (pending)
15 +## Phase 6 — Features (pending)
16 +## Phase 7 — API Verification (pending)
17 +## Phase 8 — Signing & Notarization (pending)
added docs/SIGNING.md +34 −0
@@ -0,0 +1,34 @@
1 +<!--
2 + SIGNING.md
3 + Zyquo Cloud
4 + Author: Simon-Pierre Boucher
5 + Mail: contact@spboucher.ai
6 +-->
7 +
8 +# Signing & Notarization — extracted from zyquo-term (Phase 8 reference)
9 +
10 +Inspected `/Users/simon-pierreboucher/Desktop/other/OTHER/zyquo-term` on 2026-07-30.
11 +Both the certificate and the notary profile were verified present and working on this machine
12 +(`security find-identity` lists the cert; `notarytool history` shows a recent **Accepted** submission).
13 +
14 +## Values to reuse
15 +
16 +| Item | Value |
17 +|---|---|
18 +| Signing identity | `Developer ID Application: Simon-Pierre Boucher (3YM54G49SN)` |
19 +| Team ID | `3YM54G49SN` |
20 +| notarytool credentials | Keychain profile **`MacLustr-Notarize`** (stored in login keychain — no Apple ID/password needed in scripts) |
21 +| Entitlements pattern | Hardened runtime at signing time; minimal entitlements plist (zyquo-term ships only `com.apple.security.cs.allow-jit = false`; no sandbox). Zyquo Cloud needs no extra entitlements either — outbound network needs none outside the sandbox. |
22 +
23 +## Pipeline (from zyquo-term `scripts/notarize.sh` + `scripts/package-app.sh`)
24 +
25 +1. `swift build -c release` → assemble `dist/Zyquo Cloud.app` (Contents/MacOS/ZyquoCloud, Info.plist, Resources/AppIcon.icns, SPM `.bundle` resources copied into Resources).
26 +2. Sign nested executables first, then the bundle:
27 + `codesign --force --options runtime --timestamp --entitlements <plist> --sign "Developer ID Application: Simon-Pierre Boucher (3YM54G49SN)" <target>`
28 +3. `codesign --verify --deep --strict --verbose=2`
29 +4. DMG: copy app + `/Applications` symlink into temp dir → `hdiutil create -volname ... -format UDZO` → codesign the DMG.
30 +5. `xcrun notarytool submit <dmg-or-zip> --keychain-profile "MacLustr-Notarize" --wait`
31 +6. `xcrun stapler staple` the DMG **and** the .app; verify with `spctl -a -vv` ("Notarized Developer ID").
32 +
33 +zyquo-term notarizes the DMG (app stapled too). For Zyquo Cloud, `make release` will do: zip via
34 +`ditto -c -k --keepParent` for notarization, staple the app, then optionally build + notarize the DMG.
added docs/research/live-probes.md +64 −0
@@ -0,0 +1,64 @@
1 +<!--
2 + live-probes.md
3 + Zyquo Cloud
4 + Author: Simon-Pierre Boucher
5 + Mail: contact@spboucher.ai
6 +-->
7 +
8 +# Live API probes — 2026-07-30 (real keys, ground truth)
9 +
10 +All 12 providers were probed live today. **Every key authenticated and every provider returned a
11 +successful streamed chat completion (HTTP 200).** Raw captures in `/tmp/zyquo-probe/` (models JSON
12 ++ `sse/*.txt`).
13 +
14 +## `/models` listing results
15 +
16 +| Provider | Endpoint | Result |
17 +|---|---|---|
18 +| OpenAI | `GET https://api.openai.com/v1/models` (Bearer) | 200 — 132 models |
19 +| Anthropic | `GET https://api.anthropic.com/v1/models?limit=100` (x-api-key + anthropic-version) | 200 — 11 models |
20 +| xAI | `GET https://api.x.ai/v1/models` (Bearer) | 200 — 10 models |
21 +| Mistral | `GET https://api.mistral.ai/v1/models` (Bearer) | 200 — 60 models |
22 +| Gemini | `GET https://generativelanguage.googleapis.com/v1beta/models?key=…` | 200 — 41 generateContent-capable |
23 +| Qwen/DashScope | `GET https://dashscope-intl.aliyuncs.com/compatible-mode/v1/models` (Bearer) | 200 — 151 models |
24 +| DeepSeek | `GET https://api.deepseek.com/models` (Bearer) | 200 — 2 models: `deepseek-v4-flash`, `deepseek-v4-pro` |
25 +| Kimi/Moonshot | `GET https://api.moonshot.ai/v1/models` (Bearer) | 200 — 12 models (kimi-k2.5/k2.6/k2.7-code[-highspeed]/k3, moonshot-v1 family) |
26 +| Perplexity | `GET https://api.perplexity.ai/models` | **404 — no models endpoint** (catalog must be built-in from docs) |
27 +| Together | `GET https://api.together.xyz/v1/models` (Bearer) | 200 — large catalog (~400KB JSON, embeds `context_length` + `pricing`) |
28 +| DeepInfra | `GET https://api.deepinfra.com/v1/openai/models` (Bearer) | 200 — 174 models |
29 +| Cerebras | `GET https://api.cerebras.ai/v1/models` (Bearer) | 200 — 3 models: `gemma-4-31b`, `gpt-oss-120b`, `zai-glm-4.7` |
30 +
31 +## Streaming chat completion smoke test (all HTTP 200)
32 +
33 +Model used per provider: OpenAI `gpt-4o-mini`, Anthropic `claude-haiku-4-5-20251001`, xAI `grok-4.3`,
34 +Mistral `mistral-small-latest`, Gemini-compat `gemini-flash-latest`, Qwen `qwen-flash`,
35 +DeepSeek `deepseek-v4-flash`, Kimi `kimi-k2.5`, Perplexity `sonar`,
36 +Together `meta-llama/Llama-3.3-70B-Instruct-Turbo`, DeepInfra `deepseek-ai/DeepSeek-V4-Flash`,
37 +Cerebras `gpt-oss-120b`.
38 +
39 +## SSE shape observations (captured live)
40 +
41 +- **OpenAI**: `chat.completion.chunk` deltas; with `stream_options:{include_usage:true}` the final
42 + pre-`[DONE]` chunk has empty `choices` and a full `usage` object (incl. `completion_tokens_details.reasoning_tokens`).
43 + Chunks carry an `obfuscation` padding field — ignore unknown fields when decoding.
44 +- **Anthropic**: named SSE events observed: `message_start`, `content_block_start`,
45 + `content_block_delta`, `content_block_stop`, `message_delta`, `message_stop`, plus `ping` events.
46 +- **DeepSeek**: `deepseek-v4-flash` emits `delta.reasoning_content` string deltas **by default**
47 + (22 reasoning deltas before the answer in a trivial prompt), then `delta.content`. Both fields
48 + present on every delta (one is null).
49 +- **Perplexity**: chunks include `citations` (array of URLs) and `search_results` alongside
50 + `choices` and `usage`; each chunk also duplicates a cumulative `message` next to `delta`.
51 +- **Gemini (OpenAI-compat endpoint)**: works with Bearer auth; deltas can include
52 + `extra_content.google.thought_signature` (opaque base64) — must be tolerated/ignored;
53 + `finish_reason:"length"` seen when max_tokens hit mid-thought.
54 +- **Qwen (compat-mode intl)**: standard OpenAI chunk shape; `usage` null until final chunk.
55 +- **Kimi, Mistral, xAI, Together, DeepInfra, Cerebras**: standard OpenAI-style chunks, `data: [DONE]` terminator.
56 +
57 +## Consequences for the app
58 +
59 +1. `deepseek-v4-flash` / `v4-pro` replace the old `deepseek-chat` / `deepseek-reasoner` aliases in the catalog
60 + (verify alias behavior in Phase 7 — the old aliases may still route).
61 +2. Perplexity requires a fully built-in catalog (no dynamic refresh).
62 +3. Cerebras `/models` returns fewer models than docs may list — treat docs as the catalog source, `/models` as availability check.
63 +4. JSON decoders must ignore unknown fields everywhere (OpenAI `obfuscation`, Gemini `extra_content`, Perplexity extras).
64 +5. Reasoning-delta handling needed for: DeepSeek (`reasoning_content`), Qwen thinking models, Anthropic (`thinking_delta`), Gemini (thought signatures).
added docs/research/probes/anthropic.json +1 −0
@@ -0,0 +1 @@
1 +{"data":[{"type":"model","id":"claude-opus-5","display_name":"Claude Opus 5","created_at":"2026-07-24T00:00:00Z","max_input_tokens":1000000,"max_tokens":128000,"capabilities":{"batch":{"supported":true},"citations":{"supported":true},"code_execution":{"supported":true},"context_management":{"supported":true,"clear_tool_uses_20250919":{"supported":true},"clear_thinking_20251015":{"supported":true},"compact_20260112":{"supported":true}},"effort":{"supported":true,"low":{"supported":true},"medium":{"supported":true},"high":{"supported":true},"xhigh":{"supported":true},"max":{"supported":true}},"image_input":{"supported":true},"pdf_input":{"supported":true},"structured_outputs":{"supported":true},"thinking":{"supported":true,"types":{"enabled":{"supported":false},"adaptive":{"supported":true}}}}},{"type":"model","id":"claude-sonnet-5","display_name":"Claude Sonnet 5","created_at":"2026-06-29T00:00:00Z","max_input_tokens":1000000,"max_tokens":128000,"capabilities":{"batch":{"supported":true},"citations":{"supported":true},"code_execution":{"supported":true},"context_management":{"supported":true,"clear_tool_uses_20250919":{"supported":true},"clear_thinking_20251015":{"supported":true},"compact_20260112":{"supported":true}},"effort":{"supported":true,"low":{"supported":true},"medium":{"supported":true},"high":{"supported":true},"xhigh":{"supported":true},"max":{"supported":true}},"image_input":{"supported":true},"pdf_input":{"supported":true},"structured_outputs":{"supported":true},"thinking":{"supported":true,"types":{"enabled":{"supported":false},"adaptive":{"supported":true}}}}},{"type":"model","id":"claude-fable-5","display_name":"Claude Fable 5","created_at":"2026-06-07T00:00:00Z","max_input_tokens":1000000,"max_tokens":128000,"capabilities":{"batch":{"supported":true},"citations":{"supported":true},"code_execution":{"supported":true},"context_management":{"supported":true,"clear_tool_uses_20250919":{"supported":true},"clear_thinking_20251015":{"supported":true},"compact_20260112":{"supported":true}},"effort":{"supported":true,"low":{"supported":true},"medium":{"supported":true},"high":{"supported":true},"xhigh":{"supported":true},"max":{"supported":true}},"image_input":{"supported":true},"pdf_input":{"supported":true},"structured_outputs":{"supported":true},"thinking":{"supported":true,"types":{"enabled":{"supported":false},"adaptive":{"supported":true}}}}},{"type":"model","id":"claude-opus-4-8","display_name":"Claude Opus 4.8","created_at":"2026-05-28T00:00:00Z","max_input_tokens":1000000,"max_tokens":128000,"capabilities":{"batch":{"supported":true},"citations":{"supported":true},"code_execution":{"supported":true},"context_management":{"supported":true,"clear_tool_uses_20250919":{"supported":true},"clear_thinking_20251015":{"supported":true},"compact_20260112":{"supported":true}},"effort":{"supported":true,"low":{"supported":true},"medium":{"supported":true},"high":{"supported":true},"xhigh":{"supported":true},"max":{"supported":true}},"image_input":{"supported":true},"pdf_input":{"supported":true},"structured_outputs":{"supported":true},"thinking":{"supported":true,"types":{"enabled":{"supported":false},"adaptive":{"supported":true}}}}},{"type":"model","id":"claude-opus-4-7","display_name":"Claude Opus 4.7","created_at":"2026-04-14T00:00:00Z","max_input_tokens":1000000,"max_tokens":128000,"capabilities":{"batch":{"supported":true},"citations":{"supported":true},"code_execution":{"supported":true},"context_management":{"supported":true,"clear_tool_uses_20250919":{"supported":true},"clear_thinking_20251015":{"supported":true},"compact_20260112":{"supported":true}},"effort":{"supported":true,"low":{"supported":true},"medium":{"supported":true},"high":{"supported":true},"xhigh":{"supported":true},"max":{"supported":true}},"image_input":{"supported":true},"pdf_input":{"supported":true},"structured_outputs":{"supported":true},"thinking":{"supported":true,"types":{"enabled":{"supported":false},"adaptive":{"supported":true}}}}},{"type":"model","id":"claude-sonnet-4-6","display_name":"Claude Sonnet 4.6","created_at":"2026-02-17T00:00:00Z","max_input_tokens":1000000,"max_tokens":128000,"capabilities":{"batch":{"supported":true},"citations":{"supported":true},"code_execution":{"supported":true},"context_management":{"supported":true,"clear_tool_uses_20250919":{"supported":true},"clear_thinking_20251015":{"supported":true},"compact_20260112":{"supported":true}},"effort":{"supported":true,"low":{"supported":true},"medium":{"supported":true},"high":{"supported":true},"xhigh":{"supported":false},"max":{"supported":true}},"image_input":{"supported":true},"pdf_input":{"supported":true},"structured_outputs":{"supported":true},"thinking":{"supported":true,"types":{"enabled":{"supported":true},"adaptive":{"supported":true}}}}},{"type":"model","id":"claude-opus-4-6","display_name":"Claude Opus 4.6","created_at":"2026-02-04T00:00:00Z","max_input_tokens":1000000,"max_tokens":128000,"capabilities":{"batch":{"supported":true},"citations":{"supported":true},"code_execution":{"supported":true},"context_management":{"supported":true,"clear_tool_uses_20250919":{"supported":true},"clear_thinking_20251015":{"supported":true},"compact_20260112":{"supported":true}},"effort":{"supported":true,"low":{"supported":true},"medium":{"supported":true},"high":{"supported":true},"xhigh":{"supported":false},"max":{"supported":true}},"image_input":{"supported":true},"pdf_input":{"supported":true},"structured_outputs":{"supported":true},"thinking":{"supported":true,"types":{"enabled":{"supported":true},"adaptive":{"supported":true}}}}},{"type":"model","id":"claude-opus-4-5-20251101","display_name":"Claude Opus 4.5","created_at":"2025-11-24T00:00:00Z","max_input_tokens":200000,"max_tokens":64000,"capabilities":{"batch":{"supported":true},"citations":{"supported":true},"code_execution":{"supported":true},"context_management":{"supported":true,"clear_tool_uses_20250919":{"supported":true},"clear_thinking_20251015":{"supported":true},"compact_20260112":{"supported":false}},"effort":{"supported":true,"low":{"supported":true},"medium":{"supported":true},"high":{"supported":true},"xhigh":{"supported":false},"max":{"supported":false}},"image_input":{"supported":true},"pdf_input":{"supported":true},"structured_outputs":{"supported":true},"thinking":{"supported":true,"types":{"enabled":{"supported":true},"adaptive":{"supported":false}}}}},{"type":"model","id":"claude-haiku-4-5-20251001","display_name":"Claude Haiku 4.5","created_at":"2025-10-15T00:00:00Z","max_input_tokens":200000,"max_tokens":64000,"capabilities":{"batch":{"supported":true},"citations":{"supported":true},"code_execution":{"supported":false},"context_management":{"supported":true,"clear_tool_uses_20250919":{"supported":true},"clear_thinking_20251015":{"supported":true},"compact_20260112":{"supported":false}},"effort":{"supported":false,"low":{"supported":false},"medium":{"supported":false},"high":{"supported":false},"xhigh":{"supported":false},"max":{"supported":false}},"image_input":{"supported":true},"pdf_input":{"supported":true},"structured_outputs":{"supported":true},"thinking":{"supported":true,"types":{"enabled":{"supported":true},"adaptive":{"supported":false}}}}},{"type":"model","id":"claude-sonnet-4-5-20250929","display_name":"Claude Sonnet 4.5","created_at":"2025-09-29T00:00:00Z","max_input_tokens":1000000,"max_tokens":64000,"capabilities":{"batch":{"supported":true},"citations":{"supported":true},"code_execution":{"supported":true},"context_management":{"supported":true,"clear_tool_uses_20250919":{"supported":true},"clear_thinking_20251015":{"supported":true},"compact_20260112":{"supported":false}},"effort":{"supported":false,"low":{"supported":false},"medium":{"supported":false},"high":{"supported":false},"xhigh":{"supported":false},"max":{"supported":false}},"image_input":{"supported":true},"pdf_input":{"supported":true},"structured_outputs":{"supported":true},"thinking":{"supported":true,"types":{"enabled":{"supported":true},"adaptive":{"supported":false}}}}},{"type":"model","id":"claude-opus-4-1-20250805","display_name":"Claude Opus 4.1","created_at":"2025-08-05T00:00:00Z","max_input_tokens":200000,"max_tokens":32000,"capabilities":{"batch":{"supported":true},"citations":{"supported":true},"code_execution":{"supported":false},"context_management":{"supported":true,"clear_tool_uses_20250919":{"supported":true},"clear_thinking_20251015":{"supported":true},"compact_20260112":{"supported":false}},"effort":{"supported":false,"low":{"supported":false},"medium":{"supported":false},"high":{"supported":false},"xhigh":{"supported":false},"max":{"supported":false}},"image_input":{"supported":true},"pdf_input":{"supported":true},"structured_outputs":{"supported":true},"thinking":{"supported":true,"types":{"enabled":{"supported":true},"adaptive":{"supported":false}}}}}],"has_more":false,"first_id":"claude-opus-5","last_id":"claude-opus-4-1-20250805"}
\ No newline at end of file
added docs/research/probes/cerebras.json +1 −0
@@ -0,0 +1 @@
1 +{"object":"list","data":[{"id":"gemma-4-31b","object":"model","created":0,"owned_by":"Cerebras"},{"id":"gpt-oss-120b","object":"model","created":0,"owned_by":"Cerebras"},{"id":"zai-glm-4.7","object":"model","created":0,"owned_by":"Cerebras"}]}
\ No newline at end of file
added docs/research/probes/dashscope.json +1 −0
@@ -0,0 +1 @@
1 +{"object":"list","data":[{"id":"qwen3.7-flash-2026-07-15","object":"model","created":1785147367,"owned_by":"system"},{"id":"qwen3.7-flash","object":"model","created":1785147332,"owned_by":"system"},{"id":"glm-5.2-fast-preview","object":"model","created":1783663475,"owned_by":"system"},{"id":"kimi-k2.7-code","object":"model","created":1784964952,"owned_by":"system"},{"id":"glm-5.2","object":"model","created":1782886358,"owned_by":"system"},{"id":"qwen-image-2.0-pro-2026-06-22","object":"model","created":1782371883,"owned_by":"system"},{"id":"qwen3.7-max-2026-06-08","object":"model","created":1781073628,"owned_by":"system"},{"id":"qwen3.7-plus-2026-05-26","object":"model","created":1781579222,"owned_by":"system"},{"id":"qwen3.7-plus","object":"model","created":1782136201,"owned_by":"system"},{"id":"glm-5.1","object":"model","created":1782217829,"owned_by":"system"},{"id":"qwen3.7-max-2026-05-17","object":"model","created":1781491466,"owned_by":"system"},{"id":"qwen3.7-max-preview","object":"model","created":1779702409,"owned_by":"system"},{"id":"qwen3.7-max-2026-05-20","object":"model","created":1781491364,"owned_by":"system"},{"id":"qwen3.7-max","object":"model","created":1782991139,"owned_by":"system"},{"id":"qwen3.5-livetranslate-flash-realtime-2026-05-19","object":"model","created":1782992822,"owned_by":"system"},{"id":"qwen3.5-livetranslate-flash-realtime","object":"model","created":1782992784,"owned_by":"system"},{"id":"deepseek-v4-flash","object":"model","created":1782135596,"owned_by":"system"},{"id":"deepseek-v4-pro","object":"model","created":1782222972,"owned_by":"system"},{"id":"qwen-image-2.0-pro-2026-04-22","object":"model","created":1784029480,"owned_by":"system"},{"id":"qwen3.6-27b","object":"model","created":1782207240,"owned_by":"system"},{"id":"qwen3.5-plus-2026-04-20","object":"model","created":1781704683,"owned_by":"system"},{"id":"qwen3.6-max-preview","object":"model","created":1782136330,"owned_by":"system"},{"id":"qwen3.6-35b-a3b","object":"model","created":1778725927,"owned_by":"system"},{"id":"qwen3.6-flash","object":"model","created":1782135849,"owned_by":"system"},{"id":"qwen3.6-flash-2026-04-16","object":"model","created":1779992807,"owned_by":"system"},{"id":"qwen3.5-omni-plus-realtime-2026-03-15","object":"model","created":1780984581,"owned_by":"system"},{"id":"qwen3.5-omni-plus-realtime","object":"model","created":1780984950,"owned_by":"system"},{"id":"qwen3.5-omni-plus-2026-03-15","object":"model","created":1779885473,"owned_by":"system"},{"id":"qwen3.5-omni-plus","object":"model","created":1779438700,"owned_by":"system"},{"id":"qwen3.5-omni-flash-realtime-2026-03-15","object":"model","created":1780984108,"owned_by":"system"},{"id":"qwen3.5-omni-flash-realtime","object":"model","created":1780984447,"owned_by":"system"},{"id":"qwen3.5-omni-flash-2026-03-15","object":"model","created":1775748316,"owned_by":"system"},{"id":"qwen3.5-omni-flash","object":"model","created":1775748281,"owned_by":"system"},{"id":"qwen3.6-plus-2026-04-02","object":"model","created":1780904976,"owned_by":"system"},{"id":"qwen3.6-plus","object":"model","created":1782136148,"owned_by":"system"},{"id":"wan2.7-image-pro","object":"model","created":1782100407,"owned_by":"system"},{"id":"wan2.7-image","object":"model","created":1782099945,"owned_by":"system"},{"id":"deepseek-v3.2","object":"model","created":1785378301,"owned_by":"system"},{"id":"qwen-image-2.0-2026-03-03","object":"model","created":1784029530,"owned_by":"system"},{"id":"qwen-image-2.0-pro","object":"model","created":1784029370,"owned_by":"system"},{"id":"qwen-image-2.0-pro-2026-03-03","object":"model","created":1784029510,"owned_by":"system"},{"id":"qwen-image-2.0","object":"model","created":1784029058,"owned_by":"system"},{"id":"qwen3-asr-flash-2026-02-10","object":"model","created":1772530169,"owned_by":"system"},{"id":"qwen3.5-flash-2026-02-23","object":"model","created":1780631532,"owned_by":"system"},{"id":"qwen3.5-flash","object":"model","created":1782135773,"owned_by":"system"},{"id":"qwen3.5-122b-a10b","object":"model","created":1784277488,"owned_by":"system"},{"id":"qwen3.5-35b-a3b","object":"model","created":1782135921,"owned_by":"system"},{"id":"qwen3.5-27b","object":"model","created":1773550369,"owned_by":"system"},{"id":"qwen3-coder-next","object":"model","created":1778725660,"owned_by":"system"},{"id":"qwen3.5-397b-a17b","object":"model","created":1778725838,"owned_by":"system"},{"id":"qwen3.5-plus-2026-02-15","object":"model","created":1781705346,"owned_by":"system"},{"id":"qwen3.5-plus","object":"model","created":1782136065,"owned_by":"system"},{"id":"qwen3-asr-flash-realtime-2026-02-10","object":"model","created":1782214862,"owned_by":"system"},{"id":"qwen3-tts-vc-2026-01-22","object":"model","created":1770722334,"owned_by":"system"},{"id":"qwen3-tts-instruct-flash-2026-01-26","object":"model","created":1770722234,"owned_by":"system"},{"id":"qwen3-tts-instruct-flash","object":"model","created":1770722141,"owned_by":"system"},{"id":"qwen3-tts-vd-2026-01-26","object":"model","created":1770718124,"owned_by":"system"},{"id":"qwen3-tts-instruct-flash-realtime-2026-01-22","object":"model","created":1770173511,"owned_by":"system"},{"id":"qwen3-tts-instruct-flash-realtime","object":"model","created":1770173445,"owned_by":"system"},{"id":"qwen3-tts-vd-realtime-2026-01-15","object":"model","created":1770013406,"owned_by":"system"},{"id":"qwen3-vl-flash-2026-01-22","object":"model","created":1777534194,"owned_by":"system"},{"id":"qwen3-max-2026-01-23","object":"model","created":1769481833,"owned_by":"system"},{"id":"qwen-image-edit-max-2026-01-16","object":"model","created":1768725487,"owned_by":"system"},{"id":"qwen-image-edit-max","object":"model","created":1768724594,"owned_by":"system"},{"id":"qwen3-tts-vc-realtime-2026-01-15","object":"model","created":1768647298,"owned_by":"system"},{"id":"qwen-image-plus-2026-01-09","object":"model","created":1767939899,"owned_by":"system"},{"id":"qwen-plus-character","object":"model","created":1775811400,"owned_by":"system"},{"id":"qwen-flash-character","object":"model","created":1775811437,"owned_by":"system"},{"id":"qwen-image-max-2025-12-30","object":"model","created":1779934775,"owned_by":"system"},{"id":"qwen-image-max","object":"model","created":1767096300,"owned_by":"system"},{"id":"qwen-flash","object":"model","created":1766649784,"owned_by":"system"},{"id":"z-image-turbo","object":"model","created":1766371140,"owned_by":"system"},{"id":"qwen3-vl-plus-2025-12-19","object":"model","created":1777534335,"owned_by":"system"},{"id":"qwen3-tts-vd-realtime-2025-12-16","object":"model","created":1770800217,"owned_by":"system"},{"id":"qwen-image-edit-plus-2025-12-15","object":"model","created":1765813590,"owned_by":"system"},{"id":"qwen3-omni-flash-realtime-2025-12-01","object":"model","created":1770800281,"owned_by":"system"},{"id":"qwen3-omni-flash-2025-12-01","object":"model","created":1764590306,"owned_by":"system"},{"id":"qwen3-livetranslate-flash-2025-12-01","object":"model","created":1773991661,"owned_by":"system"},{"id":"qwen3-livetranslate-flash","object":"model","created":1764737072,"owned_by":"system"},{"id":"qwen-mt-lite","object":"model","created":1764582262,"owned_by":"system"},{"id":"qwen-plus-2025-12-01","object":"model","created":1770026791,"owned_by":"system"},{"id":"qwen3-tts-vc-realtime-2025-11-27","object":"model","created":1764126288,"owned_by":"system"},{"id":"qwen3-tts-flash-2025-11-27","object":"model","created":1764126017,"owned_by":"system"},{"id":"qwen3-tts-flash-realtime-2025-11-27","object":"model","created":1764125786,"owned_by":"system"},{"id":"qwen-vl-ocr-2025-11-20","object":"model","created":1770024610,"owned_by":"system"},{"id":"qwen-mt-flash","object":"model","created":1762433201,"owned_by":"system"},{"id":"ccai-pro","object":"model","created":1762328688,"owned_by":"system"},{"id":"tongyi-tingwu-slp","object":"model","created":1762328573,"owned_by":"system"},{"id":"qwen-image-edit-plus","object":"model","created":1763974079,"owned_by":"system"},{"id":"qwen-image-edit-plus-2025-10-30","object":"model","created":1761810924,"owned_by":"system"},{"id":"qwen3-asr-flash-realtime-2025-10-27","object":"model","created":1783689838,"owned_by":"system"},{"id":"qwen3-asr-flash-realtime","object":"model","created":1782367385,"owned_by":"system"},{"id":"qwen3-vl-flash","object":"model","created":1777533980,"owned_by":"system"},{"id":"text-embedding-v4","object":"model","created":1760428930,"owned_by":"system"},{"id":"qwen-image-edit","object":"model","created":1761529733,"owned_by":"system"},{"id":"qwen3-vl-flash-2025-10-15","object":"model","created":1777534225,"owned_by":"system"},{"id":"qwen3-tts-flash","object":"model","created":1767618047,"owned_by":"system"},{"id":"qwen3-tts-flash-2025-09-18","object":"model","created":1761550341,"owned_by":"system"},{"id":"qwen3-tts-flash-realtime-2025-09-18","object":"model","created":1770800240,"owned_by":"system"},{"id":"qwen3-tts-flash-realtime","object":"model","created":1770800230,"owned_by":"system"},{"id":"qwen3-omni-flash-realtime","object":"model","created":1770800271,"owned_by":"system"},{"id":"qwen3-omni-flash","object":"model","created":1761550502,"owned_by":"system"},{"id":"qwen3-omni-flash-2025-09-15","object":"model","created":1761550525,"owned_by":"system"},{"id":"qwen3-omni-flash-realtime-2025-09-15","object":"model","created":1770800291,"owned_by":"system"},{"id":"qwen3-omni-30b-a3b-captioner","object":"model","created":1761550599,"owned_by":"system"},{"id":"qwen3-s2s-flash-realtime","object":"model","created":1760422451,"owned_by":"system"},{"id":"qwen3-livetranslate-flash-realtime","object":"model","created":1782992580,"owned_by":"system"},{"id":"qwen3-livetranslate-flash-realtime-2025-09-22","object":"model","created":1782992727,"owned_by":"system"},{"id":"text-embedding-v3","object":"model","created":1761552197,"owned_by":"system"},{"id":"qwen-plus-latest","object":"model","created":1760421728,"owned_by":"system"},{"id":"qwen-plus-2025-01-25","object":"model","created":1770026563,"owned_by":"system"},{"id":"qwq-plus-2025-03-05","object":"model","created":1760421663,"owned_by":"system"},{"id":"qwen-mt-turbo","object":"model","created":1760421638,"owned_by":"system"},{"id":"qwen-mt-plus","object":"model","created":1760421630,"owned_by":"system"},{"id":"qwen-coder-plus","object":"model","created":1760421602,"owned_by":"system"},{"id":"qwq-plus","object":"model","created":1760421593,"owned_by":"system"},{"id":"qvq-max","object":"model","created":1760421475,"owned_by":"system"},{"id":"qwen-omni-turbo","object":"model","created":1770800013,"owned_by":"system"},{"id":"qwen3-8b","object":"model","created":1770026036,"owned_by":"system"},{"id":"qwen3-30b-a3b","object":"model","created":1760413836,"owned_by":"system"},{"id":"qwen3-235b-a22b","object":"model","created":1760413824,"owned_by":"system"},{"id":"qwen-plus-2025-04-28","object":"model","created":1770015418,"owned_by":"system"},{"id":"qwen3-coder-plus","object":"model","created":1778725691,"owned_by":"system"},{"id":"qwen3-coder-480b-a35b-instruct","object":"model","created":1778725553,"owned_by":"system"},{"id":"qwen3-235b-a22b-instruct-2507","object":"model","created":1770024280,"owned_by":"system"},{"id":"qwen-plus-2025-07-14","object":"model","created":1760413462,"owned_by":"system"},{"id":"qwen3-coder-plus-2025-07-22","object":"model","created":1760413448,"owned_by":"system"},{"id":"qwen3-235b-a22b-thinking-2507","object":"model","created":1780387777,"owned_by":"system"},{"id":"qwen3-coder-flash","object":"model","created":1778725608,"owned_by":"system"},{"id":"qwen-vl-max","object":"model","created":1760413112,"owned_by":"system"},{"id":"qwen3-max","object":"model","created":1782136269,"owned_by":"system"},{"id":"qwen3-max-2025-09-23","object":"model","created":1761529599,"owned_by":"system"},{"id":"qwen-image-plus","object":"model","created":1764768412,"owned_by":"system"},{"id":"qwen3-vl-plus","object":"model","created":1777534314,"owned_by":"system"},{"id":"qwen3-vl-235b-a22b-instruct","object":"model","created":1760412732,"owned_by":"system"},{"id":"qwen3-vl-235b-a22b-thinking","object":"model","created":1760412724,"owned_by":"system"},{"id":"qwen3-30b-a3b-thinking-2507","object":"model","created":1760411704,"owned_by":"system"},{"id":"qwen3-30b-a3b-instruct-2507","object":"model","created":1770024970,"owned_by":"system"},{"id":"qwen3-14b","object":"model","created":1760411542,"owned_by":"system"},{"id":"qwen3-32b","object":"model","created":1770009423,"owned_by":"system"},{"id":"qwen-vl-plus","object":"model","created":1770083638,"owned_by":"system"},{"id":"qwen3-coder-plus-2025-09-23","object":"model","created":1761529698,"owned_by":"system"},{"id":"qwen3-vl-plus-2025-09-23","object":"model","created":1777534386,"owned_by":"system"},{"id":"qwen-plus-2025-09-11","object":"model","created":1757646198,"owned_by":"system"},{"id":"qwen3-next-80b-a3b-thinking","object":"model","created":1758533476,"owned_by":"system"},{"id":"qwen3-next-80b-a3b-instruct","object":"model","created":1770024151,"owned_by":"system"},{"id":"qwen3-max-preview","object":"model","created":1768287984,"owned_by":"system"},{"id":"qwen2-7b-instruct","object":"model","created":1755780073,"owned_by":"system"},{"id":"qwen-max","object":"model","created":1779934703,"owned_by":"system"},{"id":"qwen-plus","object":"model","created":1770083959,"owned_by":"system"},{"id":"qwen-turbo","object":"model","created":1770084150,"owned_by":"system"}],"first_id":"model-id-0","last_id":"model-id-150","has_more":false}
\ No newline at end of file
added docs/research/probes/deepinfra.json +1 −0
@@ -0,0 +1 @@
1 +{"object":"list","data":[{"id":"nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B","object":"model","created":0,"owned_by":"deepinfra","root":"nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B","parent":null,"metadata":{"description":"Nemotron 3 Ultra is built for, frontier reasoning, orchestration, coding agents, deep research, and complex enterprise workflows. It delivers up to 5x faster inference and up to 30% lower cost for agentic workloads while supporting up to 1M token context.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.5,"output_tokens":2.2,"cache_read_tokens":0.1},"tags":["chat","vlm","vision","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"openai/whisper-large-v3-turbo","object":"model","created":0,"owned_by":"deepinfra","root":"openai/whisper-large-v3-turbo","parent":null,"metadata":{"description":"Whisper is a state-of-the-art model for automatic speech recognition (ASR) and speech translation, proposed in the paper \"Robust Speech Recognition via Large-Scale Weak Supervision\" by Alec Radford et al. from OpenAI. Trained on >5M hours of labeled data, Whisper demonstrates a strong ability to generalise to many datasets and domains in a zero-shot setting. Whisper large-v3-turbo is a finetuned version of a pruned Whisper large-v3. In other words, it's the exact same model, except that the number of decoding layers have reduced from 32 to 4. As a result, the model is way faster, at the expense of a minor quality degradation.","context_length":null,"max_tokens":null,"pricing":{"input_seconds":3.3300000000000003e-06},"tags":["stt"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/gemma-3-12b-it","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemma-3-12b-it","parent":null,"metadata":{"description":"Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities, including structured outputs and function calling. Gemma 3-12B is Google's latest open source model, successor to Gemma 2","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.05,"output_tokens":0.15},"tags":["chat","vlm","vision"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/gemma-4-26B-A4B-it","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemma-4-26B-A4B-it","parent":null,"metadata":{"description":"Efficient, MoE variant of Gemma 4. Gemma is a family of open models built by Google DeepMind. Gemma 4 models are multimodal, handling text and image input and generating text output.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.07,"output_tokens":0.33999999999999997},"tags":["chat","vlm","vision","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3.6-27B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3.6-27B","parent":null,"metadata":{"description":"","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.32,"output_tokens":3.2},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3.6-35B-A3B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3.6-35B-A3B","parent":null,"metadata":{"description":"Qwen3.6-35B-A3B is Alibaba's latest flagship Mixture-of-Experts model, with 35B total parameters and only 3B activated per token (256 experts, 8 routed + 1 shared). Built on direct feedback from the community, Qwen3.6 prioritizes stability and real-world utility, offering developers a more intuitive, responsive, and genuinely productive coding experience.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.1,"output_tokens":0.95},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"zai-org/GLM-5.1","object":"model","created":0,"owned_by":"deepinfra","root":"zai-org/GLM-5.1","parent":null,"metadata":{"description":"GLM-5.1 is Z-AI's next-generation flagship model for agentic engineering, with significantly stronger coding capabilities than its predecessor. It achieves state-of-the-art performance on SWE-Bench Pro and leads GLM-5 by a wide margin on NL2Repo (repo generation) and Terminal-Bench 2.0 (real-world terminal tasks).","context_length":202752,"max_tokens":202752,"pricing":{"input_tokens":1.05,"output_tokens":3.5,"cache_read_tokens":0.205000005},"tags":["chat","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"moonshotai/Kimi-K2.7-Code","object":"model","created":0,"owned_by":"deepinfra","root":"moonshotai/Kimi-K2.7-Code","parent":null,"metadata":{"description":"Kimi K2.7 Code is a coding-focused agentic model built upon Kimi K2.6. With substantial improvements on real-world long-horizon coding tasks, it strengthens end-to-end task completion across complex software engineering workflows while improving token efficiency, reducing thinking-token usage by approximately 30% compared with Kimi K2.6.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.74,"output_tokens":3.5,"cache_read_tokens":0.149999998},"tags":["chat","vlm","vision","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"sentence-transformers/all-mpnet-base-v2","object":"model","created":0,"owned_by":"deepinfra","root":"sentence-transformers/all-mpnet-base-v2","parent":null,"metadata":{"description":"A sentence transformation model that has been trained on a wide range of datasets, including but not limited to S2ORC, WikiAnwers, PAQ, Stack Exchange, and Yahoo! Answers. Our model can be used for various NLP tasks such as clustering, sentiment analysis, and question answering.","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.005},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"anthropic/claude-sonnet-5","object":"model","created":0,"owned_by":"deepinfra","root":"anthropic/claude-sonnet-5","parent":null,"metadata":{"description":"Claude Sonnet 5 is Anthropic's most capable Sonnet model yet, built for coding, agents, and professional work at scale. It brings near-Opus intelligence to the model teams run at scale every day, with the same balance of capability, cost, and speed teams already rely on Sonnet for.","context_length":1000000,"max_tokens":1000000,"pricing":{"input_tokens":2.0,"output_tokens":10.0},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-14B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-14B","parent":null,"metadata":{"description":"Qwen3 is the latest generation of large language models in Qwen series, offering a comprehensive suite of dense and mixture-of-experts (MoE) models. Built upon extensive training, Qwen3 delivers groundbreaking advancements in reasoning, instruction-following, agent capabilities, and multilingual support.","context_length":40960,"max_tokens":40960,"pricing":{"input_tokens":0.12000000000000001,"output_tokens":0.24000000000000002},"tags":["chat","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-TTS-VoiceDesign","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-TTS-VoiceDesign","parent":null,"metadata":{"description":"● Qwen3-TTS-VoiceDesign is a voice design variant of Qwen3-TTS by Alibaba's Qwen team. Instead of selecting from preset voices, you describe the voice you want in natural language — and the model generates speech in that voice. Key capabilities: - Natural language voice control — describe any voice with free text (e.g. \"a deep male voice with a calm, authoritative presence\", \"a young cheerful female with a warm and friendly tone\") - 10 languages — English, Chinese, Japanese, Korean, German, French, Russian, Spanish, Italian, Portuguese - Streaming support — real-time PCM streaming - Multiple output formats — WAV, MP3, FLAC, PCM Built on the same 1.7B parameter architecture as Qwen3-TTS, using discrete multi-codebook language modeling and a custom 12Hz acoustic tokenizer for high-quality end-to-end speech synthesis.","context_length":null,"max_tokens":null,"pricing":{"input_characters":20.0},"tags":["tts"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","object":"model","created":0,"owned_by":"deepinfra","root":"meta-llama/Llama-4-Scout-17B-16E-Instruct","parent":null,"metadata":{"description":"The Llama 4 collection of models are natively multimodal AI models that enable text and multimodal experiences. These models leverage a mixture-of-experts architecture to offer industry-leading performance in text and image understanding. Llama 4 Scout, a 17 billion parameter model with 16 experts","context_length":327680,"max_tokens":327680,"pricing":{"input_tokens":0.1,"output_tokens":0.3},"tags":["chat","vlm","vision"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/gemma-3-4b-it","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemma-3-4b-it","parent":null,"metadata":{"description":"Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities, including structured outputs and function calling. Gemma 3-12B is Google's latest open source model, successor to Gemma 2","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.05,"output_tokens":0.1},"tags":["chat","vlm","vision"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"inworld-ai/realtime-tts-2","object":"model","created":0,"owned_by":"deepinfra","root":"inworld-ai/realtime-tts-2","parent":null,"metadata":{"description":"Realtime TTS 2.0 is a low-latency text-to-speech model with natural language steering, allowing you to control tone and emotion directly in the prompt (e.g., “[be happy and upbeat] Hello!”). It supports cross-lingual voices and multiple languages, enabling the same voice to speak consistently across different languages. This is an early access preview ahead of full launch, with ongoing improvements to voice quality and steering.","context_length":null,"max_tokens":null,"pricing":{"input_characters":35.00000000000001},"tags":["tts"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Wan-AI/Wan2.2-T2V-A14B","object":"model","created":0,"owned_by":"deepinfra","root":"Wan-AI/Wan2.2-T2V-A14B","parent":null,"metadata":{"description":"The Wan2.2 T2V A14B is a next-generation 14B-parameter video foundation model by Wan-AI featuring a novel two-stage denoising architecture. It produces 480P videos with improved visual coherence and detail, generating 2 or 5 second clips at 16fps from text prompts.","context_length":null,"max_tokens":null,"pricing":{"output_seconds":0.036000000000000004},"tags":["video-gen"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"nvidia/Nemotron-3.5-ASR-Streaming-Multilingual-0.6b","object":"model","created":0,"owned_by":"deepinfra","root":"nvidia/Nemotron-3.5-ASR-Streaming-Multilingual-0.6b","parent":null,"metadata":{"description":"Nemotron 3.5 ASR Streaming Multilingual is an open 0.6B-parameter prompt-conditioned cache-aware FastConformer-RNNT model, engineered for low-latency streaming transcription across 40+ languages. It powers real-time captioning, voice agents, and multilingual transcription pipelines—replacing separate per-language Whisper deployments with a single inference pass.","context_length":null,"max_tokens":null,"pricing":{"input_seconds":3.3300000000000003e-06},"tags":["stt"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3.5-397B-A17B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3.5-397B-A17B","parent":null,"metadata":{"description":"Qwen3.5-397B-A17B is Alibaba's most capable Qwen3.5 model, a Mixture-of-Experts architecture with 397B total parameters and 17B activated per token. It features a 262K token context window (extensible to 1M with YaRN), thinking/reasoning mode, tool calling with MCP integration, and support for 201 languages. Sets state-of-the-art results on reasoning, coding, math, and multimodal benchmarks.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.45,"output_tokens":2.9999999999999996,"cache_read_tokens":0.22000000050000001},"tags":["chat","vlm","vision","prompt_cache","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"ResembleAI/chatterbox-turbo","object":"model","created":0,"owned_by":"deepinfra","root":"ResembleAI/chatterbox-turbo","parent":null,"metadata":{"description":"Chatterbox is a family of three state-of-the-art, open-source text-to-speech models by Resemble AI. We are excited to introduce Chatterbox-Turbo, our most efficient model yet. Built on a streamlined 350M parameter architecture, Turbo delivers high-quality speech with less compute and VRAM than our previous models. We have also distilled the speech-token-to-mel decoder, previously a bottleneck, reducing generation from 10 steps to just one, while retaining high-fidelity audio output. Paralinguistic tags are now native to the Turbo model, allowing you to use [cough], [laugh], [chuckle], and more to add distinct realism. While Turbo was built primarily for low-latency voice agents, it excels at narration and creative workflows. If you like the model but need to scale or tune it for higher accuracy, check out our competitively priced TTS service (link).","context_length":null,"max_tokens":null,"pricing":{"input_characters":1.0},"tags":["tts"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3.5-122B-A10B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3.5-122B-A10B","parent":null,"metadata":{"description":"Qwen3.5-122B-A10B is a large Mixture-of-Experts model from Alibaba's Qwen3.5 series with 122B total parameters and 10B activated per token. It features a 262K token context window (extensible to 1M with YaRN), thinking/reasoning mode, tool calling, and support for 201 languages. Excels at complex reasoning, coding, multimodal understanding, and agentic tasks with the efficiency of sparse activation.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.29,"output_tokens":2.4},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"ByteDance/Seed-2.0-mini","object":"model","created":0,"owned_by":"deepinfra","root":"ByteDance/Seed-2.0-mini","parent":null,"metadata":{"description":"Built for low-latency, high-concurrency, cost-sensitive use cases, with flexible deployment, four-tier thinking, and multimodal","context_length":256000,"max_tokens":256000,"pricing":{"input_tokens":0.1,"output_tokens":0.4,"cache_read_tokens":0.020000000000000004},"tags":["chat","vlm","vision","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"NousResearch/Hermes-3-Llama-3.1-405B","object":"model","created":0,"owned_by":"deepinfra","root":"NousResearch/Hermes-3-Llama-3.1-405B","parent":null,"metadata":{"description":"Hermes 3 is a cutting-edge language model that offers advanced capabilities in roleplaying, reasoning, and conversation. It's a fine-tuned version of the Llama-3.1 405B foundation model, designed to align with user needs and provide powerful control. Key features include reliable function calling, structured output, generalist assistant capabilities, and improved code generation. Hermes 3 is competitive with Llama-3.1 Instruct models, with its own strengths and weaknesses.","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":1.0,"output_tokens":1.0},"tags":["chat"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/gemini-2.5-flash","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemini-2.5-flash","parent":null,"metadata":{"description":"Gemini 2.5 Flash is Google's latest thinking model, designed to tackle increasingly complex problems. It's capable of reasoning through their thoughts before responding, resulting in enhanced performance and improved accuracy. Gemini 2.5 Flash: best for balancing reasoning and speed.","context_length":1000000,"max_tokens":1000000,"pricing":{"input_tokens":0.3,"output_tokens":2.5},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"anthropic/claude-haiku-4-5","object":"model","created":0,"owned_by":"deepinfra","root":"anthropic/claude-haiku-4-5","parent":null,"metadata":{"description":"The next generation of Anthropic's fastest and most cost-effective model, optimal for use cases where speed and affordability matter.","context_length":200000,"max_tokens":200000,"pricing":{"input_tokens":1.0,"output_tokens":5.0},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-235B-A22B-Thinking-2507","parent":null,"metadata":{"description":"Qwen3-235B-A22B-Thinking-2507 is the Qwen3's new model with scaling the thinking capability of Qwen3-235B-A22B, improving both the quality and depth of reasoning.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.22999999999999998,"output_tokens":2.3,"cache_read_tokens":0.20000000059999998},"tags":["chat","prompt_cache","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/gemini-1.5-flash","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemini-1.5-flash","parent":null,"metadata":{"description":"Gemini 1.5 Flash is Google's foundation model that performs well at a variety of multimodal tasks such as visual understanding, classification, summarization, and creating content from image, audio and video. It's adept at processing visual and text inputs such as photographs, documents, infographics, and screenshots. Gemini 1.5 Flash is designed for high-volume, high-frequency tasks where cost and latency matter.","context_length":1000000,"max_tokens":1000000,"pricing":{"input_tokens":0.075,"output_tokens":0.3},"tags":["chat","vlm","vision","reasoning_effort"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"black-forest-labs/FLUX-1.1-pro","object":"model","created":0,"owned_by":"deepinfra","root":"black-forest-labs/FLUX-1.1-pro","parent":null,"metadata":{"description":"Black Forest Labs' latest state-of-the art proprietary model sporting top of the line prompt following, visual quality, details and output diversity.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.04},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"nvidia/Cosmos3-Super","object":"model","created":0,"owned_by":"deepinfra","root":"nvidia/Cosmos3-Super","parent":null,"metadata":{"description":"Cosmos3 is a world foundation model that unifies understanding and generation within a single Mixture-of-Transformer (MoT) architecture. Two tightly coupled towers—a Reasoner (vision-language model) and a Generator (world simulator)—share latent representations so that structured perception directly grounds realistic, temporally consistent simulation.","context_length":null,"max_tokens":null,"pricing":{},"tags":["video-gen"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"ByteDance/Seedance-2.0","object":"model","created":0,"owned_by":"deepinfra","root":"ByteDance/Seedance-2.0","parent":null,"metadata":{"description":"A new-generation professional-grade multimodal video creation model developed, supports video generation with multimodal reference inputs including images, videos and audio.","context_length":null,"max_tokens":null,"pricing":{},"tags":["video-gen"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo","object":"model","created":0,"owned_by":"deepinfra","root":"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo","parent":null,"metadata":{"description":"Meta developed and released the Meta Llama 3.1 family of large language models (LLMs), a collection of pretrained and instruction tuned generative text models in 8B, 70B and 405B sizes","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.02,"output_tokens":0.04},"tags":["chat"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"meta-llama/Llama-Guard-4-12B","object":"model","created":0,"owned_by":"deepinfra","root":"meta-llama/Llama-Guard-4-12B","parent":null,"metadata":{"description":"Llama Guard 4 is a natively multimodal safety classifier with 12 billion parameters trained jointly on text and multiple images. Llama Guard 4 is a dense architecture pruned from the Llama 4 Scout pre-trained model and fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM inputs (prompt classification) and in LLM responses (response classification). It itself acts as an LLM: it generates text in its output that indicates whether a given prompt or response is safe or unsafe, and if unsafe, it also lists the content categories violated.","context_length":163840,"max_tokens":163840,"pricing":{"input_tokens":0.18,"output_tokens":0.18},"tags":["chat","vlm","vision"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/gemma-3-27b-it","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemma-3-27b-it","parent":null,"metadata":{"description":"Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities, including structured outputs and function calling. Gemma 3 27B is Google's latest open source model, successor to Gemma 2","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.08,"output_tokens":0.16},"tags":["chat","vlm","vision"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-Next-80B-A3B-Instruct","parent":null,"metadata":{"description":"Over the past few months, we have observed increasingly clear trends toward scaling both total parameters and context lengths in the pursuit of more powerful and agentic artificial intelligence (AI). We are excited to share our latest advancements in addressing these demands, centered on improving scaling efficiency through innovative model architecture. We call this next-generation foundation models Qwen3-Next.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.09,"output_tokens":1.1},"tags":["chat","reasoning_effort"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"mistralai/Mistral-Small-3.2-24B-Instruct-2506","object":"model","created":0,"owned_by":"deepinfra","root":"mistralai/Mistral-Small-3.2-24B-Instruct-2506","parent":null,"metadata":{"description":"Mistral-Small-3.2-24B-Instruct is a drop-in upgrade over the 3.1 release, with markedly better instruction following, roughly half the infinite-generation errors, and a more robust function-calling interface—while otherwise matching or slightly improving on all previous text and vision benchmarks.","context_length":128000,"max_tokens":128000,"pricing":{"input_tokens":0.075,"output_tokens":0.2},"tags":["chat","vlm","vision"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Bria/remove_background","object":"model","created":0,"owned_by":"deepinfra","root":"Bria/remove_background","parent":null,"metadata":{"description":"Bria RMBG 2.0 enables seamless removal of backgrounds from images, ideal for professional editing tasks. Trained exclusively on licensed data for safe and risk-free commercial use.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.018000000000000002},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"Sao10K/L3.1-70B-Euryale-v2.2","object":"model","created":0,"owned_by":"deepinfra","root":"Sao10K/L3.1-70B-Euryale-v2.2","parent":null,"metadata":{"description":"Euryale 3.1 - 70B v2.2 is a model focused on creative roleplay from Sao10k","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.85,"output_tokens":0.85},"tags":["chat"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"sentence-transformers/multi-qa-mpnet-base-dot-v1","object":"model","created":0,"owned_by":"deepinfra","root":"sentence-transformers/multi-qa-mpnet-base-dot-v1","parent":null,"metadata":{"description":"We present a sentence transformation model that maps sentences and paragraphs to a 768-dimensional dense vector space, suitable for semantic search tasks. The model is trained on 215 million question-answer pairs from various sources, including WikiAnswers, PAQ, Stack Exchange, MS MARCO, GOOAQ, Amazon QA, Yahoo Answers, Search QA, ELI5, and Natural Questions. Our model uses a contrastive learning objective.","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.005},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/veo-3.1-fast","object":"model","created":0,"owned_by":"deepinfra","root":"google/veo-3.1-fast","parent":null,"metadata":{"description":"Veo 3.1 is the latest text-to-video model from Google that generates high-fidelity, cinematic videos with synchronized audio from a simple text prompt. It excels at creating realistic and imaginative scenes with a deep understanding of natural language and visual dynamics.","context_length":null,"max_tokens":null,"pricing":{"output_seconds":0.15},"tags":["video-gen"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"thenlper/gte-large","object":"model","created":0,"owned_by":"deepinfra","root":"thenlper/gte-large","parent":null,"metadata":{"description":"The GTE models are trained by Alibaba DAMO Academy. They are mainly based on the BERT framework and currently offer three different sizes of models, including GTE-large, GTE-base, and GTE-small. The GTE models are trained on a large-scale corpus of relevance text pairs, covering a wide range of domains and scenarios. This enables the GTE models to be applied to various downstream tasks of text embeddings, including information retrieval, semantic textual similarity, text reranking, etc.","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.01},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/gemini-1.5-flash-8b","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemini-1.5-flash-8b","parent":null,"metadata":{"description":"","context_length":1000000,"max_tokens":1000000,"pricing":{"input_tokens":0.0375,"output_tokens":0.15},"tags":["chat","vlm","vision","reasoning_effort"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"shibing624/text2vec-base-chinese","object":"model","created":0,"owned_by":"deepinfra","root":"shibing624/text2vec-base-chinese","parent":null,"metadata":{"description":"A sentence similarity model that can be used for various NLP tasks such as text classification, sentiment analysis, named entity recognition, question answering, and more. It utilizes the CoSENT architecture, which consists of a transformer encoder and a pooling module, to encode input texts into vectors that capture their semantic meaning. The model was trained on the nli_zh dataset and achieved high performance on various benchmark datasets.","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.005},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"sesame/csm-1b","object":"model","created":0,"owned_by":"deepinfra","root":"sesame/csm-1b","parent":null,"metadata":{"description":"CSM (Conversational Speech Model) is a speech generation model from Sesame that generates RVQ audio codes from text and audio inputs. The model architecture employs a Llama backbone and a smaller audio decoder that produces Mimi audio codes.","context_length":null,"max_tokens":null,"pricing":{"input_characters":7.0},"tags":["tts"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-235B-A22B-Instruct-2507","parent":null,"metadata":{"description":"Qwen3-235B-A22B-Instruct-2507 is the updated version of the Qwen3-235B-A22B non-thinking mode, featuring Significant improvements in general capabilities, including instruction following, logical reasoning, text comprehension, mathematics, science, coding and tool usage.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.09,"output_tokens":0.55},"tags":["chat","reasoning_effort"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"deepseek-ai/DeepSeek-V4-Flash","object":"model","created":0,"owned_by":"deepinfra","root":"deepseek-ai/DeepSeek-V4-Flash","parent":null,"metadata":{"description":"DeepSeek V4 Flash is an efficiency-focused MoE model with 284B total parameters (13B active) and a 1M-token context window. It's tuned for fast inference and high-throughput use cases while still holding up on reasoning and coding tasks.","context_length":1048576,"max_tokens":1048576,"pricing":{"input_tokens":0.09,"output_tokens":0.18,"cache_read_tokens":0.018},"tags":["chat","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Pixverse/Pixverse-T2V","object":"model","created":0,"owned_by":"deepinfra","root":"Pixverse/Pixverse-T2V","parent":null,"metadata":{"description":"PixVerse's 720p resolution offers a fast and reliable option for generating standard HD videos, ideal for quick previews and social media content where generation speed is prioritized over maximum detail.","context_length":null,"max_tokens":null,"pricing":{},"tags":["video-gen"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"nvidia/Nemotron-3-Nano-30B-A3B","object":"model","created":0,"owned_by":"deepinfra","root":"nvidia/Nemotron-3-Nano-30B-A3B","parent":null,"metadata":{"description":"NVIDIA Nemotron 3 Nano is an open small reasoning model optimized for fast, cost-efficient inference in agentic and production workloads. Built with a hybrid Mixture-of-Experts (MoE) and Mamba-Transformer architecture, it delivers strong multi-step reasoning, high token throughput, stable latency with predictable cost, and efficient deployment for agent-based systems. Designed for real-world AI systems where reasoning can generate significantly more tokens per prompt, Nemotron Nano reduces compute cost while maintaining strong reasoning quality.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.05,"output_tokens":0.2,"cache_read_tokens":0.025},"tags":["chat","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"hexgrad/Kokoro-82M","object":"model","created":0,"owned_by":"deepinfra","root":"hexgrad/Kokoro-82M","parent":null,"metadata":{"description":"Kokoro is an open-weight TTS model with 82 million parameters. Despite its lightweight architecture, it delivers comparable quality to larger models while being significantly faster and more cost-efficient. With Apache-licensed weights, Kokoro can be deployed anywhere from production environments to personal projects.","context_length":null,"max_tokens":null,"pricing":{"input_characters":0.62},"tags":["tts"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"sentence-transformers/all-MiniLM-L6-v2","object":"model","created":0,"owned_by":"deepinfra","root":"sentence-transformers/all-MiniLM-L6-v2","parent":null,"metadata":{"description":"We present a sentence transformation model that achieves state-of-the-art results on various NLP tasks without requiring task-specific architectures or fine-tuning. Our approach leverages contrastive learning and utilizes a variety of datasets to learn robust sentence representations. We evaluate our model on several benchmarks and demonstrate its effectiveness in various applications such as text classification, sentiment analysis, named entity recognition, and question answering.","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.005},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"black-forest-labs/FLUX-1-Redux-dev","object":"model","created":0,"owned_by":"deepinfra","root":"black-forest-labs/FLUX-1-Redux-dev","parent":null,"metadata":{"description":"FLUX.1 Redux [dev] is an image variation generation adapter for all FLUX.1 base models. It enables users to refine images with slight variations and supports text-based restyling via API. Integrated with FLUX1.1 [pro] Ultra, it allows for high-quality 4-megapixel outputs. The model can be used with Diffusers in Python for efficient image generation. While powerful, it has ethical and factual limitations and is governed by a non-commercial license.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.012},"tags":["image-gen"],"default_width":1024,"default_height":1024,"default_iterations":25}},{"id":"thenlper/gte-base","object":"model","created":0,"owned_by":"deepinfra","root":"thenlper/gte-base","parent":null,"metadata":{"description":"The GTE models are trained by Alibaba DAMO Academy. They are mainly based on the BERT framework and currently offer three different sizes of models, including GTE-large, GTE-base, and GTE-small. The GTE models are trained on a large-scale corpus of relevance text pairs, covering a wide range of domains and scenarios. This enables the GTE models to be applied to various downstream tasks of text embeddings, including information retrieval, semantic textual similarity, text reranking, etc.","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.005},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"BAAI/bge-large-en-v1.5","object":"model","created":0,"owned_by":"deepinfra","root":"BAAI/bge-large-en-v1.5","parent":null,"metadata":{"description":"BGE embedding is a general Embedding Model. It is pre-trained using retromae and trained on large-scale pair data using contrastive learning. Note that the goal of pre-training is to reconstruct the text, and the pre-trained model cannot be used for similarity calculation directly, it needs to be fine-tuned","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.01},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Pixverse/Pixverse-6-T2V","object":"model","created":0,"owned_by":"deepinfra","root":"Pixverse/Pixverse-6-T2V","parent":null,"metadata":{"description":"PixVerse V6 redefines AI video by shifting from isolated generation to a unified, model-driven workflow. Key upgrades include 15-second durations at 1080p resolution and a multi-shot engine. This transition allows creators to move beyond short clips toward meaningful narrative production and professional-grade marketing assets suitable for 2026 digital distribution standards.","context_length":null,"max_tokens":null,"pricing":{"output_seconds":0.045},"tags":["video-gen"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"ByteDance/Seedance-1.5-Pro","object":"model","created":0,"owned_by":"deepinfra","root":"ByteDance/Seedance-1.5-Pro","parent":null,"metadata":{"description":"ByteDance's Seedance 1.5 Pro is a professional video model using V2A native generation for integrated, synced audio-visual output, enhancing efficiency of professional video creation.","context_length":null,"max_tokens":null,"pricing":{},"tags":["video-gen"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B","object":"model","created":0,"owned_by":"deepinfra","root":"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B","parent":null,"metadata":{"description":"NVIDIA Nemotron 3 Super is a hybrid Mixture-of-Experts (MoE) model engineered for highest compute efficiency and accuracy in multi-agent applications and specialized agentic systems. It is optimized to run many collaborating agents per application on a single GPU, delivering high accuracy for reasoning, tool use, and instruction following.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.08499999999999999,"output_tokens":0.4},"tags":["chat","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-Embedding-8B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-Embedding-8B","parent":null,"metadata":{"description":"The Qwen3 Embedding model series is the latest proprietary model of the Qwen family, specifically designed for text embedding and ranking tasks. Building upon the dense foundational models of the Qwen3 series, it provides a comprehensive range of text embeddings and reranking models in various sizes (0.6B, 4B, and 8B).","context_length":32768,"max_tokens":32768,"pricing":{"input_tokens":0.01},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen2.5-72B-Instruct","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen2.5-72B-Instruct","parent":null,"metadata":{"description":"Qwen2.5 is a model pretrained on a large-scale dataset of up to 18 trillion tokens, offering significant improvements in knowledge, coding, mathematics, and instruction following compared to its predecessor Qwen2. The model also features enhanced capabilities in generating long texts, understanding structured data, and generating structured outputs, while supporting multilingual capabilities for over 29 languages.","context_length":32768,"max_tokens":32768,"pricing":{"input_tokens":0.36,"output_tokens":0.4},"tags":["chat"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Wan-AI/Wan2.6-T2V","object":"model","created":0,"owned_by":"deepinfra","root":"Wan-AI/Wan2.6-T2V","parent":null,"metadata":{"description":"Turn any prompt into a smooth video. Intelligent shot scheduling supports multi-shot storytelling, generating multi-shot narrative videos with consistent subjects, scenes, and atmosphere","context_length":null,"max_tokens":null,"pricing":{"output_seconds":0.1},"tags":["video-gen"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"anthropic/claude-opus-5","object":"model","created":0,"owned_by":"deepinfra","root":"anthropic/claude-opus-5","parent":null,"metadata":{"description":"Claude Opus 5 is Anthropic's most advanced Opus model, powering long-running agents while delivering improvements in coding and professional work.","context_length":1000000,"max_tokens":1000000,"pricing":{"input_tokens":5.0,"output_tokens":25.0},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"microsoft/phi-4","object":"model","created":0,"owned_by":"deepinfra","root":"microsoft/phi-4","parent":null,"metadata":{"description":"Phi-4 is a model built upon a blend of synthetic datasets, data from filtered public domain websites, and acquired academic books and Q&A datasets. The goal of this approach was to ensure that small capable models were trained with data focused on high quality and advanced reasoning.","context_length":16384,"max_tokens":16384,"pricing":{"input_tokens":0.07,"output_tokens":0.14},"tags":["chat"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-30B-A3B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-30B-A3B","parent":null,"metadata":{"description":"Qwen3 is the latest generation of large language models in Qwen series, offering a comprehensive suite of dense and mixture-of-experts (MoE) models. Built upon extensive training, Qwen3 delivers groundbreaking advancements in reasoning, instruction-following, agent capabilities, and multilingual support","context_length":40960,"max_tokens":40960,"pricing":{"input_tokens":0.12000000000000001,"output_tokens":0.5},"tags":["chat","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"zai-org/GLM-5.2","object":"model","created":0,"owned_by":"deepinfra","root":"zai-org/GLM-5.2","parent":null,"metadata":{"description":"GLM-5.2 is Z-AI's latest flagship model for long-horizon tasks. It marks a substantial leap in long-horizon task capability over its predecessor GLM-5.1 and, for the first time, delivers that capability on a **solid 1M-token context**.","context_length":1048576,"max_tokens":1048576,"pricing":{"input_tokens":0.7499999999999999,"output_tokens":2.4,"cache_read_tokens":0.1400000025},"tags":["chat","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"BAAI/bge-en-icl","object":"model","created":0,"owned_by":"deepinfra","root":"BAAI/bge-en-icl","parent":null,"metadata":{"description":"A LLM-based embedding model with in-context learning capabilities that achieves SOTA performance on BEIR and AIR-Bench. It leverages few-shot examples to enhance task performance.","context_length":8192,"max_tokens":8192,"pricing":{"input_tokens":0.01},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"ByteDance/Seed-2.0-pro","object":"model","created":0,"owned_by":"deepinfra","root":"ByteDance/Seed-2.0-pro","parent":null,"metadata":{"description":"Built for the Agent era, it delivers stable performance in complex reasoning and long-horizon tasks, including multi-step planning, visual-text reasoning, video understanding, and advanced analysis.","context_length":256000,"max_tokens":256000,"pricing":{"input_tokens":0.5,"output_tokens":2.9999999999999996,"cache_read_tokens":0.1},"tags":["chat","vlm","vision","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/gemma-4-E4B-it","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemma-4-E4B-it","parent":null,"metadata":{"description":"","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.02,"output_tokens":0.1},"tags":["chat","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"black-forest-labs/FLUX-1-schnell","object":"model","created":0,"owned_by":"deepinfra","root":"black-forest-labs/FLUX-1-schnell","parent":null,"metadata":{"description":"FLUX.1 [schnell] is a 12 billion parameter rectified flow transformer capable of generating images from text descriptions. This model offers cutting-edge output quality and competitive prompt following, matching the performance of closed source alternatives. Trained using latent adversarial diffusion distillation, FLUX.1 [schnell] can generate high-quality images in only 1 to 4 steps.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.0005},"tags":["image-gen"],"default_width":1024,"default_height":1024,"default_iterations":1}},{"id":"MiniMaxAI/MiniMax-M2.7-Turbo","object":"model","created":0,"owned_by":"deepinfra","root":"MiniMaxAI/MiniMax-M2.7-Turbo","parent":null,"metadata":{"description":"Speed-optimized MiniMax-M2.7","context_length":196608,"max_tokens":196608,"pricing":{"input_tokens":0.38,"output_tokens":1.7,"cache_read_tokens":0.07000000140000001},"tags":["chat","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"sentence-transformers/clip-ViT-B-32","object":"model","created":0,"owned_by":"deepinfra","root":"sentence-transformers/clip-ViT-B-32","parent":null,"metadata":{"description":"The CLIP model maps text and images to a shared vector space, enabling various applications such as image search, zero-shot image classification, and image clustering. The model can be used easily after installation, and its performance is demonstrated through zero-shot ImageNet validation set accuracy scores. Multilingual versions of the model are also available for 50+ languages.","context_length":77,"max_tokens":77,"pricing":{"input_tokens":0.005},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"intfloat/multilingual-e5-large-instruct","object":"model","created":0,"owned_by":"deepinfra","root":"intfloat/multilingual-e5-large-instruct","parent":null,"metadata":{"description":"The Multilingual-E5 models, initialized from XLM-RoBERTa, support up to 512 tokens per input — any longer text will be silently truncated. To ensure optimal performance, always prefix inputs with “query:” or “passage:”, as the model was explicitly trained with this format.","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.01},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo","parent":null,"metadata":{"description":"Qwen3-Coder-480B-A35B-Instruct is the Qwen3's most agentic code model, featuring Significant Performance on Agentic Coding, Agentic Browser-Use and other foundational coding tasks, achieving results comparable to Claude Sonnet.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.3,"output_tokens":1.0,"cache_read_tokens":0.09999999899999999},"tags":["chat","prompt_cache"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"ByteDance/Seed-1.8","object":"model","created":0,"owned_by":"deepinfra","root":"ByteDance/Seed-1.8","parent":null,"metadata":{"description":"Optimized specifically for multimodal agent scenarios. It features enhanced agent capabilities, upgraded multimodal comprehension, and more flexible context management.","context_length":256000,"max_tokens":256000,"pricing":{"input_tokens":0.25,"output_tokens":2.0,"cache_read_tokens":0.05},"tags":["chat","vlm","vision","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"thinkingmachines/Inkling","object":"model","created":0,"owned_by":"deepinfra","root":"thinkingmachines/Inkling","parent":null,"metadata":{"description":"Inkling is a general-purpose multimodal model that accepts text, image and audio inputs and generates text outputs.","context_length":524288,"max_tokens":524288,"pricing":{"input_tokens":1.0,"output_tokens":4.05,"cache_read_tokens":0.17},"tags":["chat","vlm","vision","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"anthropic/claude-opus-4-8","object":"model","created":0,"owned_by":"deepinfra","root":"anthropic/claude-opus-4-8","parent":null,"metadata":{"description":"Claude Opus 4.8 is our most intelligent Opus model and the best generally available model for coding and agents, with deeper reasoning for enterprise workflows.","context_length":1000000,"max_tokens":1000000,"pricing":{"input_tokens":5.0,"output_tokens":25.0},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Bria/erase_foreground","object":"model","created":0,"owned_by":"deepinfra","root":"Bria/erase_foreground","parent":null,"metadata":{"description":"Bria Erase Foreground precisely removes main subjects or foreground objects from images. Built entirely on licensed data, it is safe and optimized for professional and commercial use.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.04},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"anthropic/claude-opus-4-7","object":"model","created":0,"owned_by":"deepinfra","root":"anthropic/claude-opus-4-7","parent":null,"metadata":{"description":"Anthropic's most capable production model yet, advancing performance across coding, enterprise workflows, and long-running agentic tasks.","context_length":1000000,"max_tokens":1000000,"pricing":{"input_tokens":5.0,"output_tokens":25.0},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"deepseek-ai/DeepSeek-V3.2","object":"model","created":0,"owned_by":"deepinfra","root":"deepseek-ai/DeepSeek-V3.2","parent":null,"metadata":{"description":"DeepSeek-V3.2 is a large language model designed to harmonize high computational efficiency with strong reasoning and agentic tool-use performance. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism that reduces training and inference cost while preserving quality in long-context scenarios. A scalable reinforcement learning post-training framework further improves reasoning, with reported performance in the GPT-5 class, and the model has demonstrated gold-medal results on the 2025 IMO and IOI. V3.2 also uses a large-scale agentic task synthesis pipeline to better integrate reasoning into tool-use settings, boosting compliance and generalization in interactive environments.","context_length":163840,"max_tokens":163840,"pricing":{"input_tokens":0.26,"output_tokens":0.38,"cache_read_tokens":0.13},"tags":["chat","prompt_cache"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"sentence-transformers/clip-ViT-B-32-multilingual-v1","object":"model","created":0,"owned_by":"deepinfra","root":"sentence-transformers/clip-ViT-B-32-multilingual-v1","parent":null,"metadata":{"description":"This model is a multilingual version of the OpenAI CLIP-ViT-B32 model, which maps text and images to a common dense vector space. It includes a text embedding model that works for 50+ languages and an image encoder from CLIP. The model was trained using Multilingual Knowledge Distillation, where a multilingual DistilBERT model was trained as a student model to align the vector space of the original CLIP image encoder across many languages.","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.005},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"black-forest-labs/FLUX-2-klein-4b","object":"model","created":0,"owned_by":"deepinfra","root":"black-forest-labs/FLUX-2-klein-4b","parent":null,"metadata":{"description":"The fastest model of the Flux 2 family. Frontier visual intelligence — state-of-the-art image generation and editing from Black Forest Labs","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.013999999999999999},"tags":["image-gen"],"default_width":1024,"default_height":1024,"default_iterations":0}},{"id":"anthropic/claude-sonnet-4-6","object":"model","created":0,"owned_by":"deepinfra","root":"anthropic/claude-sonnet-4-6","parent":null,"metadata":{"description":"Claude Sonnet 4.6 delivers frontier intelligence at scale—built for coding, agents, and enterprise workflows.","context_length":1000000,"max_tokens":1000000,"pricing":{"input_tokens":2.9999999999999996,"output_tokens":15.0},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"nvidia/Nemotron-Content-Safety-3.5","object":"model","created":0,"owned_by":"deepinfra","root":"nvidia/Nemotron-Content-Safety-3.5","parent":null,"metadata":{"description":"Nemotron Content Safety 3.5 is a multimodal safety classifier developed by NVIDIA. A compact safety model that handles text, images, and custom policies. It outputs a safe/unsafe classification plus a reasoning trace, and can be used as an inference-time guardrail, as a judge for LLM safety testing and evaluation, or with the accompanying training dataset to post-train models for safer behavior.","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.2,"output_tokens":0.2},"tags":["chat","vlm","vision"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Wan-AI/Wan2.6-T2I","object":"model","created":0,"owned_by":"deepinfra","root":"Wan-AI/Wan2.6-T2I","parent":null,"metadata":{"description":"Wan2.6 text to image, Upgraded visual quality, aesthetics, and instruction-following deliver precise style control, realistic portraits, long-text understanding, and broad historical/cultural IP coverage, enabling high-quality, highly expressive visual generation.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.03},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"Bria/fibo","object":"model","created":0,"owned_by":"deepinfra","root":"Bria/fibo","parent":null,"metadata":{"description":"FIBO is an open-source, JSON-native text-to-image model trained on detailed structured descriptions (over 1,000+ words per image), providing fine-grained control over light, composition, and camera parameters.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.04},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"Bria/expand","object":"model","created":0,"owned_by":"deepinfra","root":"Bria/expand","parent":null,"metadata":{"description":"Bria Expand expands images beyond their borders in high quality. Resizing the image by generating new pixels to expand to the desired aspect ratio. Trained exclusively on licensed data for safe and risk-free commercial use.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.04},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"google/gemma-4-31B-it-turbo","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemma-4-31B-it-turbo","parent":null,"metadata":{"description":"Gemma is a family of open models built by Google DeepMind. Gemma 4 models are multimodal, handling text and image input and generating text output.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.09,"output_tokens":0.33999999999999997},"tags":["chat","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"zai-org/GLM-4.6","object":"model","created":0,"owned_by":"deepinfra","root":"zai-org/GLM-4.6","parent":null,"metadata":{"description":"Compared with GLM-4.5, GLM-4.6 brings several key improvements: Longer context window: The context window has been expanded from 128K to 200K tokens, enabling the model to handle more complex agentic tasks. Superior coding performance: The model achieves higher scores on code benchmarks and demonstrates better real-world performance in applications such as Claude Code、Cline、Roo Code and Kilo Code, including improvements in generating visually polished front-end pages. Advanced reasoning: GLM-4.6 shows a clear improvement in reasoning performance and supports tool use during inference, leading to stronger overall capability. More capable agents: GLM-4.6 exhibits stronger performance in tool using and search-based agents, and integrates more effectively within agent frameworks. Refined writing: Better aligns with human preferences in style and readability, and performs more naturally in role-playing scenarios.","context_length":202752,"max_tokens":202752,"pricing":{"input_tokens":0.5,"output_tokens":2.0,"cache_read_tokens":0.1},"tags":["chat","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"zai-org/GLM-5","object":"model","created":0,"owned_by":"deepinfra","root":"zai-org/GLM-5","parent":null,"metadata":{"description":"GLM-5 is an advanced, open-source large language model designed for developers tackling the toughest challenges. It excels at long-context reasoning, multi-step tool orchestration, and complex systems engineering, making it the ideal choice for powering sophisticated agents and applications that require high-level cognitive tasks.","context_length":202752,"max_tokens":202752,"pricing":{"input_tokens":0.6,"output_tokens":2.08,"cache_read_tokens":0.12},"tags":["chat","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"zai-org/GLM-4.7","object":"model","created":0,"owned_by":"deepinfra","root":"zai-org/GLM-4.7","parent":null,"metadata":{"description":"GLM-4.7 is a state-of-the-art, multilingual Mixture-of-Experts (MoE) language model designed for complex reasoning, agentic coding, and tool use. Building on its predecessor GLM-4.6, it delivers significant improvements across key benchmarks, including multilingual SWE-bench, Terminal Bench, and reasoning-heavy evaluations like HLE. The model features advanced \"Interleaved Thinking\" and new \"Preserved Thinking\" modes, allowing it to reason before actions and maintain consistency across long, multi-turn tasks. With 358 billion parameters, GLM-4.7 excels in generating clean code, modern UI elements, and sophisticated reasoning outputs.","context_length":202752,"max_tokens":202752,"pricing":{"input_tokens":0.4,"output_tokens":1.75,"cache_read_tokens":0.08000000000000002},"tags":["chat","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"mistralai/Mistral-Nemo-Instruct-2407","object":"model","created":0,"owned_by":"deepinfra","root":"mistralai/Mistral-Nemo-Instruct-2407","parent":null,"metadata":{"description":"12B model trained jointly by Mistral AI and NVIDIA, it significantly outperforms existing models smaller or similar in size.","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.019000000000000003,"output_tokens":0.030000000000000002},"tags":["chat"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"openai/gpt-oss-20b","object":"model","created":0,"owned_by":"deepinfra","root":"openai/gpt-oss-20b","parent":null,"metadata":{"description":"gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for lower-latency inference. The model is trained in OpenAI’s Harmony response format and supports reasoning level configuration, fine-tuning, and agentic capabilities including function calling, tool use, and structured outputs.","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.030000000000000002,"output_tokens":0.14},"tags":["chat","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Bria/fibo_edit","object":"model","created":0,"owned_by":"deepinfra","root":"Bria/fibo_edit","parent":null,"metadata":{"description":"🥳 For a limited time, Fibo Edit is free on DeepInfra 🥳 YOUR AI, YOUR RULES. Visual Generation for Production-Grade. FIBO Edit. An open-source image editing model with native masking and a lightweight 8B architecture.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.04},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"deepseek-ai/DeepSeek-V3.1","object":"model","created":0,"owned_by":"deepinfra","root":"deepseek-ai/DeepSeek-V3.1","parent":null,"metadata":{"description":"DeepSeek-V3.1 is post-trained on the top of DeepSeek-V3.1-Base, which is built upon the original V3 base checkpoint through a two-phase long context extension approach, following the methodology outlined in the original DeepSeek-V3 report. We have expanded our dataset by collecting additional long documents and substantially extending both training phases. The 32K extension phase has been increased 10-fold to 630B tokens, while the 128K extension phase has been extended by 3.3x to 209B tokens. Additionally, DeepSeek-V3.1 is trained using the UE8M0 FP8 scale data format to ensure compatibility with microscaling data formats.","context_length":163840,"max_tokens":163840,"pricing":{"input_tokens":0.25,"output_tokens":0.95,"cache_read_tokens":0.13},"tags":["chat","prompt_cache","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Bria/Bria-3.2-vector","object":"model","created":0,"owned_by":"deepinfra","root":"Bria/Bria-3.2-vector","parent":null,"metadata":{"description":"Bria 3.2 is the next-generation commercial-ready text-to-image model. With just 4 billion parameters, it provides exceptional aesthetics and text rendering, evaluated to be on par to leading open-source models, and outperforming other licensed models.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.04},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-VL-30B-A3B-Instruct","parent":null,"metadata":{"description":"Meet Qwen3-VL — the most powerful vision-language model in the Qwen series to date. This generation delivers comprehensive upgrades across the board: superior text understanding & generation, deeper visual perception & reasoning, extended context length, enhanced spatial and video dynamics comprehension, and stronger agent interaction capabilities.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.15,"output_tokens":0.6},"tags":["chat","vlm","vision","reasoning_effort"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"XiaomiMiMo/MiMo-V2.5-tts","object":"model","created":0,"owned_by":"deepinfra","root":"XiaomiMiMo/MiMo-V2.5-tts","parent":null,"metadata":{"description":"Automatically convert input text into natural and fluent speech output. You can generate natural and vivid speech content by configuring parameters such as speech style and voice. Use the high-quality voices from the built-in voices list.","context_length":null,"max_tokens":null,"pricing":{"input_characters":0.0},"tags":["tts"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen-Image-Edit","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen-Image-Edit","parent":null,"metadata":{"description":"Qwen-Image-Edit is a next-generation image editing model built on top of Qwen-Image, designed for both semantic and appearance-level edits. It excels at tasks like precise text modifications, style transfers, viewpoint transformations, and element adjustments while preserving overall visual consistency.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.025},"tags":["image-gen"],"default_width":1024,"default_height":1024,"default_iterations":25}},{"id":"BAAI/bge-base-en-v1.5","object":"model","created":0,"owned_by":"deepinfra","root":"BAAI/bge-base-en-v1.5","parent":null,"metadata":{"description":"BGE embedding is a general Embedding Model. It is pre-trained using retromae and trained on large-scale pair data using contrastive learning. Note that the goal of pre-training is to reconstruct the text, and the pre-trained model cannot be used for similarity calculation directly, it needs to be fine-tuned","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.005},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-ASR-1.7B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-ASR-1.7B","parent":null,"metadata":{"description":"Qwen3-ASR-1.7B is the flagship model of the Qwen3-ASR family: multilingual language identification and speech recognition across 30 languages and 22 Chinese dialects, built on Qwen3-Omni. It reaches state-of-the-art accuracy among open-source ASR models (competitive with strong commercial APIs), with unified streaming/offline inference and segment- and word-level timestamps.","context_length":null,"max_tokens":null,"pricing":{"input_seconds":7.5e-06},"tags":["stt"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"openai/gpt-oss-120b-Turbo","object":"model","created":0,"owned_by":"deepinfra","root":"openai/gpt-oss-120b-Turbo","parent":null,"metadata":{"description":"","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.15,"output_tokens":0.6},"tags":["chat","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-32B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-32B","parent":null,"metadata":{"description":"Qwen3 is the latest generation of large language models in Qwen series, offering a comprehensive suite of dense and mixture-of-experts (MoE) models. Built upon extensive training, Qwen3 delivers groundbreaking advancements in reasoning, instruction-following, agent capabilities, and multilingual support","context_length":40960,"max_tokens":40960,"pricing":{"input_tokens":0.08,"output_tokens":0.28},"tags":["chat","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"deepseek-ai/DeepSeek-V3-0324","object":"model","created":0,"owned_by":"deepinfra","root":"deepseek-ai/DeepSeek-V3-0324","parent":null,"metadata":{"description":"DeepSeek-V3-0324, a strong Mixture-of-Experts (MoE) language model with 671B total parameters with 37B activated for each token, an improved iteration over DeepSeek-V3.","context_length":163840,"max_tokens":163840,"pricing":{"input_tokens":0.24000000000000002,"output_tokens":0.9,"cache_read_tokens":0.135},"tags":["chat","prompt_cache"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Pixverse/Pixverse-T2V-HD","object":"model","created":0,"owned_by":"deepinfra","root":"Pixverse/Pixverse-T2V-HD","parent":null,"metadata":{"description":"The 1080p high-fidelity mode in PixVerse renders videos with significantly enhanced sharpness and visual clarity, capturing intricate details and providing a crisp, professional-grade quality suitable for more polished projects.","context_length":null,"max_tokens":null,"pricing":{},"tags":["video-gen"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"deepseek-ai/DeepSeek-V3","object":"model","created":0,"owned_by":"deepinfra","root":"deepseek-ai/DeepSeek-V3","parent":null,"metadata":{"description":"DeepSeek-V3, a strong Mixture-of-Experts (MoE) language model with 671B total parameters with 37B activated for each token. To achieve efficient inference and cost-effective training, DeepSeek-V3 adopts Multi-head Latent Attention (MLA) and DeepSeekMoE architectures, which were thoroughly validated in DeepSeek-V2.","context_length":163840,"max_tokens":163840,"pricing":{"input_tokens":0.32,"output_tokens":0.8899999999999999},"tags":["chat"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"XiaomiMiMo/MiMo-V2.5-Pro","object":"model","created":0,"owned_by":"deepinfra","root":"XiaomiMiMo/MiMo-V2.5-Pro","parent":null,"metadata":{"description":"MiMo-V2.5-Pro is an open-source Mixture-of-Experts (MoE) language model with 1.02T total parameters and 42B active parameters. It utilizes the hybrid attention architecture and 3-layers Multi-Token Prediction (MTP) introduced in [MiMo-V2-Flash](https://github.com/XiaomiMiMo/MiMo-V2-Flash).","context_length":1048576,"max_tokens":1048576,"pricing":{"input_tokens":1.0,"output_tokens":2.9999999999999996,"cache_read_tokens":0.2},"tags":["chat","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"nvidia/llama-nemotron-embed-vl-1b-v2","object":"model","created":0,"owned_by":"deepinfra","root":"nvidia/llama-nemotron-embed-vl-1b-v2","parent":null,"metadata":{"description":"The llama-nemotron-embed-vl-1b-v2 is a high-performance multimodal embedding model designed to transform text queries and document images into dense vector representations for advanced retrieval systems. It excels at understanding complex visual content like charts, tables, and infographics.","context_length":10240,"max_tokens":10240,"pricing":{"input_tokens":0.01},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"moonshotai/Kimi-K2.6","object":"model","created":0,"owned_by":"deepinfra","root":"moonshotai/Kimi-K2.6","parent":null,"metadata":{"description":"Kimi K2.6 is an open-source, native multimodal agentic model that advances practical capabilities in long-horizon coding, coding-driven design, proactive autonomous execution, and swarm-based task orchestration.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.7499999999999999,"output_tokens":3.5,"cache_read_tokens":0.15},"tags":["chat","vlm","vision","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"tencent/Hy3","object":"model","created":0,"owned_by":"deepinfra","root":"tencent/Hy3","parent":null,"metadata":{"description":"Hy3 is a 295B-parameter Mixture-of-Experts (MoE) model with 21B active parameters and 3.8B MTP layer parameters, developed by the Tencent Hy Team. Following the Hy3 Preview launch in late April, we gathered feedback from 50+ products and scaled up post-training with higher quality data. Today, we introduce Hy3, which outperforms similar-size models and rivals flagship open-source models with 2-5x parameters. It also shows significant gains in utility across various products and productivity tasks.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.14,"output_tokens":0.58,"cache_read_tokens":0.035},"tags":["chat","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-VL-235B-A22B-Instruct","parent":null,"metadata":{"description":"Meet Qwen3-VL — the most powerful vision-language model in the Qwen series to date. This generation delivers comprehensive upgrades across the board: superior text understanding & generation, deeper visual perception & reasoning, extended context length, enhanced spatial and video dynamics comprehension, and stronger agent interaction capabilities.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.2,"output_tokens":0.8799999999999999,"cache_read_tokens":0.11000000000000001},"tags":["chat","vlm","vision","prompt_cache","reasoning_effort"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"deepseek-ai/DeepSeek-R1-0528","object":"model","created":0,"owned_by":"deepinfra","root":"deepseek-ai/DeepSeek-R1-0528","parent":null,"metadata":{"description":"The DeepSeek R1 model has undergone a minor version upgrade, with the current version being DeepSeek-R1-0528.","context_length":163840,"max_tokens":163840,"pricing":{"input_tokens":0.5,"output_tokens":2.15,"cache_read_tokens":0.35},"tags":["chat","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"PrunaAI/p-image","object":"model","created":0,"owned_by":"deepinfra","root":"PrunaAI/p-image","parent":null,"metadata":{"description":"P-Image is a state-of-the-art real-time generation model with exceptional text rendering, fine-detail accuracy, and rock-solid prompt adherence. It’s built for instant creativity at high-fidelity images in about one second at a fraction of typical model costs.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.005},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"sentence-transformers/paraphrase-MiniLM-L6-v2","object":"model","created":0,"owned_by":"deepinfra","root":"sentence-transformers/paraphrase-MiniLM-L6-v2","parent":null,"metadata":{"description":"We present a sentence similarity model based on the Sentence Transformers architecture, which maps sentences to a 384-dimensional dense vector space. The model uses a pre-trained BERT encoder and applies mean pooling on top of the contextualized word embeddings to obtain sentence embeddings. We evaluate the model on the Sentence Embeddings Benchmark.","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.005},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"inworld-ai/realtime-tts-1.5-max","object":"model","created":0,"owned_by":"deepinfra","root":"inworld-ai/realtime-tts-1.5-max","parent":null,"metadata":{"description":"High-quality multilingual text-to-speech model by Inworld AI with 130+ preset voices across 15 languages. Supports voice cloning, word-level timestamps, and streaming. Optimized for natural, expressive speech with <250ms time-to-first-audio.","context_length":null,"max_tokens":null,"pricing":{"input_characters":50.0},"tags":["tts"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/gemini-3.5-flash","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemini-3.5-flash","parent":null,"metadata":{"description":"Gemini 3.5 Flash delivers near-Pro intelligence at Flash-tier cost and speed: Pro-level coding proficiency, parallel agentic execution, all at a much lower price.","context_length":1000000,"max_tokens":1000000,"pricing":{"input_tokens":1.4999999999999998,"output_tokens":9.0},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-Max-Thinking","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-Max-Thinking","parent":null,"metadata":{"description":"The latest flagship reasoning model in the Qwen3 family. Further enhanced by multiple innovations like adaptive tool-use and advanced test-time scaling techniques","context_length":256000,"max_tokens":256000,"pricing":{"input_tokens":1.2,"output_tokens":5.999999999999999,"cache_read_tokens":0.24},"tags":["chat","prompt_cache","reasoning_effort"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen-Image-Max","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen-Image-Max","parent":null,"metadata":{"description":"Compared with the Plus series, it significantly reduces the “AI-like” feel in generated images, enhancing their realism. It delivers more lifelike material textures for human subjects, finer and more detailed natural textures, and more visually appealing text rendering.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.075},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"black-forest-labs/FLUX-2-max","object":"model","created":0,"owned_by":"deepinfra","root":"black-forest-labs/FLUX-2-max","parent":null,"metadata":{"description":"The new top-tier image model from Black Forest Labs, significantly pushing image quality and editing consistency","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.1},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"google/gemma-4-31B-it","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemma-4-31B-it","parent":null,"metadata":{"description":"Gemma is a family of open models built by Google DeepMind. Gemma 4 models are multimodal, handling text and image input and generating text output.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.13,"output_tokens":0.38},"tags":["chat","vlm","vision","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"ByteDance/Seedream-4","object":"model","created":0,"owned_by":"deepinfra","root":"ByteDance/Seedream-4","parent":null,"metadata":{"description":"Seedream 4.0 is a SOTA multimodal image creation model built on leading architecture. It breaks through the boundaries of traditional text-to-image models by natively supporting text, single-image, and multi-image inputs. Users can freely combine text and images to achieve diverse creative modes within a single model—such as multi-image blending, image editing, and sequentially batch image generation, featuring subject consistency, making image creation more free and controllable.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.04},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"moonshotai/Kimi-K2.5","object":"model","created":0,"owned_by":"deepinfra","root":"moonshotai/Kimi-K2.5","parent":null,"metadata":{"description":"Kimi K2.5 is an open-source, native multimodal agentic model built through continual pretraining on approximately 15 trillion mixed visual and text tokens atop Kimi-K2-Base. It seamlessly integrates vision and language understanding with advanced agentic capabilities, instant and thinking modes, as well as conversational and agentic paradigms.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.45,"output_tokens":2.25,"cache_read_tokens":0.070000002},"tags":["chat","vlm","vision","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"XiaomiMiMo/MiMo-V2.5-tts-voicedesign","object":"model","created":0,"owned_by":"deepinfra","root":"XiaomiMiMo/MiMo-V2.5-tts-voicedesign","parent":null,"metadata":{"description":"Automatically convert input text into natural and fluent speech output. You can generate natural and vivid speech content by configuring parameters such as speech style and voice. Automatically generate voices from text descriptions, without requiring presets or audio samples.","context_length":null,"max_tokens":null,"pricing":{"input_characters":0.0},"tags":["tts"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","object":"model","created":0,"owned_by":"deepinfra","root":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","parent":null,"metadata":{"description":"The Llama 4 collection of models are natively multimodal AI models that enable text and multimodal experiences. These models leverage a mixture-of-experts architecture to offer industry-leading performance in text and image understanding. Llama 4 Maverick, a 17 billion parameter model with 128 experts","context_length":1048576,"max_tokens":1048576,"pricing":{"input_tokens":0.2,"output_tokens":0.8},"tags":["chat","vlm","vision"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"intfloat/multilingual-e5-large","object":"model","created":0,"owned_by":"deepinfra","root":"intfloat/multilingual-e5-large","parent":null,"metadata":{"description":"The Multilingual-E5-large model is a 24-layer text embedding model with an embedding size of 1024, trained on a mixture of multilingual datasets and supporting 100 languages.","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.01},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3.5-27B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3.5-27B","parent":null,"metadata":{"description":"Qwen3.5-27B is Alibaba's largest dense Qwen3.5 model, delivering near-frontier quality across reasoning, coding, and instruction following. It features a 262K token context window (extensible to 1M), thinking/reasoning mode, tool calling, multi-token prediction, and support for 201 languages. Best suited for production deployments and complex enterprise tasks requiring top-tier performance.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.26,"output_tokens":2.5999999999999996},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/gemini-2.5-pro","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemini-2.5-pro","parent":null,"metadata":{"description":"Gemini 2.5 Pro is Google's the most advanced thinking model, designed to tackle increasingly complex problems. Gemini 2.5 Pro leads common benchmarks by meaningful margins and showcases strong reasoning and code capabilities. Gemini 2.5 models are thinking models, capable of reasoning through their thoughts before responding, resulting in enhanced performance and improved accuracy. The Gemini 2.5 Pro model is now available on DeepInfra.","context_length":1000000,"max_tokens":1000000,"pricing":{"input_tokens":1.25,"output_tokens":10.0},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"nvidia/Cosmos3-Nano","object":"model","created":0,"owned_by":"deepinfra","root":"nvidia/Cosmos3-Nano","parent":null,"metadata":{"description":"Cosmos3 is a world foundation model that unifies understanding and generation within a single Mixture-of-Transformer (MoT) architecture. Two tightly coupled towers—a Reasoner (vision-language model) and a Generator (world simulator)—share latent representations so that structured perception directly grounds realistic, temporally consistent simulation.","context_length":null,"max_tokens":null,"pricing":{},"tags":["video-gen"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo","object":"model","created":0,"owned_by":"deepinfra","root":"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo","parent":null,"metadata":{"description":"Meta developed and released the Meta Llama 3.1 family of large language models (LLMs), a collection of pretrained and instruction tuned generative text models in 8B, 70B and 405B sizes","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.4,"output_tokens":0.4},"tags":["chat"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"NousResearch/Hermes-3-Llama-3.1-70B","object":"model","created":0,"owned_by":"deepinfra","root":"NousResearch/Hermes-3-Llama-3.1-70B","parent":null,"metadata":{"description":"Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the board.","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.7,"output_tokens":0.7},"tags":["chat"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"inworld-ai/realtime-tts-1.5-mini","object":"model","created":0,"owned_by":"deepinfra","root":"inworld-ai/realtime-tts-1.5-mini","parent":null,"metadata":{"description":"Fast multilingual text-to-speech model by Inworld AI with 130+ preset voices across 15 languages. Supports voice cloning, word-level timestamps, and streaming. Optimized for low-latency applications with <130ms time-to-first-audio.","context_length":null,"max_tokens":null,"pricing":{"input_characters":25.0},"tags":["tts"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","object":"model","created":0,"owned_by":"deepinfra","root":"deepseek-ai/DeepSeek-V3.1-Terminus","parent":null,"metadata":{"description":"DeepSeek-V3.1 Terminus is an update to DeepSeek V3.1 that maintains the model's original capabilities while addressing issues reported by users, including language consistency and agent capabilities, further optimizing the model's performance in coding and search agents. It is a large hybrid reasoning model (671B parameters, 37B active) that supports both thinking and non-thinking modes. It extends the DeepSeek-V3 base with a two-phase long-context training process. Users can control the reasoning behaviour with the reasoning enabled boolean. Learn more in our docs The model improves tool use, code generation, and reasoning efficiency, achieving performance comparable to DeepSeek-R1 on difficult benchmarks while responding more quickly. It supports structured tool calling, code agents, and search agents, making it suitable for research, coding, and agentic workflows.","context_length":163840,"max_tokens":163840,"pricing":{"input_tokens":0.27,"output_tokens":0.95,"cache_read_tokens":0.12999999960000003},"tags":["chat","prompt_cache","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"black-forest-labs/FLUX-1-dev","object":"model","created":0,"owned_by":"deepinfra","root":"black-forest-labs/FLUX-1-dev","parent":null,"metadata":{"description":"FLUX.1-dev is a state-of-the-art 12 billion parameter rectified flow transformer developed by Black Forest Labs. This model excels in text-to-image generation, providing highly accurate and detailed outputs. It is particularly well-regarded for its ability to follow complex prompts and generate anatomically accurate images, especially with challenging details like hands and faces.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.009000000000000001},"tags":["image-gen"],"default_width":1024,"default_height":1024,"default_iterations":25}},{"id":"Sao10K/L3-8B-Lunaris-v1-Turbo","object":"model","created":0,"owned_by":"deepinfra","root":"Sao10K/L3-8B-Lunaris-v1-Turbo","parent":null,"metadata":{"description":"","context_length":8192,"max_tokens":8192,"pricing":{"input_tokens":0.04,"output_tokens":0.05},"tags":["chat"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"BAAI/bge-m3-multi","object":"model","created":0,"owned_by":"deepinfra","root":"BAAI/bge-m3-multi","parent":null,"metadata":{"description":"BGE-M3 is a multilingual text embedding model developed by BAAI, distinguished by its Multi-Linguality (supporting 100+ languages), Multi-Functionality (unified dense, multi-vector, and sparse retrieval), and Multi-Granularity (handling inputs from short queries to 8192-token documents). It achieves state-of-the-art retrieval performance across diverse benchmarks while maintaining a single model for multiple retrieval modes.","context_length":8192,"max_tokens":8192,"pricing":{"input_tokens":0.01},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"ByteDance/Seed-2.0-code","object":"model","created":0,"owned_by":"deepinfra","root":"ByteDance/Seed-2.0-code","parent":null,"metadata":{"description":"A coding model optimized for real-world development environments, with reliable tool use in common IDEs such as Claude Code. It delivers strong front-end performance and supports Skills.","context_length":256000,"max_tokens":256000,"pricing":{"input_tokens":0.5,"output_tokens":2.9999999999999996,"cache_read_tokens":0.1},"tags":["chat","vlm","vision","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"black-forest-labs/FLUX-2-pro","object":"model","created":0,"owned_by":"deepinfra","root":"black-forest-labs/FLUX-2-pro","parent":null,"metadata":{"description":"Multi-reference visual intelligence with unprecedented detail, color precision, and spatial reasoning. The most advanced image generation and editing model. Generate photorealistic images with precise control.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.015},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"openai/gpt-oss-120b","object":"model","created":0,"owned_by":"deepinfra","root":"openai/gpt-oss-120b","parent":null,"metadata":{"description":"gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. The model supports configurable reasoning depth, full chain-of-thought access, and native tool use, including function calling, browsing, and structured output generation.","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.037,"output_tokens":0.16999999999999998},"tags":["chat","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"stepfun-ai/Step-3.7-Flash","object":"model","created":0,"owned_by":"deepinfra","root":"stepfun-ai/Step-3.7-Flash","parent":null,"metadata":{"description":"Step 3.7 Flash is an open-source multimodal reasoning model by StepFun with 198B total parameters (11B active) using Mixture of Experts. It accepts text and image inputs and features a 256K context window, selectable reasoning effort, tool calling, and agentic capabilities for coding and search workflows, scoring 80.9% on GPQA Diamond and 56.3% on SWE-bench Pro.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.2,"output_tokens":1.15,"cache_read_tokens":0.04000000000000001},"tags":["chat","vlm","vision","prompt_cache"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"sentence-transformers/all-MiniLM-L12-v2","object":"model","created":0,"owned_by":"deepinfra","root":"sentence-transformers/all-MiniLM-L12-v2","parent":null,"metadata":{"description":"We present a sentence transformation model that generates semantically similar sentences. Our model is based on the Sentence-Transformers architecture and was trained on a large dataset of sentence pairs. We evaluate the effectiveness of our model by measuring its ability to generate similar sentences that are close to the original sentence in meaning.","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.005},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"black-forest-labs/FLUX-2-dev","object":"model","created":0,"owned_by":"deepinfra","root":"black-forest-labs/FLUX-2-dev","parent":null,"metadata":{"description":"Brand-new Flux2 Dev introduces a faster, more modular architecture for next-generation image generation pipelines. It delivers improved performance, cleaner control APIs, and a significantly more flexible development workflow for custom inference setups.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.01},"tags":["image-gen"],"default_width":1024,"default_height":1024,"default_iterations":28}},{"id":"BAAI/bge-m3","object":"model","created":0,"owned_by":"deepinfra","root":"BAAI/bge-m3","parent":null,"metadata":{"description":"BGE-M3 is a versatile text embedding model that supports multi-functionality, multi-linguality, and multi-granularity, allowing it to perform dense retrieval, multi-vector retrieval, and sparse retrieval in over 100 languages and with input sizes up to 8192 tokens. The model can be used in a retrieval pipeline with hybrid retrieval and re-ranking to achieve higher accuracy and stronger generalization capabilities. BGE-M3 has shown state-of-the-art performance on several benchmarks, including MKQA, MLDR, and NarritiveQA, and can be used as a drop-in replacement for other embedding models like DPR and BGE-v1.5.","context_length":8192,"max_tokens":8192,"pricing":{"input_tokens":0.01},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-TTS","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-TTS","parent":null,"metadata":{"description":"Qwen3-TTS is an advanced text-to-speech model by Alibaba's Qwen team, delivering stable, expressive, and low-latency speech generation across 10 languages. Key capabilities: - 9 preset voices — Vivian, Serena, Uncle_Fu, Dylan, Eric, Ryan, Aiden, Ono_Anna, Sohee — covering diverse genders, ages, and accents - Voice cloning — clone any voice from a short (~3s) audio sample via the voice_id parameter - Instruction control — adjust tone, emotion, and speaking style with natural language (e.g. \"speak slowly and calmly\", \"excited tone\") - 10 languages — English, Chinese, Japanese, Korean, German, French, Russian, Spanish, Italian, Portuguese - Streaming support — real-time PCM streaming with ~97ms first-byte latency - Multiple output formats — WAV, MP3, FLAC, PCM Built on a 1.7B parameter architecture using discrete multi-codebook language modeling for end-to-end speech synthesis without cascading errors. Uses a custom 12Hz acoustic tokenizer that preserves paralinguistic information and environmental audio details.","context_length":null,"max_tokens":null,"pricing":{"input_characters":20.0},"tags":["tts"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/gemini-3.1-pro","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemini-3.1-pro","parent":null,"metadata":{"description":"Bring any idea to life with state-of-the-art reasoning to help you learn, build, and plan anything. Best for complex tasks and bringing creative concepts to life.","context_length":1000000,"max_tokens":1000000,"pricing":{"input_tokens":2.0,"output_tokens":11.999999999999998},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-Max","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-Max","parent":null,"metadata":{"description":"The latest flagship model in the Qwen family. State-of-the-art results across a comprehensive suite of benchmarks — including knowledge, reasoning, coding, instruction following, human preference alignment, agent tasks, and multilingual understanding.","context_length":256000,"max_tokens":256000,"pricing":{"input_tokens":1.2,"output_tokens":5.999999999999999,"cache_read_tokens":0.24},"tags":["chat","prompt_cache","reasoning_effort"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-ASR-0.6B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-ASR-0.6B","parent":null,"metadata":{"description":"Qwen3-ASR-0.6B is the compact model of the Qwen3-ASR family: multilingual language identification and speech recognition across 30 languages and 22 Chinese dialects, built on Qwen3-Omni. It targets an accuracy-efficiency trade-off with very high throughput, unified streaming/offline inference, and segment- and word-level timestamps.","context_length":null,"max_tokens":null,"pricing":{"input_seconds":3.3300000000000003e-06},"tags":["stt"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/embeddinggemma-300m","object":"model","created":0,"owned_by":"deepinfra","root":"google/embeddinggemma-300m","parent":null,"metadata":{"description":"EmbeddingGemma is a 300M parameter multilingual open embedding model from Google DeepMind, designed for efficient deployment even on low-resource devices, producing high-quality text vector representations for tasks such as search, classification, clustering, and semantic similarity.","context_length":2048,"max_tokens":2048,"pricing":{"input_tokens":0.0019999999999999996},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Gryphe/MythoMax-L2-13b","object":"model","created":0,"owned_by":"deepinfra","root":"Gryphe/MythoMax-L2-13b","parent":null,"metadata":{"description":"","context_length":4096,"max_tokens":4096,"pricing":{"input_tokens":0.4,"output_tokens":0.4},"tags":["chat"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","object":"model","created":0,"owned_by":"deepinfra","root":"meta-llama/Llama-3.3-70B-Instruct-Turbo","parent":null,"metadata":{"description":"Llama 3.3-70B Turbo is a highly optimized version of the Llama 3.3-70B model, utilizing FP8 quantization to deliver significantly faster inference speeds with a minor trade-off in accuracy. The model is designed to be helpful, safe, and flexible, with a focus on responsible deployment and mitigating potential risks such as bias, toxicity, and misinformation. It achieves state-of-the-art performance on various benchmarks, including conversational tasks, language translation, and text generation.","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.1,"output_tokens":0.32},"tags":["chat"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"PrunaAI/p-video","object":"model","created":0,"owned_by":"deepinfra","root":"PrunaAI/p-video","parent":null,"metadata":{"description":"Real-time AI video generation from text, images, and audio. Supports up to 1080p at 48 FPS with built-in audio generation, draft mode for 4x faster previews, and prompt upsampling.","context_length":null,"max_tokens":null,"pricing":{"output_seconds":0.02},"tags":["video-gen"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"intfloat/e5-large-v2","object":"model","created":0,"owned_by":"deepinfra","root":"intfloat/e5-large-v2","parent":null,"metadata":{"description":"Text Embeddings by Weakly-Supervised Contrastive Pre-training. Model has 24 layers and 1024 out dim.","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.01},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"black-forest-labs/FLUX-2-klein-9b","object":"model","created":0,"owned_by":"deepinfra","root":"black-forest-labs/FLUX-2-klein-9b","parent":null,"metadata":{"description":"The best quality-to-latency ratio, production apps model of the Flux 2 family. Frontier visual intelligence — state-of-the-art image generation and editing from Black Forest Labs","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.015},"tags":["image-gen"],"default_width":1024,"default_height":1024,"default_iterations":0}},{"id":"mistralai/Voxtral-Mini-3B-2507","object":"model","created":0,"owned_by":"deepinfra","root":"mistralai/Voxtral-Mini-3B-2507","parent":null,"metadata":{"description":"Voxtral Mini is an enhancement of Ministral 3B, incorporating state-of-the-art audio input capabilities while retaining best-in-class text performance. It excels at speech transcription, translation and audio understanding.","context_length":null,"max_tokens":null,"pricing":{"input_seconds":1.66667e-05},"tags":["stt"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"MiniMaxAI/MiniMax-M2.7","object":"model","created":0,"owned_by":"deepinfra","root":"MiniMaxAI/MiniMax-M2.7","parent":null,"metadata":{"description":"MiniMax-M2.7 is MiniMax's first model deeply participating in its own evolution. M2.7 is capable of building complex agent harnesses and completing highly elaborate productivity tasks, leveraging Agent Teams, complex Skills, and dynamic tool search.","context_length":196608,"max_tokens":196608,"pricing":{"input_tokens":0.25,"output_tokens":1.0,"cache_read_tokens":0.05},"tags":["chat","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"anthropic/claude-fable-5","object":"model","created":0,"owned_by":"deepinfra","root":"anthropic/claude-fable-5","parent":null,"metadata":{"description":"Claude Fable 5 is Anthropic's next generation of intelligence for the hardest knowledge work and coding problems. It works independently for longer than any prior generally available Claude model: run it in an agent harness and it can work for days at a time, planning across stages, delegating to sub-agents, and checking its own work.","context_length":1000000,"max_tokens":1000000,"pricing":{"input_tokens":10.0,"output_tokens":50.0},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Bria/blur_background","object":"model","created":0,"owned_by":"deepinfra","root":"Bria/blur_background","parent":null,"metadata":{"description":"Bria Blur Background softens and de-emphasizes image backgrounds while keeping the subject sharp and clear for professional-quality results. Trained fully on licensed data, it delivers safe, natural, and commercial-ready outputs.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.04},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"intfloat/e5-base-v2","object":"model","created":0,"owned_by":"deepinfra","root":"intfloat/e5-base-v2","parent":null,"metadata":{"description":"Text Embeddings by Weakly-Supervised Contrastive Pre-training. Model has 24 layers and 1024 out dim.","context_length":512,"max_tokens":512,"pricing":{"input_tokens":0.005},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3.5-35B-A3B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3.5-35B-A3B","parent":null,"metadata":{"description":"Qwen3.5-35B-A3B is an efficient Mixture-of-Experts model from Alibaba's Qwen3.5 series with 35B total parameters and only 3B activated per token. It features a 262K token context window (extensible to 1M with YaRN), thinking/reasoning mode, tool calling, and support for 201 languages. Delivers strong performance on reasoning, coding, and vision-language tasks at a fraction of the compute cost.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.14,"output_tokens":1.0,"cache_read_tokens":0.05000000040000001},"tags":["chat","vlm","vision","prompt_cache","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/gemini-3-pro-image","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemini-3-pro-image","parent":null,"metadata":{"description":"Nano Banana Pro (Gemini 3 Pro Image) is designed to tackle the most challenging image generation by incorporating state-of-the-art reasoning capabilities. It is the best model for complex and multi-turn image generation and editing.","context_length":null,"max_tokens":null,"pricing":{},"tags":["image-gen"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-Embedding-0.6B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-Embedding-0.6B","parent":null,"metadata":{"description":"The Qwen3 Embedding model series is the latest proprietary model of the Qwen family, specifically designed for text embedding and ranking tasks. Building upon the dense foundational models of the Qwen3 series, it provides a comprehensive range of text embeddings and reranking models in various sizes (0.6B, 4B, and 8B).","context_length":32768,"max_tokens":32768,"pricing":{"input_tokens":0.01},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"stabilityai/sdxl-turbo","object":"model","created":0,"owned_by":"deepinfra","root":"stabilityai/sdxl-turbo","parent":null,"metadata":{"description":"The SDXL Turbo model, developed by Stability AI, is an optimized, fast text-to-image generative model. It is a distilled version of SDXL 1.0, leveraging Adversarial Diffusion Distillation (ADD) to generate high-quality images in less steps.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.0002},"tags":["image-gen"],"default_width":1024,"default_height":1024,"default_iterations":5}},{"id":"Bria/Bria-3.2","object":"model","created":0,"owned_by":"deepinfra","root":"Bria/Bria-3.2","parent":null,"metadata":{"description":"Bria 3.2 is the next-generation commercial-ready text-to-image model. With just 4 billion parameters, it provides exceptional aesthetics and text rendering, evaluated to be on par to leading open-source models, and outperforming other licensed models.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.04},"tags":["image-gen"],"default_width":0,"default_height":0,"default_iterations":0}},{"id":"openai/gpt-oss-120b-Ultra","object":"model","created":0,"owned_by":"deepinfra","root":"openai/gpt-oss-120b-Ultra","parent":null,"metadata":{"description":"Ultra fast version of gpt-oss-120b","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.2,"output_tokens":0.95},"tags":["chat","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"MiniMaxAI/MiniMax-M3","object":"model","created":0,"owned_by":"deepinfra","root":"MiniMaxAI/MiniMax-M3","parent":null,"metadata":{"description":"MiniMax-M3 is a native multimodal model with 1M context. It has ~428B parameters and ~23B activated parameters.","context_length":524288,"max_tokens":524288,"pricing":{"input_tokens":0.3,"output_tokens":1.2,"cache_read_tokens":0.06},"tags":["chat","vlm","vision","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"XiaomiMiMo/MiMo-V2.5","object":"model","created":0,"owned_by":"deepinfra","root":"XiaomiMiMo/MiMo-V2.5","parent":null,"metadata":{"description":"MiMo-V2.5 is a native omnimodal model with strong agentic capabilities, supporting text, image, video, and audio understanding within a unified architecture. Built upon the MiMo-V2-Flash backbone and extended with dedicated vision and audio encoders, it delivers robust performance across multimodal perception, long-context reasoning, and agentic workflows.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.4,"output_tokens":2.0,"cache_read_tokens":0.08000000000000002},"tags":["chat","vlm","vision","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"openai/whisper-large-v3","object":"model","created":0,"owned_by":"deepinfra","root":"openai/whisper-large-v3","parent":null,"metadata":{"description":"Whisper is a general-purpose speech recognition model. It is trained on a large dataset of diverse audio and is also a multi-task model that can perform multilingual speech recognition as well as speech translation and language identification.","context_length":null,"max_tokens":null,"pricing":{"input_seconds":7.5e-06},"tags":["stt"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"deepseek-ai/DeepSeek-V4-Pro","object":"model","created":0,"owned_by":"deepinfra","root":"deepseek-ai/DeepSeek-V4-Pro","parent":null,"metadata":{"description":"DeepSeek V4 Pro is an MoE model with 1.6T total parameters (49B active) and a 1M-token context window. It's built for advanced reasoning, coding, and long-running agent tasks, and performs well on knowledge, math, and software engineering benchmarks.","context_length":1048576,"max_tokens":1048576,"pricing":{"input_tokens":1.2999999999999998,"output_tokens":2.5999999999999996,"cache_read_tokens":0.10000000399999999},"tags":["chat","prompt_cache"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"ResembleAI/chatterbox-multilingual","object":"model","created":0,"owned_by":"deepinfra","root":"ResembleAI/chatterbox-multilingual","parent":null,"metadata":{"description":"09/04 🔥 Introducing Chatterbox Multilingual in 23 Languages! We're excited to introduce Chatterbox and Chatterbox Multilingual, Resemble AI's production-grade open source TTS models. Chatterbox Multilingual supports Arabic, Danish, German, Greek, English, Spanish, Finnish, French, Hebrew, Hindi, Italian, Japanese, Korean, Malay, Dutch, Norwegian, Polish, Portuguese, Russian, Swedish, Swahili, Turkish, Chinese out of the box. Licensed under MIT, Chatterbox has been benchmarked against leading closed-source systems like ElevenLabs, and is consistently preferred in side-by-side evaluations.","context_length":null,"max_tokens":null,"pricing":{"input_characters":1.0},"tags":["tts"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3-Embedding-4B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3-Embedding-4B","parent":null,"metadata":{"description":"The Qwen3 Embedding model series is the latest proprietary model of the Qwen family, specifically designed for text embedding and ranking tasks. Building upon the dense foundational models of the Qwen3 series, it provides a comprehensive range of text embeddings and reranking models in various sizes (0.6B, 4B, and 8B).","context_length":32768,"max_tokens":32768,"pricing":{"input_tokens":0.02},"tags":["embed"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3.7-Max","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3.7-Max","parent":null,"metadata":{"description":"The largest and most capable in the Qwen3.7 series. Qwen3.7 is a next‑generation flagship model designed for the agent‑centric.","context_length":256000,"max_tokens":256000,"pricing":{"input_tokens":2.5,"output_tokens":7.5,"cache_read_tokens":0.5},"tags":["chat","prompt_cache","reasoning_effort"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"mistralai/Voxtral-Small-24B-2507","object":"model","created":0,"owned_by":"deepinfra","root":"mistralai/Voxtral-Small-24B-2507","parent":null,"metadata":{"description":"Voxtral Small is an enhancement of Mistral Small 3, incorporating state-of-the-art audio input capabilities while retaining best-in-class text performance. It excels at speech transcription, translation and audio understanding.","context_length":null,"max_tokens":null,"pricing":{"input_seconds":5e-05},"tags":["stt"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"black-forest-labs/FLUX.1-Kontext-dev","object":"model","created":0,"owned_by":"deepinfra","root":"black-forest-labs/FLUX.1-Kontext-dev","parent":null,"metadata":{"description":"FLUX.1 Kontext [dev] is a 12-billion-parameter image editing model that transforms visuals based on natural language instructions. It allows highly consistent, multi-step edits and is released with open weights under a non-commercial license to empower artists and researchers.","context_length":null,"max_tokens":null,"pricing":{"per_image_unit":0.01},"tags":["image-gen"],"default_width":1024,"default_height":1024,"default_iterations":25}},{"id":"zai-org/GLM-4.7-Flash","object":"model","created":0,"owned_by":"deepinfra","root":"zai-org/GLM-4.7-Flash","parent":null,"metadata":{"description":"GLM-4.7-Flash is a 30B-A3B MoE model. As the strongest model in the 30B class, GLM-4.7-Flash offers a new option for lightweight deployment that balances performance and efficiency.","context_length":202752,"max_tokens":202752,"pricing":{"input_tokens":0.060000000000000005,"output_tokens":0.4,"cache_read_tokens":0.0100000002},"tags":["chat","prompt_cache","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/veo-3.1","object":"model","created":0,"owned_by":"deepinfra","root":"google/veo-3.1","parent":null,"metadata":{"description":"Veo 3.1 is the latest text-to-video model from Google that generates high-fidelity, cinematic videos with synchronized audio from a simple text prompt. It excels at creating realistic and imaginative scenes with a deep understanding of natural language and visual dynamics.","context_length":null,"max_tokens":null,"pricing":{"output_seconds":0.4},"tags":["video-gen"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"mistralai/Mistral-Small-24B-Instruct-2501","object":"model","created":0,"owned_by":"deepinfra","root":"mistralai/Mistral-Small-24B-Instruct-2501","parent":null,"metadata":{"description":"Mistral Small 3 is a 24B-parameter language model optimized for low-latency performance across common AI tasks. Released under the Apache 2.0 license, it features both pre-trained and instruction-tuned versions designed for efficient local deployment. The model achieves 81% accuracy on the MMLU benchmark and performs competitively with larger models like Llama 3.3 70B and Qwen 32B, while operating at three times the speed on equivalent hardware.","context_length":32768,"max_tokens":32768,"pricing":{"input_tokens":0.05,"output_tokens":0.08},"tags":["chat"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/gemma-4-31B-it-Ultra","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemma-4-31B-it-Ultra","parent":null,"metadata":{"description":"Ultra speed version of gemma-4-31B-it","context_length":131072,"max_tokens":131072,"pricing":{"input_tokens":0.27,"output_tokens":0.76},"tags":["chat","vlm","vision","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"google/gemini-3.1-flash-lite","object":"model","created":0,"owned_by":"deepinfra","root":"google/gemini-3.1-flash-lite","parent":null,"metadata":{"description":"Bring any idea to life with state-of-the-art reasoning to help you learn, build, and plan anything. Best for high-volume tasks that need efficiency and intelligence.","context_length":1000000,"max_tokens":1000000,"pricing":{"input_tokens":0.25,"output_tokens":1.4999999999999998},"tags":["chat","vlm","vision","reasoning_effort","reasoning"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"bosonai/HiggsAudioV2.5","object":"model","created":0,"owned_by":"deepinfra","root":"bosonai/HiggsAudioV2.5","parent":null,"metadata":{"description":"HiggsAudioV2.5 is a high-quality neural text-to-speech (TTS) model designed for natural-sounding voice generation across a wide range of use cases. It focuses on clarity, stable prosody, and consistent pacing, making it suitable for both short prompts and longer narration.","context_length":null,"max_tokens":null,"pricing":{"input_characters":20.0},"tags":["tts"],"default_width":null,"default_height":null,"default_iterations":null}},{"id":"Qwen/Qwen3.5-9B","object":"model","created":0,"owned_by":"deepinfra","root":"Qwen/Qwen3.5-9B","parent":null,"metadata":{"description":"Qwen3.5-9B is a high-performance model from Alibaba's Qwen3.5 series with a hybrid Gated Delta Networks and sparse MoE architecture. It features a 262K token context window, thinking/reasoning mode, tool calling, multi-token prediction, and support for 201 languages. Excels at reasoning, coding, instruction following, and long-context tasks.","context_length":262144,"max_tokens":262144,"pricing":{"input_tokens":0.1,"output_tokens":0.15},"tags":["chat","vlm","vision","reasoning_effort"],"default_width":null,"default_height":null,"default_iterations":null}}]}
\ No newline at end of file
added docs/research/probes/deepseek.json +1 −0
@@ -0,0 +1 @@
1 +{"object":"list","data":[{"id":"deepseek-v4-flash","object":"model","owned_by":"deepseek"},{"id":"deepseek-v4-pro","object":"model","owned_by":"deepseek"}]}
\ No newline at end of file
added docs/research/probes/gemini.json +939 −0
@@ -0,0 +1,939 @@
1 +{
2 + "models": [
3 + {
4 + "name": "models/gemini-2.5-flash",
5 + "version": "001",
6 + "displayName": "Gemini 2.5 Flash",
7 + "description": "Stable version of Gemini 2.5 Flash, our mid-size multimodal model that supports up to 1 million tokens, released in June of 2025.",
8 + "inputTokenLimit": 1048576,
9 + "outputTokenLimit": 65536,
10 + "supportedGenerationMethods": [
11 + "generateContent",
12 + "countTokens",
13 + "createCachedContent",
14 + "batchGenerateContent"
15 + ],
16 + "temperature": 1,
17 + "topP": 0.95,
18 + "topK": 64,
19 + "maxTemperature": 2,
20 + "thinking": true
21 + },
22 + {
23 + "name": "models/gemini-2.5-pro",
24 + "version": "2.5",
25 + "displayName": "Gemini 2.5 Pro",
26 + "description": "Stable release (June 17th, 2025) of Gemini 2.5 Pro",
27 + "inputTokenLimit": 1048576,
28 + "outputTokenLimit": 65536,
29 + "supportedGenerationMethods": [
30 + "generateContent",
31 + "countTokens",
32 + "createCachedContent",
33 + "batchGenerateContent"
34 + ],
35 + "temperature": 1,
36 + "topP": 0.95,
37 + "topK": 64,
38 + "maxTemperature": 2,
39 + "thinking": true
40 + },
41 + {
42 + "name": "models/gemini-2.0-flash",
43 + "version": "2.0",
44 + "displayName": "Gemini 2.0 Flash",
45 + "description": "Gemini 2.0 Flash",
46 + "inputTokenLimit": 1048576,
47 + "outputTokenLimit": 8192,
48 + "supportedGenerationMethods": [
49 + "generateContent",
50 + "countTokens",
51 + "createCachedContent",
52 + "batchGenerateContent"
53 + ],
54 + "temperature": 1,
55 + "topP": 0.95,
56 + "topK": 40,
57 + "maxTemperature": 2
58 + },
59 + {
60 + "name": "models/gemini-2.0-flash-001",
61 + "version": "2.0",
62 + "displayName": "Gemini 2.0 Flash 001",
63 + "description": "Stable version of Gemini 2.0 Flash, our fast and versatile multimodal model for scaling across diverse tasks, released in January of 2025.",
64 + "inputTokenLimit": 1048576,
65 + "outputTokenLimit": 8192,
66 + "supportedGenerationMethods": [
67 + "generateContent",
68 + "countTokens",
69 + "createCachedContent",
70 + "batchGenerateContent"
71 + ],
72 + "temperature": 1,
73 + "topP": 0.95,
74 + "topK": 40,
75 + "maxTemperature": 2
76 + },
77 + {
78 + "name": "models/gemini-2.0-flash-lite-001",
79 + "version": "2.0",
80 + "displayName": "Gemini 2.0 Flash-Lite 001",
81 + "description": "Stable version of Gemini 2.0 Flash-Lite",
82 + "inputTokenLimit": 1048576,
83 + "outputTokenLimit": 8192,
84 + "supportedGenerationMethods": [
85 + "generateContent",
86 + "countTokens",
87 + "createCachedContent",
88 + "batchGenerateContent"
89 + ],
90 + "temperature": 1,
91 + "topP": 0.95,
92 + "topK": 40,
93 + "maxTemperature": 2
94 + },
95 + {
96 + "name": "models/gemini-2.0-flash-lite",
97 + "version": "2.0",
98 + "displayName": "Gemini 2.0 Flash-Lite",
99 + "description": "Gemini 2.0 Flash-Lite",
100 + "inputTokenLimit": 1048576,
101 + "outputTokenLimit": 8192,
102 + "supportedGenerationMethods": [
103 + "generateContent",
104 + "countTokens",
105 + "createCachedContent",
106 + "batchGenerateContent"
107 + ],
108 + "temperature": 1,
109 + "topP": 0.95,
110 + "topK": 40,
111 + "maxTemperature": 2
112 + },
113 + {
114 + "name": "models/gemini-2.5-flash-preview-tts",
115 + "version": "gemini-2.5-flash-exp-tts-2025-05-19",
116 + "displayName": "Gemini 2.5 Flash Preview TTS",
117 + "description": "Gemini 2.5 Flash Preview TTS",
118 + "inputTokenLimit": 8192,
119 + "outputTokenLimit": 16384,
120 + "supportedGenerationMethods": [
121 + "countTokens",
122 + "generateContent"
123 + ],
124 + "temperature": 1,
125 + "topP": 0.95,
126 + "topK": 64,
127 + "maxTemperature": 2
128 + },
129 + {
130 + "name": "models/gemini-2.5-pro-preview-tts",
131 + "version": "gemini-2.5-pro-preview-tts-2025-05-19",
132 + "displayName": "Gemini 2.5 Pro Preview TTS",
133 + "description": "Gemini 2.5 Pro Preview TTS",
134 + "inputTokenLimit": 8192,
135 + "outputTokenLimit": 16384,
136 + "supportedGenerationMethods": [
137 + "countTokens",
138 + "generateContent",
139 + "batchGenerateContent"
140 + ],
141 + "temperature": 1,
142 + "topP": 0.95,
143 + "topK": 64,
144 + "maxTemperature": 2
145 + },
146 + {
147 + "name": "models/gemma-4-26b-a4b-it",
148 + "version": "001",
149 + "displayName": "Gemma 4 26B A4B IT",
150 + "description": "Gemma 4 26B A4B IT",
151 + "inputTokenLimit": 262144,
152 + "outputTokenLimit": 32768,
153 + "supportedGenerationMethods": [
154 + "generateContent",
155 + "countTokens"
156 + ],
157 + "temperature": 1,
158 + "topP": 0.95,
159 + "topK": 64,
160 + "maxTemperature": 2,
161 + "thinking": true
162 + },
163 + {
164 + "name": "models/gemma-4-31b-it",
165 + "version": "001",
166 + "displayName": "Gemma 4 31B IT",
167 + "description": "Gemma 4 31B IT",
168 + "inputTokenLimit": 262144,
169 + "outputTokenLimit": 32768,
170 + "supportedGenerationMethods": [
171 + "generateContent",
172 + "countTokens"
173 + ],
174 + "temperature": 1,
175 + "topP": 0.95,
176 + "topK": 64,
177 + "maxTemperature": 2,
178 + "thinking": true
179 + },
180 + {
181 + "name": "models/gemini-flash-latest",
182 + "version": "Gemini Flash Latest",
183 + "displayName": "Gemini Flash Latest",
184 + "description": "Latest release of Gemini Flash",
185 + "inputTokenLimit": 1048576,
186 + "outputTokenLimit": 65536,
187 + "supportedGenerationMethods": [
188 + "generateContent",
189 + "countTokens",
190 + "createCachedContent",
191 + "batchGenerateContent"
192 + ],
193 + "temperature": 1,
194 + "topP": 0.95,
195 + "topK": 64,
196 + "maxTemperature": 2,
197 + "thinking": true
198 + },
199 + {
200 + "name": "models/gemini-flash-lite-latest",
201 + "version": "Gemini Flash-Lite Latest",
202 + "displayName": "Gemini Flash-Lite Latest",
203 + "description": "Latest release of Gemini Flash-Lite",
204 + "inputTokenLimit": 1048576,
205 + "outputTokenLimit": 65536,
206 + "supportedGenerationMethods": [
207 + "generateContent",
208 + "countTokens",
209 + "createCachedContent",
210 + "batchGenerateContent"
211 + ],
212 + "temperature": 1,
213 + "topP": 0.95,
214 + "topK": 64,
215 + "maxTemperature": 2,
216 + "thinking": true
217 + },
218 + {
219 + "name": "models/gemini-pro-latest",
220 + "version": "Gemini Pro Latest",
221 + "displayName": "Gemini Pro Latest",
222 + "description": "Latest release of Gemini Pro",
223 + "inputTokenLimit": 1048576,
224 + "outputTokenLimit": 65536,
225 + "supportedGenerationMethods": [
226 + "generateContent",
227 + "countTokens",
228 + "createCachedContent",
229 + "batchGenerateContent"
230 + ],
231 + "temperature": 1,
232 + "topP": 0.95,
233 + "topK": 64,
234 + "maxTemperature": 2,
235 + "thinking": true
236 + },
237 + {
238 + "name": "models/gemini-2.5-flash-lite",
239 + "version": "001",
240 + "displayName": "Gemini 2.5 Flash-Lite",
241 + "description": "Stable version of Gemini 2.5 Flash-Lite, released in July of 2025",
242 + "inputTokenLimit": 1048576,
243 + "outputTokenLimit": 65536,
244 + "supportedGenerationMethods": [
245 + "generateContent",
246 + "countTokens",
247 + "createCachedContent",
248 + "batchGenerateContent"
249 + ],
250 + "temperature": 1,
251 + "topP": 0.95,
252 + "topK": 64,
253 + "maxTemperature": 2,
254 + "thinking": true
255 + },
256 + {
257 + "name": "models/gemini-2.5-flash-image",
258 + "version": "2.0",
259 + "displayName": "Nano Banana",
260 + "description": "Gemini 2.5 Flash Preview Image",
261 + "inputTokenLimit": 32768,
262 + "outputTokenLimit": 32768,
263 + "supportedGenerationMethods": [
264 + "generateContent",
265 + "countTokens",
266 + "batchGenerateContent"
267 + ],
268 + "temperature": 1,
269 + "topP": 0.95,
270 + "topK": 64,
271 + "maxTemperature": 1
272 + },
273 + {
274 + "name": "models/gemini-3-pro-preview",
275 + "version": "3-pro-preview-11-2025",
276 + "displayName": "Gemini 3 Pro Preview",
277 + "description": "Gemini 3 Pro Preview",
278 + "inputTokenLimit": 1048576,
279 + "outputTokenLimit": 65536,
280 + "supportedGenerationMethods": [
281 + "generateContent",
282 + "countTokens",
283 + "createCachedContent",
284 + "batchGenerateContent"
285 + ],
286 + "temperature": 1,
287 + "topP": 0.95,
288 + "topK": 64,
289 + "maxTemperature": 2,
290 + "thinking": true
291 + },
292 + {
293 + "name": "models/gemini-3-flash-preview",
294 + "version": "3-flash-preview-12-2025",
295 + "displayName": "Gemini 3 Flash Preview",
296 + "description": "Gemini 3 Flash Preview",
297 + "inputTokenLimit": 1048576,
298 + "outputTokenLimit": 65536,
299 + "supportedGenerationMethods": [
300 + "generateContent",
301 + "countTokens",
302 + "createCachedContent",
303 + "batchGenerateContent"
304 + ],
305 + "temperature": 1,
306 + "topP": 0.95,
307 + "topK": 64,
308 + "maxTemperature": 2,
309 + "thinking": true
310 + },
311 + {
312 + "name": "models/gemini-3.1-pro-preview",
313 + "version": "3.1-pro-preview-01-2026",
314 + "displayName": "Gemini 3.1 Pro Preview",
315 + "description": "Gemini 3.1 Pro Preview",
316 + "inputTokenLimit": 1048576,
317 + "outputTokenLimit": 65536,
318 + "supportedGenerationMethods": [
319 + "generateContent",
320 + "countTokens",
321 + "createCachedContent",
322 + "batchGenerateContent"
323 + ],
324 + "temperature": 1,
325 + "topP": 0.95,
326 + "topK": 64,
327 + "maxTemperature": 2,
328 + "thinking": true
329 + },
330 + {
331 + "name": "models/gemini-3.1-pro-preview-customtools",
332 + "version": "3.1-pro-preview-01-2026",
333 + "displayName": "Gemini 3.1 Pro Preview Custom Tools",
334 + "description": "Gemini 3.1 Pro Preview optimized for custom tool usage",
335 + "inputTokenLimit": 1048576,
336 + "outputTokenLimit": 65536,
337 + "supportedGenerationMethods": [
338 + "generateContent",
339 + "countTokens",
340 + "createCachedContent",
341 + "batchGenerateContent"
342 + ],
343 + "temperature": 1,
344 + "topP": 0.95,
345 + "topK": 64,
346 + "maxTemperature": 2,
347 + "thinking": true
348 + },
349 + {
350 + "name": "models/gemini-3.1-flash-lite-preview",
351 + "version": "3.1-flash-lite-preview-03-2026",
352 + "displayName": "Gemini 3.1 Flash Lite Preview",
353 + "description": "Gemini 3.1 Flash Lite Preview",
354 + "inputTokenLimit": 1048576,
355 + "outputTokenLimit": 65536,
356 + "supportedGenerationMethods": [
357 + "generateContent",
358 + "countTokens",
359 + "createCachedContent",
360 + "batchGenerateContent"
361 + ],
362 + "temperature": 1,
363 + "topP": 0.95,
364 + "topK": 64,
365 + "maxTemperature": 2,
366 + "thinking": true
367 + },
368 + {
369 + "name": "models/gemini-3.1-flash-lite",
370 + "version": "3.1-flash-lite-05-2026",
371 + "displayName": "Gemini 3.1 Flash Lite",
372 + "description": "Gemini 3.1 Flash Lite",
373 + "inputTokenLimit": 1048576,
374 + "outputTokenLimit": 65536,
375 + "supportedGenerationMethods": [
376 + "generateContent",
377 + "countTokens",
378 + "createCachedContent",
379 + "batchGenerateContent"
380 + ],
381 + "temperature": 1,
382 + "topP": 0.95,
383 + "topK": 64,
384 + "maxTemperature": 2,
385 + "thinking": true
386 + },
387 + {
388 + "name": "models/gemini-3-pro-image-preview",
389 + "version": "3.0",
390 + "displayName": "Nano Banana Pro",
391 + "description": "Gemini 3 Pro Image Preview",
392 + "inputTokenLimit": 131072,
393 + "outputTokenLimit": 32768,
394 + "supportedGenerationMethods": [
395 + "generateContent",
396 + "countTokens",
397 + "batchGenerateContent"
398 + ],
399 + "temperature": 1,
400 + "topP": 0.95,
401 + "topK": 64,
402 + "maxTemperature": 1,
403 + "thinking": true
404 + },
405 + {
406 + "name": "models/gemini-3-pro-image",
407 + "version": "3.0",
408 + "displayName": "Nano Banana Pro",
409 + "description": "Gemini 3 Pro Image",
410 + "inputTokenLimit": 131072,
411 + "outputTokenLimit": 32768,
412 + "supportedGenerationMethods": [
413 + "generateContent",
414 + "countTokens",
415 + "batchGenerateContent"
416 + ],
417 + "temperature": 1,
418 + "topP": 0.95,
419 + "topK": 64,
420 + "maxTemperature": 1,
421 + "thinking": true
422 + },
423 + {
424 + "name": "models/nano-banana-pro-preview",
425 + "version": "3.0",
426 + "displayName": "Nano Banana Pro",
427 + "description": "Gemini 3 Pro Image Preview",
428 + "inputTokenLimit": 131072,
429 + "outputTokenLimit": 32768,
430 + "supportedGenerationMethods": [
431 + "generateContent",
432 + "countTokens",
433 + "batchGenerateContent"
434 + ],
435 + "temperature": 1,
436 + "topP": 0.95,
437 + "topK": 64,
438 + "maxTemperature": 1,
439 + "thinking": true
440 + },
441 + {
442 + "name": "models/gemini-3.1-flash-image-preview",
443 + "version": "3.0",
444 + "displayName": "Nano Banana 2",
445 + "description": "Gemini 3.1 Flash Image Preview.",
446 + "inputTokenLimit": 65536,
447 + "outputTokenLimit": 65536,
448 + "supportedGenerationMethods": [
449 + "generateContent",
450 + "countTokens",
451 + "batchGenerateContent"
452 + ],
453 + "temperature": 1,
454 + "topP": 0.95,
455 + "topK": 64,
456 + "maxTemperature": 1,
457 + "thinking": true
458 + },
459 + {
460 + "name": "models/gemini-3.1-flash-image",
461 + "version": "3.0",
462 + "displayName": "Nano Banana 2",
463 + "description": "Gemini 3.1 Flash Image.",
464 + "inputTokenLimit": 65536,
465 + "outputTokenLimit": 65536,
466 + "supportedGenerationMethods": [
467 + "generateContent",
468 + "countTokens",
469 + "batchGenerateContent"
470 + ],
471 + "temperature": 1,
472 + "topP": 0.95,
473 + "topK": 64,
474 + "maxTemperature": 1,
475 + "thinking": true
476 + },
477 + {
478 + "name": "models/gemini-3.1-flash-lite-image",
479 + "version": "3.0",
480 + "displayName": "Nano Banana 2 Lite",
481 + "description": "Gemini 3.1 Flash Lite Image.",
482 + "inputTokenLimit": 65536,
483 + "outputTokenLimit": 65536,
484 + "supportedGenerationMethods": [
485 + "generateContent",
486 + "countTokens",
487 + "batchGenerateContent"
488 + ],
489 + "temperature": 1,
490 + "topP": 0.95,
491 + "topK": 64,
492 + "maxTemperature": 1,
493 + "thinking": true
494 + },
495 + {
496 + "name": "models/gemini-3.5-flash",
497 + "version": "3.5-flash-05-2026",
498 + "displayName": "Gemini 3.5 Flash",
499 + "description": "Gemini 3.5 Flash",
500 + "inputTokenLimit": 1048576,
501 + "outputTokenLimit": 65536,
502 + "supportedGenerationMethods": [
503 + "generateContent",
504 + "countTokens",
505 + "createCachedContent",
506 + "batchGenerateContent"
507 + ],
508 + "temperature": 1,
509 + "topP": 0.95,
510 + "topK": 64,
511 + "maxTemperature": 2,
512 + "thinking": true
513 + },
514 + {
515 + "name": "models/gemini-3.5-flash-lite",
516 + "version": "3.5-flash-lite-07-2026",
517 + "displayName": "Gemini 3.5 Flash Lite",
518 + "description": "Gemini 3.5 Flash Lite",
519 + "inputTokenLimit": 1048576,
520 + "outputTokenLimit": 65536,
521 + "supportedGenerationMethods": [
522 + "generateContent",
523 + "countTokens",
524 + "createCachedContent",
525 + "batchGenerateContent"
526 + ],
527 + "temperature": 1,
528 + "topP": 0.95,
529 + "topK": 64,
530 + "maxTemperature": 2,
531 + "thinking": true
532 + },
533 + {
534 + "name": "models/gemini-omni-flash-preview",
535 + "version": "001",
536 + "displayName": "Gemini Omni Flash Preview",
537 + "description": "Gemini Omni Flash Preview",
538 + "inputTokenLimit": 131072,
539 + "outputTokenLimit": 65536,
540 + "supportedGenerationMethods": [
541 + "generateContent",
542 + "countTokens"
543 + ],
544 + "temperature": 1,
545 + "topP": 0.95,
546 + "topK": 64,
547 + "maxTemperature": 2,
548 + "thinking": true
549 + },
550 + {
551 + "name": "models/gemini-3.6-flash",
552 + "version": "3.6-flash-07-2026",
553 + "displayName": "Gemini 3.6 Flash",
554 + "description": "Gemini 3.6 Flash",
555 + "inputTokenLimit": 1048576,
556 + "outputTokenLimit": 65536,
557 + "supportedGenerationMethods": [
558 + "generateContent",
559 + "countTokens",
560 + "createCachedContent",
561 + "batchGenerateContent"
562 + ],
563 + "temperature": 1,
564 + "topP": 0.95,
565 + "topK": 64,
566 + "maxTemperature": 2,
567 + "thinking": true
568 + },
569 + {
570 + "name": "models/lyria-3-clip-preview",
571 + "version": "lyria-3-clip-preview",
572 + "displayName": "Lyria 3 Clip Preview",
573 + "description": "Lyria 3 30s model Preview",
574 + "inputTokenLimit": 1048576,
575 + "outputTokenLimit": 65536,
576 + "supportedGenerationMethods": [
577 + "generateContent",
578 + "countTokens"
579 + ],
580 + "temperature": 1,
581 + "topP": 0.95,
582 + "topK": 64,
583 + "maxTemperature": 2
584 + },
585 + {
586 + "name": "models/lyria-3-pro-preview",
587 + "version": "lyria-3-pro-preview",
588 + "displayName": "Lyria 3 Pro Preview",
589 + "description": "Lyria 3 Pro Preview",
590 + "inputTokenLimit": 1048576,
591 + "outputTokenLimit": 65536,
592 + "supportedGenerationMethods": [
593 + "generateContent",
594 + "countTokens"
595 + ],
596 + "temperature": 1,
597 + "topP": 0.95,
598 + "topK": 64,
599 + "maxTemperature": 2
600 + },
601 + {
602 + "name": "models/gemini-3.1-flash-tts-preview",
603 + "version": "3.1-flash-tts-preview",
604 + "displayName": "Gemini 3.1 Flash TTS Preview",
605 + "description": "Gemini 3.1 Flash TTS Preview",
606 + "inputTokenLimit": 8192,
607 + "outputTokenLimit": 16384,
608 + "supportedGenerationMethods": [
609 + "generateContent",
610 + "countTokens",
611 + "batchGenerateContent"
612 + ],
613 + "temperature": 1,
614 + "topP": 0.95,
615 + "topK": 64,
616 + "maxTemperature": 2,
617 + "thinking": true
618 + },
619 + {
620 + "name": "models/gemini-robotics-er-1.5-preview",
621 + "version": "1.5-preview",
622 + "displayName": "Gemini Robotics-ER 1.5 Preview",
623 + "description": "Gemini Robotics-ER 1.5 Preview",
624 + "inputTokenLimit": 1048576,
625 + "outputTokenLimit": 65536,
626 + "supportedGenerationMethods": [
627 + "generateContent",
628 + "countTokens"
629 + ],
630 + "temperature": 1,
631 + "topP": 0.95,
632 + "topK": 64,
633 + "maxTemperature": 2,
634 + "thinking": true
635 + },
636 + {
637 + "name": "models/gemini-robotics-er-1.6-preview",
638 + "version": "1.6-preview",
639 + "displayName": "Gemini Robotics-ER 1.6 Preview",
640 + "description": "Gemini Robotics-ER 1.6 Preview",
641 + "inputTokenLimit": 131072,
642 + "outputTokenLimit": 65536,
643 + "supportedGenerationMethods": [
644 + "generateContent",
645 + "countTokens",
646 + "createCachedContent",
647 + "batchGenerateContent"
648 + ],
649 + "temperature": 1,
650 + "topP": 0.95,
651 + "topK": 64,
652 + "maxTemperature": 2,
653 + "thinking": true
654 + },
655 + {
656 + "name": "models/gemini-2.5-computer-use-preview-10-2025",
657 + "version": "Gemini 2.5 Computer Use Preview 10-2025",
658 + "displayName": "Gemini 2.5 Computer Use Preview 10-2025",
659 + "description": "Gemini 2.5 Computer Use Preview 10-2025",
660 + "inputTokenLimit": 131072,
661 + "outputTokenLimit": 65536,
662 + "supportedGenerationMethods": [
663 + "generateContent",
664 + "countTokens"
665 + ],
666 + "temperature": 1,
667 + "topP": 0.95,
668 + "topK": 64,
669 + "maxTemperature": 2,
670 + "thinking": true
671 + },
672 + {
673 + "name": "models/antigravity-preview-05-2026",
674 + "version": "0.1",
675 + "displayName": "Antigravity Agent Preview",
676 + "description": "Preview release of Antigravity Agent (05-2026)",
677 + "inputTokenLimit": 131072,
678 + "outputTokenLimit": 65536,
679 + "supportedGenerationMethods": [
680 + "generateContent",
681 + "countTokens"
682 + ]
683 + },
684 + {
685 + "name": "models/deep-research-max-preview-04-2026",
686 + "version": "deepthink-exp-05-20",
687 + "displayName": "Deep Research Max Preview (Apr-21-2026)",
688 + "description": "Preview release (April 21st, 2026) of Deep Research Max",
689 + "inputTokenLimit": 131072,
690 + "outputTokenLimit": 65536,
691 + "supportedGenerationMethods": [
692 + "generateContent",
693 + "countTokens"
694 + ],
695 + "temperature": 1,
696 + "topP": 0.95,
697 + "topK": 64,
698 + "maxTemperature": 2,
699 + "thinking": true
700 + },
701 + {
702 + "name": "models/deep-research-preview-04-2026",
703 + "version": "deepthink-exp-05-20",
704 + "displayName": "Deep Research Preview (Apr-21-2026)",
705 + "description": "Preview release (April 21th, 2026) of Deep Research",
706 + "inputTokenLimit": 131072,
707 + "outputTokenLimit": 65536,
708 + "supportedGenerationMethods": [
709 + "generateContent",
710 + "countTokens"
711 + ],
712 + "temperature": 1,
713 + "topP": 0.95,
714 + "topK": 64,
715 + "maxTemperature": 2,
716 + "thinking": true
717 + },
718 + {
719 + "name": "models/deep-research-pro-preview-12-2025",
720 + "version": "deepthink-exp-05-20",
721 + "displayName": "Deep Research Pro Preview (Dec-12-2025)",
722 + "description": "Preview release (December 12th, 2025) of Deep Research Pro",
723 + "inputTokenLimit": 131072,
724 + "outputTokenLimit": 65536,
725 + "supportedGenerationMethods": [
726 + "generateContent",
727 + "countTokens"
728 + ],
729 + "temperature": 1,
730 + "topP": 0.95,
731 + "topK": 64,
732 + "maxTemperature": 2,
733 + "thinking": true
734 + },
735 + {
736 + "name": "models/gemini-embedding-001",
737 + "version": "001",
738 + "displayName": "Gemini Embedding 001",
739 + "description": "Obtain a distributed representation of a text.",
740 + "inputTokenLimit": 2048,
741 + "outputTokenLimit": 1,
742 + "supportedGenerationMethods": [
743 + "embedContent",
744 + "countTextTokens",
745 + "countTokens",
746 + "asyncBatchEmbedContent"
747 + ]
748 + },
749 + {
750 + "name": "models/gemini-embedding-2-preview",
751 + "version": "2",
752 + "displayName": "Gemini Embedding 2 Preview",
753 + "description": "Obtain a distributed representation of multimodal content.",
754 + "inputTokenLimit": 8192,
755 + "outputTokenLimit": 1,
756 + "supportedGenerationMethods": [
757 + "embedContent",
758 + "countTextTokens",
759 + "countTokens",
760 + "asyncBatchEmbedContent"
761 + ]
762 + },
763 + {
764 + "name": "models/gemini-embedding-2",
765 + "version": "2",
766 + "displayName": "Gemini Embedding 2",
767 + "description": "Obtain a distributed representation of multimodal content.",
768 + "inputTokenLimit": 8192,
769 + "outputTokenLimit": 1,
770 + "supportedGenerationMethods": [
771 + "embedContent",
772 + "countTextTokens",
773 + "countTokens",
774 + "asyncBatchEmbedContent"
775 + ]
776 + },
777 + {
778 + "name": "models/aqa",
779 + "version": "001",
780 + "displayName": "Model that performs Attributed Question Answering.",
781 + "description": "Model trained to return answers to questions that are grounded in provided sources, along with estimating answerable probability.",
782 + "inputTokenLimit": 7168,
783 + "outputTokenLimit": 1024,
784 + "supportedGenerationMethods": [
785 + "generateAnswer"
786 + ],
787 + "temperature": 0.2,
788 + "topP": 1,
789 + "topK": 40
790 + },
791 + {
792 + "name": "models/imagen-4.0-generate-001",
793 + "version": "001",
794 + "displayName": "Imagen 4",
795 + "description": "Vertex served Imagen 4.0 model",
796 + "inputTokenLimit": 480,
797 + "outputTokenLimit": 8192,
798 + "supportedGenerationMethods": [
799 + "predict"
800 + ]
801 + },
802 + {
803 + "name": "models/imagen-4.0-ultra-generate-001",
804 + "version": "001",
805 + "displayName": "Imagen 4 Ultra",
806 + "description": "Vertex served Imagen 4.0 ultra model",
807 + "inputTokenLimit": 480,
808 + "outputTokenLimit": 8192,
809 + "supportedGenerationMethods": [
810 + "predict"
811 + ]
812 + },
813 + {
814 + "name": "models/imagen-4.0-fast-generate-001",
815 + "version": "001",
816 + "displayName": "Imagen 4 Fast",
817 + "description": "Vertex served Imagen 4.0 Fast model",
818 + "inputTokenLimit": 480,
819 + "outputTokenLimit": 8192,
820 + "supportedGenerationMethods": [
821 + "predict"
822 + ]
823 + },
824 + {
825 + "name": "models/veo-3.1-generate-preview",
826 + "version": "3.1",
827 + "displayName": "Veo 3.1",
828 + "description": "Veo 3.1",
829 + "inputTokenLimit": 480,
830 + "outputTokenLimit": 8192,
831 + "supportedGenerationMethods": [
832 + "predictLongRunning"
833 + ]
834 + },
835 + {
836 + "name": "models/veo-3.1-fast-generate-preview",
837 + "version": "3.1",
838 + "displayName": "Veo 3.1 fast",
839 + "description": "Veo 3.1 fast",
840 + "inputTokenLimit": 480,
841 + "outputTokenLimit": 8192,
842 + "supportedGenerationMethods": [
843 + "predictLongRunning"
844 + ]
845 + },
846 + {
847 + "name": "models/veo-3.1-lite-generate-preview",
848 + "version": "3.1",
849 + "displayName": "Veo 3.1 lite",
850 + "description": "Veo 3.1 lite",
851 + "inputTokenLimit": 480,
852 + "outputTokenLimit": 8192,
853 + "supportedGenerationMethods": [
854 + "predictLongRunning"
855 + ]
856 + },
857 + {
858 + "name": "models/gemini-2.5-flash-native-audio-latest",
859 + "version": "Gemini 2.5 Flash Native Audio Latest",
860 + "displayName": "Gemini 2.5 Flash Native Audio Latest",
861 + "description": "Latest release of Gemini 2.5 Flash Native Audio",
862 + "inputTokenLimit": 131072,
863 + "outputTokenLimit": 8192,
864 + "supportedGenerationMethods": [
865 + "countTokens",
866 + "bidiGenerateContent"
867 + ],
868 + "temperature": 1,
869 + "topP": 0.95,
870 + "topK": 64,
871 + "maxTemperature": 2,
872 + "thinking": true
873 + },
874 + {
875 + "name": "models/gemini-2.5-flash-native-audio-preview-09-2025",
876 + "version": "gemini-2.5-flash-preview-native-audio-dialog-2025-05-19",
877 + "displayName": "Gemini 2.5 Flash Native Audio Preview 09-2025",
878 + "description": "Gemini 2.5 Flash Native Audio Preview 09-2025",
879 + "inputTokenLimit": 131072,
880 + "outputTokenLimit": 8192,
881 + "supportedGenerationMethods": [
882 + "countTokens",
883 + "bidiGenerateContent"
884 + ],
885 + "temperature": 1,
886 + "topP": 0.95,
887 + "topK": 64,
888 + "maxTemperature": 2,
889 + "thinking": true
890 + },
891 + {
892 + "name": "models/gemini-2.5-flash-native-audio-preview-12-2025",
893 + "version": "12-2025",
894 + "displayName": "Gemini 2.5 Flash Native Audio Preview 12-2025",
895 + "description": "Gemini 2.5 Flash Native Audio Preview 12-2025",
896 + "inputTokenLimit": 131072,
897 + "outputTokenLimit": 8192,
898 + "supportedGenerationMethods": [
899 + "countTokens",
900 + "bidiGenerateContent"
901 + ],
902 + "temperature": 1,
903 + "topP": 0.95,
904 + "topK": 64,
905 + "maxTemperature": 2,
906 + "thinking": true
907 + },
908 + {
909 + "name": "models/gemini-3.1-flash-live-preview",
910 + "version": "3.1-flash-live-03-2026",
911 + "displayName": "Gemini 3.1 Flash Live Preview",
912 + "description": "Gemini 3.1 Flash Live Preview",
913 + "inputTokenLimit": 131072,
914 + "outputTokenLimit": 65536,
915 + "supportedGenerationMethods": [
916 + "bidiGenerateContent"
917 + ],
918 + "temperature": 1,
919 + "topP": 0.95,
920 + "topK": 64,
921 + "maxTemperature": 2
922 + },
923 + {
924 + "name": "models/gemini-3.5-live-translate-preview",
925 + "version": "3.5-live-translate-06-2026",
926 + "displayName": "Gemini 3.5 Live Translate Preview",
927 + "description": "Gemini 3.5 Live Translate Preview",
928 + "inputTokenLimit": 16384,
929 + "outputTokenLimit": 32768,
930 + "supportedGenerationMethods": [
931 + "bidiGenerateContent"
932 + ],
933 + "temperature": 1,
934 + "topP": 0.95,
935 + "topK": 64,
936 + "maxTemperature": 2
937 + }
938 + ]
939 +}
added docs/research/probes/kimi.json +1 −0
@@ -0,0 +1 @@
1 +{"object":"list","data":[{"created":1785311147,"id":"kimi-k2.7-code","object":"model","owned_by":"moonshot","permission":[{"created":0,"id":"","object":"","organization":"moonshot","group":"moonshot","is_blocking":false}],"root":"","parent":"","supports_image_in":true,"supports_video_in":true,"supports_reasoning":true,"context_length":262144},{"created":1785311147,"id":"moonshot-v1-128k","object":"model","owned_by":"moonshot","permission":[{"created":0,"id":"","object":"","organization":"moonshot","group":"moonshot","is_blocking":false}],"root":"","parent":"","context_length":131072},{"created":1785311147,"id":"moonshot-v1-8k-vision-preview","object":"model","owned_by":"moonshot","permission":[{"created":0,"id":"","object":"","organization":"moonshot","group":"moonshot","is_blocking":false}],"root":"","parent":"","supports_image_in":true,"context_length":8192},{"created":1785311147,"id":"kimi-k2.7-code-highspeed","object":"model","owned_by":"moonshot","permission":[{"created":0,"id":"","object":"","organization":"moonshot","group":"moonshot","is_blocking":false}],"root":"","parent":"","supports_image_in":true,"supports_video_in":true,"supports_reasoning":true,"context_length":262144},{"created":1785311147,"id":"moonshot-v1-auto","object":"model","owned_by":"moonshot","permission":[{"created":0,"id":"","object":"","organization":"moonshot","group":"moonshot","is_blocking":false}],"root":"","parent":"","context_length":131072},{"created":1785311147,"id":"moonshot-v1-128k-vision-preview","object":"model","owned_by":"moonshot","permission":[{"created":0,"id":"","object":"","organization":"moonshot","group":"moonshot","is_blocking":false}],"root":"","parent":"","supports_image_in":true,"context_length":131072},{"created":1785311147,"id":"kimi-k2.6","object":"model","owned_by":"moonshot","permission":[{"created":0,"id":"","object":"","organization":"moonshot","group":"moonshot","is_blocking":false}],"root":"","parent":"","supports_image_in":true,"supports_video_in":true,"supports_reasoning":true,"context_length":262144},{"created":1785311147,"id":"moonshot-v1-32k-vision-preview","object":"model","owned_by":"moonshot","permission":[{"created":0,"id":"","object":"","organization":"moonshot","group":"moonshot","is_blocking":false}],"root":"","parent":"","supports_image_in":true,"context_length":32768},{"created":1785311147,"id":"kimi-k3","object":"model","owned_by":"moonshot","permission":[{"created":0,"id":"","object":"","organization":"moonshot","group":"moonshot","is_blocking":false}],"root":"","parent":"","supports_image_in":true,"supports_video_in":true,"supports_reasoning":true,"supports_dynamic_tools":true,"think_efforts":{"support":true,"valid_efforts":["low","high","max"],"default_effort":"max"},"reasoning_efforts":{"support":true,"valid_efforts":["low","high","max"],"default_effort":"max"},"supports_thinking_type":"only","context_length":1048576},{"created":1785311147,"id":"moonshot-v1-32k","object":"model","owned_by":"moonshot","permission":[{"created":0,"id":"","object":"","organization":"moonshot","group":"moonshot","is_blocking":false}],"root":"","parent":"","context_length":32768},{"created":1785311147,"id":"kimi-k2.5","object":"model","owned_by":"moonshot","permission":[{"created":0,"id":"","object":"","organization":"moonshot","group":"moonshot","is_blocking":false}],"root":"","parent":"","supports_image_in":true,"supports_video_in":true,"supports_reasoning":true,"context_length":262144},{"created":1785311147,"id":"moonshot-v1-8k","object":"model","owned_by":"moonshot","permission":[{"created":0,"id":"","object":"","organization":"moonshot","group":"moonshot","is_blocking":false}],"root":"","parent":"","context_length":8192}]}
\ No newline at end of file
added docs/research/probes/mistral.json +1 −0
@@ -0,0 +1 @@
1 +{"object":"list","data":[{"id":"mistral-medium-2505","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-medium-2505","description":"Our frontier-class multimodal model released May 2025.","max_context_length":131072,"aliases":[],"deprecation":"2026-08-31T12:00:00Z","deprecation_replacement_model":"mistral-medium-3-5","default_model_temperature":0.3,"type":"base"},{"id":"mistral-medium-2508","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-medium-2508","description":"Update on Mistral Medium 3 with improved capabilities.","max_context_length":131072,"aliases":[],"deprecation":"2026-08-31T12:00:00Z","deprecation_replacement_model":"mistral-medium-3-5","default_model_temperature":0.3,"type":"base"},{"id":"open-mistral-nemo","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"open-mistral-nemo","description":"Our best multilingual open source model released July 2024.","max_context_length":131072,"aliases":["open-mistral-nemo-2407","mistral-tiny-2407","mistral-tiny-latest"],"deprecation":"2026-07-31T12:00:00Z","deprecation_replacement_model":"ministral-8b-2512","default_model_temperature":0.3,"type":"base"},{"id":"open-mistral-nemo-2407","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"open-mistral-nemo","description":"Our best multilingual open source model released July 2024.","max_context_length":131072,"aliases":["open-mistral-nemo","mistral-tiny-2407","mistral-tiny-latest"],"deprecation":"2026-07-31T12:00:00Z","deprecation_replacement_model":"ministral-8b-2512","default_model_temperature":0.3,"type":"base"},{"id":"mistral-tiny-2407","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"open-mistral-nemo","description":"Our best multilingual open source model released July 2024.","max_context_length":131072,"aliases":["open-mistral-nemo","open-mistral-nemo-2407","mistral-tiny-latest"],"deprecation":"2026-07-31T12:00:00Z","deprecation_replacement_model":"ministral-8b-2512","default_model_temperature":0.3,"type":"base"},{"id":"mistral-tiny-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"open-mistral-nemo","description":"Our best multilingual open source model released July 2024.","max_context_length":131072,"aliases":["open-mistral-nemo","open-mistral-nemo-2407","mistral-tiny-2407"],"deprecation":"2026-07-31T12:00:00Z","deprecation_replacement_model":"ministral-8b-2512","default_model_temperature":0.3,"type":"base"},{"id":"codestral-2508","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":true,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"codestral-2508","description":"Our cutting-edge language model for coding released August 2025.","max_context_length":256000,"aliases":["codestral-latest","mistral-code-latest","mistral-code-fim-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"codestral-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":true,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"codestral-2508","description":"Our cutting-edge language model for coding released August 2025.","max_context_length":256000,"aliases":["codestral-2508","mistral-code-latest","mistral-code-fim-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"mistral-code-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":true,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"codestral-2508","description":"Our cutting-edge language model for coding released August 2025.","max_context_length":256000,"aliases":["codestral-2508","codestral-latest","mistral-code-fim-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"mistral-code-fim-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":true,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"codestral-2508","description":"Our cutting-edge language model for coding released August 2025.","max_context_length":256000,"aliases":["codestral-2508","codestral-latest","mistral-code-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"devstral-2512","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"devstral-2512","description":"Official devstral-2512 Mistral AI model","max_context_length":262144,"aliases":["devstral-medium-latest","devstral-latest","mistral-code-agent-latest"],"deprecation":"2026-07-31T12:00:00Z","deprecation_replacement_model":"mistral-medium-3-5","default_model_temperature":0.2,"type":"base"},{"id":"devstral-medium-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"devstral-2512","description":"Official devstral-2512 Mistral AI model","max_context_length":262144,"aliases":["devstral-2512","devstral-latest","mistral-code-agent-latest"],"deprecation":"2026-07-31T12:00:00Z","deprecation_replacement_model":"mistral-medium-3-5","default_model_temperature":0.2,"type":"base"},{"id":"devstral-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"devstral-2512","description":"Official devstral-2512 Mistral AI model","max_context_length":262144,"aliases":["devstral-2512","devstral-medium-latest","mistral-code-agent-latest"],"deprecation":"2026-07-31T12:00:00Z","deprecation_replacement_model":"mistral-medium-3-5","default_model_temperature":0.2,"type":"base"},{"id":"mistral-code-agent-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"devstral-2512","description":"Official devstral-2512 Mistral AI model","max_context_length":262144,"aliases":["devstral-2512","devstral-medium-latest","devstral-latest"],"deprecation":"2026-07-31T12:00:00Z","deprecation_replacement_model":"mistral-medium-3-5","default_model_temperature":0.2,"type":"base"},{"id":"mistral-small-2603","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-small-2603","description":"Mistral Small 4.","max_context_length":262144,"aliases":["mistral-small-latest","mistral-vibe-cli-fast","magistral-small-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"mistral-small-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-small-2603","description":"Mistral Small 4.","max_context_length":262144,"aliases":["mistral-small-2603","mistral-vibe-cli-fast","magistral-small-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"mistral-vibe-cli-fast","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-small-2603","description":"Mistral Small 4.","max_context_length":262144,"aliases":["mistral-small-2603","mistral-small-latest","magistral-small-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"magistral-small-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-small-2603","description":"Mistral Small 4.","max_context_length":262144,"aliases":["mistral-small-2603","mistral-small-latest","mistral-vibe-cli-fast"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"magistral-medium-2509","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":true,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"magistral-medium-2509","description":"Our frontier-class reasoning model release candidate September 2025.","max_context_length":131072,"aliases":["magistral-medium-latest"],"deprecation":"2026-07-31T12:00:00Z","deprecation_replacement_model":"mistral-medium-3-5","default_model_temperature":0.7,"type":"base"},{"id":"magistral-medium-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":true,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"magistral-medium-2509","description":"Our frontier-class reasoning model release candidate September 2025.","max_context_length":131072,"aliases":["magistral-medium-2509"],"deprecation":"2026-07-31T12:00:00Z","deprecation_replacement_model":"mistral-medium-3-5","default_model_temperature":0.7,"type":"base"},{"id":"voxtral-small-2507","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":true,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"voxtral-small-2507","description":"A small audio understanding model released in July 2025","max_context_length":32768,"aliases":["voxtral-small-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.2,"type":"base"},{"id":"voxtral-small-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":true,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"voxtral-small-2507","description":"A small audio understanding model released in July 2025","max_context_length":32768,"aliases":["voxtral-small-2507"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.2,"type":"base"},{"id":"labs-leanstral-1-5-1","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":true},"name":"labs-leanstral-1-5-1","description":"A mid & post-trained version of mistral small 4 for Lean (260618 SFT)","max_context_length":262144,"aliases":["labs-leanstral-1-5"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":1.0,"type":"base"},{"id":"labs-leanstral-1-5","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":true},"name":"labs-leanstral-1-5-1","description":"A mid & post-trained version of mistral small 4 for Lean (260618 SFT)","max_context_length":262144,"aliases":["labs-leanstral-1-5-1"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":1.0,"type":"base"},{"id":"mistral-large-2512","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-large-2512","description":"Official mistral-large-2512 Mistral AI model","max_context_length":262144,"aliases":["mistral-large-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"mistral-large-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-large-2512","description":"Official mistral-large-2512 Mistral AI model","max_context_length":262144,"aliases":["mistral-large-2512"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"ministral-3b-2512","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"ministral-3b-2512","description":"Ministral 3 (a.k.a. Tinystral) 3B Instruct.","max_context_length":131072,"aliases":["ministral-3b-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"ministral-3b-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"ministral-3b-2512","description":"Ministral 3 (a.k.a. Tinystral) 3B Instruct.","max_context_length":131072,"aliases":["ministral-3b-2512"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"ministral-8b-2512","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"ministral-8b-2512","description":"Ministral 3 (a.k.a. Tinystral) 8B Instruct.","max_context_length":262144,"aliases":["ministral-8b-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"ministral-8b-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"ministral-8b-2512","description":"Ministral 3 (a.k.a. Tinystral) 8B Instruct.","max_context_length":262144,"aliases":["ministral-8b-2512"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"ministral-14b-2512","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"ministral-14b-2512","description":"Ministral 3 (a.k.a. Tinystral) 14B Instruct.","max_context_length":262144,"aliases":["ministral-14b-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"ministral-14b-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"ministral-14b-2512","description":"Ministral 3 (a.k.a. Tinystral) 14B Instruct.","max_context_length":262144,"aliases":["ministral-14b-2512"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"mistral-medium-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-medium-latest","description":"Official mistral-medium-latest Mistral AI model","max_context_length":262144,"aliases":["mistral-medium","mistral-medium-3-5","mistral-medium-3.5","mistral-medium-3","mistral-medium-2604","mistral-vibe-cli-latest","mistral-vibe-cli-with-tools"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":1.0,"type":"base"},{"id":"mistral-medium","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-medium-latest","description":"Official mistral-medium-latest Mistral AI model","max_context_length":262144,"aliases":["mistral-medium-latest","mistral-medium-3-5","mistral-medium-3.5","mistral-medium-3","mistral-medium-2604","mistral-vibe-cli-latest","mistral-vibe-cli-with-tools"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":1.0,"type":"base"},{"id":"mistral-medium-3-5","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-medium-latest","description":"Official mistral-medium-latest Mistral AI model","max_context_length":262144,"aliases":["mistral-medium-latest","mistral-medium","mistral-medium-3.5","mistral-medium-3","mistral-medium-2604","mistral-vibe-cli-latest","mistral-vibe-cli-with-tools"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":1.0,"type":"base"},{"id":"mistral-medium-3.5","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-medium-latest","description":"Official mistral-medium-latest Mistral AI model","max_context_length":262144,"aliases":["mistral-medium-latest","mistral-medium","mistral-medium-3-5","mistral-medium-3","mistral-medium-2604","mistral-vibe-cli-latest","mistral-vibe-cli-with-tools"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":1.0,"type":"base"},{"id":"mistral-medium-3","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-medium-latest","description":"Official mistral-medium-latest Mistral AI model","max_context_length":262144,"aliases":["mistral-medium-latest","mistral-medium","mistral-medium-3-5","mistral-medium-3.5","mistral-medium-2604","mistral-vibe-cli-latest","mistral-vibe-cli-with-tools"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":1.0,"type":"base"},{"id":"mistral-medium-2604","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-medium-latest","description":"Official mistral-medium-latest Mistral AI model","max_context_length":262144,"aliases":["mistral-medium-latest","mistral-medium","mistral-medium-3-5","mistral-medium-3.5","mistral-medium-3","mistral-vibe-cli-latest","mistral-vibe-cli-with-tools"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":1.0,"type":"base"},{"id":"mistral-vibe-cli-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-medium-latest","description":"Official mistral-medium-latest Mistral AI model","max_context_length":262144,"aliases":["mistral-medium-latest","mistral-medium","mistral-medium-3-5","mistral-medium-3.5","mistral-medium-3","mistral-medium-2604","mistral-vibe-cli-with-tools"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":1.0,"type":"base"},{"id":"mistral-vibe-cli-with-tools","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-medium-latest","description":"Official mistral-medium-latest Mistral AI model","max_context_length":262144,"aliases":["mistral-medium-latest","mistral-medium","mistral-medium-3-5","mistral-medium-3.5","mistral-medium-3","mistral-medium-2604","mistral-vibe-cli-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":1.0,"type":"base"},{"id":"magistral-small-2509","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":true,"completion_fim":false,"fine_tuning":true,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"magistral-small-2509","description":"Our efficient reasoning model released September 2025.","max_context_length":131072,"aliases":[],"deprecation":"2026-07-31T12:00:00Z","deprecation_replacement_model":"mistral-small-latest","default_model_temperature":0.7,"type":"base"},{"id":"mistral-small-2506","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":true,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-small-2506","description":"Our latest enterprise-grade small model with the latest version released June 2025.","max_context_length":131072,"aliases":[],"deprecation":"2026-07-31T12:00:00Z","deprecation_replacement_model":"mistral-small-latest","default_model_temperature":0.3,"type":"base"},{"id":"mistral-embed-2312","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":false,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-embed-2312","description":"Official mistral-embed-2312 Mistral AI model","max_context_length":8192,"aliases":["mistral-embed"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":null,"type":"base"},{"id":"mistral-embed","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":false,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-embed-2312","description":"Official mistral-embed-2312 Mistral AI model","max_context_length":8192,"aliases":["mistral-embed-2312"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":null,"type":"base"},{"id":"codestral-embed","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":false,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"codestral-embed","description":"Official codestral-embed Mistral AI model","max_context_length":8192,"aliases":["codestral-embed-2505"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":null,"type":"base"},{"id":"codestral-embed-2505","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":false,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"codestral-embed","description":"Official codestral-embed Mistral AI model","max_context_length":8192,"aliases":["codestral-embed"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":null,"type":"base"},{"id":"mistral-moderation-2603","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":false,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":true,"moderation":true,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-moderation-2603","description":"Official mistral-moderation-2603 Mistral AI model","max_context_length":131072,"aliases":[],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":null,"type":"base"},{"id":"mistral-ocr-2512","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":true,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-ocr-2512","description":"Official mistral-ocr-2512 Mistral AI model","max_context_length":16384,"aliases":["mistral-ocr-3-0","mistral-ocr-3"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.0,"type":"base"},{"id":"mistral-ocr-3-0","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":true,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-ocr-2512","description":"Official mistral-ocr-2512 Mistral AI model","max_context_length":16384,"aliases":["mistral-ocr-2512","mistral-ocr-3"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.0,"type":"base"},{"id":"mistral-ocr-3","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":true,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-ocr-2512","description":"Official mistral-ocr-2512 Mistral AI model","max_context_length":16384,"aliases":["mistral-ocr-2512","mistral-ocr-3-0"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.0,"type":"base"},{"id":"mistral-ocr-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":true,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-ocr-latest","description":"Official mistral-ocr-latest Mistral AI model","max_context_length":16384,"aliases":["mistral-ocr-4-0","mistral-ocr-4"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.0,"type":"base"},{"id":"mistral-ocr-4-0","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":true,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-ocr-latest","description":"Official mistral-ocr-latest Mistral AI model","max_context_length":16384,"aliases":["mistral-ocr-latest","mistral-ocr-4"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.0,"type":"base"},{"id":"mistral-ocr-4","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":true,"ocr":true,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"mistral-ocr-latest","description":"Official mistral-ocr-latest Mistral AI model","max_context_length":16384,"aliases":["mistral-ocr-latest","mistral-ocr-4-0"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.0,"type":"base"},{"id":"voxtral-mini-2602","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":false,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":true,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"voxtral-mini-2602","description":"Official voxtral-mini-2602 Mistral AI model","max_context_length":16384,"aliases":["voxtral-mini-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.0,"type":"base"},{"id":"voxtral-mini-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":false,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":true,"audio_transcription_realtime":false,"audio_speech":false,"unified_resources":false},"name":"voxtral-mini-2602","description":"Official voxtral-mini-2602 Mistral AI model","max_context_length":16384,"aliases":["voxtral-mini-2602"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.0,"type":"base"},{"id":"voxtral-mini-transcribe-realtime-2602","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":false,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":true,"audio_speech":false,"unified_resources":false},"name":"voxtral-mini-transcribe-realtime-2602","description":"A realtime transcription model released in January 2026","max_context_length":32768,"aliases":["voxtral-mini-realtime-2602","voxtral-mini-realtime-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.0,"type":"base"},{"id":"voxtral-mini-realtime-2602","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":false,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":true,"audio_speech":false,"unified_resources":false},"name":"voxtral-mini-transcribe-realtime-2602","description":"A realtime transcription model released in January 2026","max_context_length":32768,"aliases":["voxtral-mini-transcribe-realtime-2602","voxtral-mini-realtime-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.0,"type":"base"},{"id":"voxtral-mini-realtime-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":false,"reasoning":false,"completion_fim":false,"fine_tuning":false,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":true,"audio_speech":false,"unified_resources":false},"name":"voxtral-mini-transcribe-realtime-2602","description":"A realtime transcription model released in January 2026","max_context_length":32768,"aliases":["voxtral-mini-transcribe-realtime-2602","voxtral-mini-realtime-2602"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.0,"type":"base"},{"id":"voxtral-mini-tts-2603","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":true,"unified_resources":false},"name":"voxtral-mini-tts-2603","description":"TTS v1 final checkpoint","max_context_length":4096,"aliases":["voxtral-mini-tts-latest"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"},{"id":"voxtral-mini-tts-latest","object":"model","created":1785394257,"owned_by":"mistralai","capabilities":{"completion_chat":false,"function_calling":true,"reasoning":false,"completion_fim":false,"fine_tuning":true,"vision":false,"ocr":false,"classification":false,"moderation":false,"audio":false,"audio_transcription":false,"audio_transcription_realtime":false,"audio_speech":true,"unified_resources":false},"name":"voxtral-mini-tts-2603","description":"TTS v1 final checkpoint","max_context_length":4096,"aliases":["voxtral-mini-tts-2603"],"deprecation":null,"deprecation_replacement_model":null,"default_model_temperature":0.3,"type":"base"}]}
\ No newline at end of file
added docs/research/probes/openai.json +797 −0
@@ -0,0 +1,797 @@
1 +{
2 + "object": "list",
3 + "data": [
4 + {
5 + "id": "text-embedding-ada-002",
6 + "object": "model",
7 + "created": 1671217299,
8 + "owned_by": "openai-internal"
9 + },
10 + {
11 + "id": "whisper-1",
12 + "object": "model",
13 + "created": 1677532384,
14 + "owned_by": "openai-internal"
15 + },
16 + {
17 + "id": "gpt-3.5-turbo",
18 + "object": "model",
19 + "created": 1677610602,
20 + "owned_by": "openai"
21 + },
22 + {
23 + "id": "tts-1",
24 + "object": "model",
25 + "created": 1681940951,
26 + "owned_by": "openai-internal"
27 + },
28 + {
29 + "id": "gpt-3.5-turbo-16k",
30 + "object": "model",
31 + "created": 1683758102,
32 + "owned_by": "openai-internal"
33 + },
34 + {
35 + "id": "gpt-4-0613",
36 + "object": "model",
37 + "created": 1686588896,
38 + "owned_by": "openai"
39 + },
40 + {
41 + "id": "gpt-4",
42 + "object": "model",
43 + "created": 1687882411,
44 + "owned_by": "openai"
45 + },
46 + {
47 + "id": "davinci-002",
48 + "object": "model",
49 + "created": 1692634301,
50 + "owned_by": "system"
51 + },
52 + {
53 + "id": "babbage-002",
54 + "object": "model",
55 + "created": 1692634615,
56 + "owned_by": "system"
57 + },
58 + {
59 + "id": "gpt-3.5-turbo-instruct",
60 + "object": "model",
61 + "created": 1692901427,
62 + "owned_by": "system"
63 + },
64 + {
65 + "id": "gpt-3.5-turbo-instruct-0914",
66 + "object": "model",
67 + "created": 1694122472,
68 + "owned_by": "system"
69 + },
70 + {
71 + "id": "gpt-3.5-turbo-1106",
72 + "object": "model",
73 + "created": 1698959748,
74 + "owned_by": "system"
75 + },
76 + {
77 + "id": "tts-1-hd",
78 + "object": "model",
79 + "created": 1699046015,
80 + "owned_by": "system"
81 + },
82 + {
83 + "id": "tts-1-1106",
84 + "object": "model",
85 + "created": 1699053241,
86 + "owned_by": "system"
87 + },
88 + {
89 + "id": "tts-1-hd-1106",
90 + "object": "model",
91 + "created": 1699053533,
92 + "owned_by": "system"
93 + },
94 + {
95 + "id": "text-embedding-3-small",
96 + "object": "model",
97 + "created": 1705948997,
98 + "owned_by": "system"
99 + },
100 + {
101 + "id": "text-embedding-3-large",
102 + "object": "model",
103 + "created": 1705953180,
104 + "owned_by": "system"
105 + },
106 + {
107 + "id": "gpt-3.5-turbo-0125",
108 + "object": "model",
109 + "created": 1706048358,
110 + "owned_by": "system"
111 + },
112 + {
113 + "id": "gpt-4-turbo",
114 + "object": "model",
115 + "created": 1712361441,
116 + "owned_by": "system"
117 + },
118 + {
119 + "id": "gpt-4-turbo-2024-04-09",
120 + "object": "model",
121 + "created": 1712601677,
122 + "owned_by": "system"
123 + },
124 + {
125 + "id": "gpt-4o",
126 + "object": "model",
127 + "created": 1715367049,
128 + "owned_by": "system"
129 + },
130 + {
131 + "id": "gpt-4o-2024-05-13",
132 + "object": "model",
133 + "created": 1715368132,
134 + "owned_by": "system"
135 + },
136 + {
137 + "id": "gpt-4o-mini-2024-07-18",
138 + "object": "model",
139 + "created": 1721172717,
140 + "owned_by": "system"
141 + },
142 + {
143 + "id": "gpt-4o-mini",
144 + "object": "model",
145 + "created": 1721172741,
146 + "owned_by": "system"
147 + },
148 + {
149 + "id": "gpt-4o-2024-08-06",
150 + "object": "model",
151 + "created": 1722814719,
152 + "owned_by": "system"
153 + },
154 + {
155 + "id": "omni-moderation-latest",
156 + "object": "model",
157 + "created": 1731689265,
158 + "owned_by": "system"
159 + },
160 + {
161 + "id": "omni-moderation-2024-09-26",
162 + "object": "model",
163 + "created": 1732734466,
164 + "owned_by": "system"
165 + },
166 + {
167 + "id": "o1-2024-12-17",
168 + "object": "model",
169 + "created": 1734326976,
170 + "owned_by": "system"
171 + },
172 + {
173 + "id": "o1",
174 + "object": "model",
175 + "created": 1734375816,
176 + "owned_by": "system"
177 + },
178 + {
179 + "id": "o3-mini",
180 + "object": "model",
181 + "created": 1737146383,
182 + "owned_by": "system"
183 + },
184 + {
185 + "id": "o3-mini-2025-01-31",
186 + "object": "model",
187 + "created": 1738010200,
188 + "owned_by": "system"
189 + },
190 + {
191 + "id": "gpt-4o-2024-11-20",
192 + "object": "model",
193 + "created": 1739331543,
194 + "owned_by": "system"
195 + },
196 + {
197 + "id": "gpt-4o-mini-search-preview-2025-03-11",
198 + "object": "model",
199 + "created": 1741390858,
200 + "owned_by": "system"
201 + },
202 + {
203 + "id": "gpt-4o-mini-search-preview",
204 + "object": "model",
205 + "created": 1741391161,
206 + "owned_by": "system"
207 + },
208 + {
209 + "id": "gpt-4o-transcribe",
210 + "object": "model",
211 + "created": 1742068463,
212 + "owned_by": "system"
213 + },
214 + {
215 + "id": "gpt-4o-mini-transcribe",
216 + "object": "model",
217 + "created": 1742068596,
218 + "owned_by": "system"
219 + },
220 + {
221 + "id": "o1-pro-2025-03-19",
222 + "object": "model",
223 + "created": 1742251504,
224 + "owned_by": "system"
225 + },
226 + {
227 + "id": "o1-pro",
228 + "object": "model",
229 + "created": 1742251791,
230 + "owned_by": "system"
231 + },
232 + {
233 + "id": "gpt-4o-mini-tts",
234 + "object": "model",
235 + "created": 1742403959,
236 + "owned_by": "system"
237 + },
238 + {
239 + "id": "o3-2025-04-16",
240 + "object": "model",
241 + "created": 1744133301,
242 + "owned_by": "system"
243 + },
244 + {
245 + "id": "o4-mini-2025-04-16",
246 + "object": "model",
247 + "created": 1744133506,
248 + "owned_by": "system"
249 + },
250 + {
251 + "id": "o3",
252 + "object": "model",
253 + "created": 1744225308,
254 + "owned_by": "system"
255 + },
256 + {
257 + "id": "o4-mini",
258 + "object": "model",
259 + "created": 1744225351,
260 + "owned_by": "system"
261 + },
262 + {
263 + "id": "gpt-4.1-2025-04-14",
264 + "object": "model",
265 + "created": 1744315746,
266 + "owned_by": "system"
267 + },
268 + {
269 + "id": "gpt-4.1",
270 + "object": "model",
271 + "created": 1744316542,
272 + "owned_by": "system"
273 + },
274 + {
275 + "id": "gpt-4.1-mini-2025-04-14",
276 + "object": "model",
277 + "created": 1744317547,
278 + "owned_by": "system"
279 + },
280 + {
281 + "id": "gpt-4.1-mini",
282 + "object": "model",
283 + "created": 1744318173,
284 + "owned_by": "system"
285 + },
286 + {
287 + "id": "gpt-4.1-nano-2025-04-14",
288 + "object": "model",
289 + "created": 1744321025,
290 + "owned_by": "system"
291 + },
292 + {
293 + "id": "gpt-4.1-nano",
294 + "object": "model",
295 + "created": 1744321707,
296 + "owned_by": "system"
297 + },
298 + {
299 + "id": "gpt-image-1",
300 + "object": "model",
301 + "created": 1745517030,
302 + "owned_by": "system"
303 + },
304 + {
305 + "id": "o3-pro",
306 + "object": "model",
307 + "created": 1748475349,
308 + "owned_by": "system"
309 + },
310 + {
311 + "id": "o3-pro-2025-06-10",
312 + "object": "model",
313 + "created": 1749166761,
314 + "owned_by": "system"
315 + },
316 + {
317 + "id": "o4-mini-deep-research",
318 + "object": "model",
319 + "created": 1749685485,
320 + "owned_by": "system"
321 + },
322 + {
323 + "id": "o3-deep-research",
324 + "object": "model",
325 + "created": 1749840121,
326 + "owned_by": "system"
327 + },
328 + {
329 + "id": "gpt-4o-transcribe-diarize",
330 + "object": "model",
331 + "created": 1750798887,
332 + "owned_by": "system"
333 + },
334 + {
335 + "id": "o3-deep-research-2025-06-26",
336 + "object": "model",
337 + "created": 1750865219,
338 + "owned_by": "system"
339 + },
340 + {
341 + "id": "o4-mini-deep-research-2025-06-26",
342 + "object": "model",
343 + "created": 1750866121,
344 + "owned_by": "system"
345 + },
346 + {
347 + "id": "gpt-5-chat-latest",
348 + "object": "model",
349 + "created": 1754073306,
350 + "owned_by": "system"
351 + },
352 + {
353 + "id": "gpt-5-2025-08-07",
354 + "object": "model",
355 + "created": 1754075360,
356 + "owned_by": "system"
357 + },
358 + {
359 + "id": "gpt-5",
360 + "object": "model",
361 + "created": 1754425777,
362 + "owned_by": "system"
363 + },
364 + {
365 + "id": "gpt-5-mini-2025-08-07",
366 + "object": "model",
367 + "created": 1754425867,
368 + "owned_by": "system"
369 + },
370 + {
371 + "id": "gpt-5-mini",
372 + "object": "model",
373 + "created": 1754425928,
374 + "owned_by": "system"
375 + },
376 + {
377 + "id": "gpt-5-nano-2025-08-07",
378 + "object": "model",
379 + "created": 1754426303,
380 + "owned_by": "system"
381 + },
382 + {
383 + "id": "gpt-5-nano",
384 + "object": "model",
385 + "created": 1754426384,
386 + "owned_by": "system"
387 + },
388 + {
389 + "id": "gpt-audio-2025-08-28",
390 + "object": "model",
391 + "created": 1756256146,
392 + "owned_by": "system"
393 + },
394 + {
395 + "id": "gpt-realtime",
396 + "object": "model",
397 + "created": 1756271701,
398 + "owned_by": "system"
399 + },
400 + {
401 + "id": "gpt-realtime-2025-08-28",
402 + "object": "model",
403 + "created": 1756271773,
404 + "owned_by": "system"
405 + },
406 + {
407 + "id": "gpt-audio",
408 + "object": "model",
409 + "created": 1756339249,
410 + "owned_by": "system"
411 + },
412 + {
413 + "id": "gpt-5-codex",
414 + "object": "model",
415 + "created": 1757527818,
416 + "owned_by": "system"
417 + },
418 + {
419 + "id": "gpt-image-1-mini",
420 + "object": "model",
421 + "created": 1758845821,
422 + "owned_by": "system"
423 + },
424 + {
425 + "id": "gpt-5-pro-2025-10-06",
426 + "object": "model",
427 + "created": 1759469707,
428 + "owned_by": "system"
429 + },
430 + {
431 + "id": "gpt-5-pro",
432 + "object": "model",
433 + "created": 1759469822,
434 + "owned_by": "system"
435 + },
436 + {
437 + "id": "gpt-audio-mini",
438 + "object": "model",
439 + "created": 1759512027,
440 + "owned_by": "system"
441 + },
442 + {
443 + "id": "gpt-audio-mini-2025-10-06",
444 + "object": "model",
445 + "created": 1759512137,
446 + "owned_by": "system"
447 + },
448 + {
449 + "id": "gpt-5-search-api",
450 + "object": "model",
451 + "created": 1759514629,
452 + "owned_by": "system"
453 + },
454 + {
455 + "id": "gpt-realtime-mini",
456 + "object": "model",
457 + "created": 1759517133,
458 + "owned_by": "system"
459 + },
460 + {
461 + "id": "gpt-realtime-mini-2025-10-06",
462 + "object": "model",
463 + "created": 1759517175,
464 + "owned_by": "system"
465 + },
466 + {
467 + "id": "sora-2",
468 + "object": "model",
469 + "created": 1759708615,
470 + "owned_by": "system"
471 + },
472 + {
473 + "id": "sora-2-pro",
474 + "object": "model",
475 + "created": 1759708663,
476 + "owned_by": "system"
477 + },
478 + {
479 + "id": "gpt-5-search-api-2025-10-14",
480 + "object": "model",
481 + "created": 1760043960,
482 + "owned_by": "system"
483 + },
484 + {
485 + "id": "gpt-5.1-chat-latest",
486 + "object": "model",
487 + "created": 1762547951,
488 + "owned_by": "system"
489 + },
490 + {
491 + "id": "gpt-5.1-2025-11-13",
492 + "object": "model",
493 + "created": 1762800353,
494 + "owned_by": "system"
495 + },
496 + {
497 + "id": "gpt-5.1",
498 + "object": "model",
499 + "created": 1762800673,
500 + "owned_by": "system"
501 + },
502 + {
503 + "id": "gpt-5.1-codex",
504 + "object": "model",
505 + "created": 1762988221,
506 + "owned_by": "system"
507 + },
508 + {
509 + "id": "gpt-5.1-codex-mini",
510 + "object": "model",
511 + "created": 1763007109,
512 + "owned_by": "system"
513 + },
514 + {
515 + "id": "gpt-5.1-codex-max",
516 + "object": "model",
517 + "created": 1763671532,
518 + "owned_by": "system"
519 + },
520 + {
521 + "id": "gpt-image-1.5",
522 + "object": "model",
523 + "created": 1764030620,
524 + "owned_by": "system"
525 + },
526 + {
527 + "id": "gpt-5.2-2025-12-11",
528 + "object": "model",
529 + "created": 1765313028,
530 + "owned_by": "system"
531 + },
532 + {
533 + "id": "gpt-5.2",
534 + "object": "model",
535 + "created": 1765313051,
536 + "owned_by": "system"
537 + },
538 + {
539 + "id": "gpt-5.2-pro-2025-12-11",
540 + "object": "model",
541 + "created": 1765343959,
542 + "owned_by": "system"
543 + },
544 + {
545 + "id": "gpt-5.2-pro",
546 + "object": "model",
547 + "created": 1765343983,
548 + "owned_by": "system"
549 + },
550 + {
551 + "id": "gpt-5.2-chat-latest",
552 + "object": "model",
553 + "created": 1765344352,
554 + "owned_by": "system"
555 + },
556 + {
557 + "id": "gpt-4o-mini-transcribe-2025-12-15",
558 + "object": "model",
559 + "created": 1765610407,
560 + "owned_by": "system"
561 + },
562 + {
563 + "id": "gpt-4o-mini-transcribe-2025-03-20",
564 + "object": "model",
565 + "created": 1765610545,
566 + "owned_by": "system"
567 + },
568 + {
569 + "id": "gpt-4o-mini-tts-2025-03-20",
570 + "object": "model",
571 + "created": 1765610731,
572 + "owned_by": "system"
573 + },
574 + {
575 + "id": "gpt-4o-mini-tts-2025-12-15",
576 + "object": "model",
577 + "created": 1765610837,
578 + "owned_by": "system"
579 + },
580 + {
581 + "id": "gpt-realtime-mini-2025-12-15",
582 + "object": "model",
583 + "created": 1765612007,
584 + "owned_by": "system"
585 + },
586 + {
587 + "id": "gpt-audio-mini-2025-12-15",
588 + "object": "model",
589 + "created": 1765760008,
590 + "owned_by": "system"
591 + },
592 + {
593 + "id": "chatgpt-image-latest",
594 + "object": "model",
595 + "created": 1765925279,
596 + "owned_by": "system"
597 + },
598 + {
599 + "id": "gpt-5.2-codex",
600 + "object": "model",
601 + "created": 1766164985,
602 + "owned_by": "system"
603 + },
604 + {
605 + "id": "gpt-5.3-codex",
606 + "object": "model",
607 + "created": 1770537915,
608 + "owned_by": "system"
609 + },
610 + {
611 + "id": "gpt-realtime-1.5",
612 + "object": "model",
613 + "created": 1771461469,
614 + "owned_by": "system"
615 + },
616 + {
617 + "id": "gpt-audio-1.5",
618 + "object": "model",
619 + "created": 1771550885,
620 + "owned_by": "system"
621 + },
622 + {
623 + "id": "gpt-4o-search-preview",
624 + "object": "model",
625 + "created": 1771905534,
626 + "owned_by": "system"
627 + },
628 + {
629 + "id": "gpt-4o-search-preview-2025-03-11",
630 + "object": "model",
631 + "created": 1771905621,
632 + "owned_by": "system"
633 + },
634 + {
635 + "id": "gpt-5.3-chat-latest",
636 + "object": "model",
637 + "created": 1772236571,
638 + "owned_by": "system"
639 + },
640 + {
641 + "id": "gpt-5.4-2026-03-05",
642 + "object": "model",
643 + "created": 1772654062,
644 + "owned_by": "system"
645 + },
646 + {
647 + "id": "gpt-5.4-pro",
648 + "object": "model",
649 + "created": 1772659601,
650 + "owned_by": "system"
651 + },
652 + {
653 + "id": "gpt-5.4-pro-2026-03-05",
654 + "object": "model",
655 + "created": 1772659657,
656 + "owned_by": "system"
657 + },
658 + {
659 + "id": "gpt-5.4",
660 + "object": "model",
661 + "created": 1772691852,
662 + "owned_by": "system"
663 + },
664 + {
665 + "id": "gpt-5.4-nano-2026-03-17",
666 + "object": "model",
667 + "created": 1773450837,
668 + "owned_by": "system"
669 + },
670 + {
671 + "id": "gpt-5.4-nano",
672 + "object": "model",
673 + "created": 1773450870,
674 + "owned_by": "system"
675 + },
676 + {
677 + "id": "gpt-5.4-mini-2026-03-17",
678 + "object": "model",
679 + "created": 1773451076,
680 + "owned_by": "system"
681 + },
682 + {
683 + "id": "gpt-5.4-mini",
684 + "object": "model",
685 + "created": 1773451123,
686 + "owned_by": "system"
687 + },
688 + {
689 + "id": "gpt-image-2",
690 + "object": "model",
691 + "created": 1776399795,
692 + "owned_by": "system"
693 + },
694 + {
695 + "id": "gpt-image-2-2026-04-21",
696 + "object": "model",
697 + "created": 1776399994,
698 + "owned_by": "system"
699 + },
700 + {
701 + "id": "gpt-5.5",
702 + "object": "model",
703 + "created": 1776824847,
704 + "owned_by": "system"
705 + },
706 + {
707 + "id": "gpt-5.5-2026-04-23",
708 + "object": "model",
709 + "created": 1776839241,
710 + "owned_by": "system"
711 + },
712 + {
713 + "id": "gpt-5.5-pro",
714 + "object": "model",
715 + "created": 1776894349,
716 + "owned_by": "system"
717 + },
718 + {
719 + "id": "gpt-5.5-pro-2026-04-23",
720 + "object": "model",
721 + "created": 1776894470,
722 + "owned_by": "system"
723 + },
724 + {
725 + "id": "chat-latest",
726 + "object": "model",
727 + "created": 1777704602,
728 + "owned_by": "system"
729 + },
730 + {
731 + "id": "gpt-realtime-translate",
732 + "object": "model",
733 + "created": 1777950216,
734 + "owned_by": "system"
735 + },
736 + {
737 + "id": "gpt-realtime-2",
738 + "object": "model",
739 + "created": 1778006032,
740 + "owned_by": "system"
741 + },
742 + {
743 + "id": "gpt-realtime-whisper",
744 + "object": "model",
745 + "created": 1778012060,
746 + "owned_by": "system"
747 + },
748 + {
749 + "id": "gpt-5.6-sol",
750 + "object": "model",
751 + "created": 1782228018,
752 + "owned_by": "system"
753 + },
754 + {
755 + "id": "gpt-5.6-terra",
756 + "object": "model",
757 + "created": 1782228459,
758 + "owned_by": "system"
759 + },
760 + {
761 + "id": "gpt-5.6-luna",
762 + "object": "model",
763 + "created": 1782228658,
764 + "owned_by": "system"
765 + },
766 + {
767 + "id": "gpt-realtime-2.1",
768 + "object": "model",
769 + "created": 1782254687,
770 + "owned_by": "system"
771 + },
772 + {
773 + "id": "gpt-realtime-2.1-mini",
774 + "object": "model",
775 + "created": 1782254706,
776 + "owned_by": "system"
777 + },
778 + {
779 + "id": "gpt-transcribe",
780 + "object": "model",
781 + "created": 1785168027,
782 + "owned_by": "system"
783 + },
784 + {
785 + "id": "gpt-live-transcribe",
786 + "object": "model",
787 + "created": 1785168034,
788 + "owned_by": "system"
789 + },
790 + {
791 + "id": "ra-gpt-5.6-sol",
792 + "object": "model",
793 + "created": 1785364983,
794 + "owned_by": "system"
795 + }
796 + ]
797 +}
\ No newline at end of file
added docs/research/probes/perplexity.json +0 −0
added docs/research/probes/together.json +1 −0
@@ -0,0 +1 @@
1 +[{"id":"moonshotai/Kimi-K3","uuid":"endpoint-kk-moonshotai-kimi-k3","object":"model","created":1785049898,"type":"chat","running":false,"display_name":"Kimi K3","organization":"Moonshot AI","link":"https://huggingface.co/moonshotai","license":"other","context_length":1000000,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":3,"output":15,"base":0,"finetune":0,"cached_input":0.3,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"thinkingmachines/Inkling","uuid":"endpoint-8b0aa8da-8d35-4a01-be0b-eca731d64568","object":"model","created":0,"type":"chat","running":false,"display_name":"Inkling FP4","organization":"Thinking Machines","link":"https://huggingface.co/api/models/thinkingmachines/Inkling-NVFP4","license":"apache-2.0","context_length":524288,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":1,"output":4.05,"base":0,"finetune":0,"cached_input":0.17,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"zai-org/GLM-5.2","uuid":"endpoint-83348bee-b0fb-4aad-8ba4-72545469cb9e","object":"model","created":0,"type":"chat","running":false,"display_name":"GLM 5.2","organization":"Zai Org","link":"https://huggingface.co/api/models/nvidia/GLM-5.2-NVFP4","context_length":512000,"config":{"chat_template":"[gMASK]<sop>\n{%- set effective_reasoning_effort = 'high' if reasoning_effort is defined and reasoning_effort == 'high' else 'max' -%}\n{%- if (enable_thinking is not defined or enable_thinking) and effective_reasoning_effort is not none -%}<|system|>Reasoning Effort: {{ effective_reasoning_effort | capitalize }}{%- endif -%}\n{%- if tools -%}\n{%- macro tool_to_json(tool) -%}\n {%- set ns_tool = namespace(first=true) -%}\n {{ '{' -}}\n {%- for k, v in tool.items() -%}\n {%- if k != 'defer_loading' and k != 'strict' -%}\n {%- if not ns_tool.first -%}{{- ', ' -}}{%- endif -%}\n {%- set ns_tool.first = false -%}\n \"{{ k }}\": {{ v | tojson(ensure_ascii=False) }}\n {%- endif -%}\n {%- endfor -%}\n {{- '}' -}}\n{%- endmacro -%}\n<|system|>\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{% for tool in tools %}\n{%- if 'function' in tool -%}\n {%- set tool = tool['function'] -%}\n{%- endif -%}\n{% if tool.defer_loading is not defined or not tool.defer_loading %}\n{{ tool_to_json(tool) }}\n{% endif %}\n{% endfor %}\n</tools>\n\nFor each function call, output the function name and arguments within the following XML format:\n<tool_call>{function-name}<arg_key>{arg-key-1}</arg_key><arg_value>{arg-value-1}</arg_value><arg_key>{arg-key-2}</arg_key><arg_value>{arg-value-2}</arg_value>...</tool_call>{%- endif -%}\n{%- macro visible_text(content) -%}\n {%- if content is string -%}\n {{- content }}\n {%- elif content is iterable and content is not mapping -%}\n {%- for item in content -%}\n {%- if item is mapping and item.type == 'text' -%}\n {{- item.text }}\n {%- elif item is string -%}\n {{- item }}\n {%- elif item is mapping and item.type in ['image', 'image_url', 'video', 'video_url', 'audio', 'audio_url', 'input_audio'] -%}\n {%- set media_type = item.type | replace('_url', '') | replace('input_', '') -%}\n {{- \"<reminder>You are unable to process this \" ~ media_type ~ \" because you don't have multi-modal input ability. Try different methods.</reminder>\" }}\n {%- endif -%}\n {%- endfor -%}\n {%- else -%}\n {{- content }}\n {%- endif -%}\n{%- endmacro -%}\n{%- set ns = namespace(last_user_index=-1) -%}\n{%- for m in messages %}\n {%- if m.role == 'user' %}\n {%- set ns.last_user_index = loop.index0 -%}\n {%- endif %}\n{%- endfor %}\n{%- for m in messages -%}\n{%- if m.role == 'user' -%}<|user|>{{ visible_text(m.content) }}\n{%- elif m.role == 'assistant' -%}\n<|assistant|>\n{%- set content = visible_text(m.content) %}\n{%- if m.reasoning_content is string %}\n {%- set reasoning_content = m.reasoning_content %}\n{%- elif '</think>' in content %}\n {%- set reasoning_content = content.split('</think>')[0].split('<think>')[-1] %}\n {%- set content = content.split('</think>')[-1] %}\n{%- endif %}\n{%- if ((clear_thinking is defined and not clear_thinking) or loop.index0 > ns.last_user_index) and reasoning_content is defined -%}\n{{ '<think>' + reasoning_content + '</think>'}}\n{%- else -%}\n{{ '<think></think>' }}\n{%- endif -%}\n{%- if content.strip() -%}\n{{ content.strip() }}\n{%- endif -%}\n{% if m.tool_calls %}\n{% for tc in m.tool_calls %}\n{%- if tc.function %}\n {%- set tc = tc.function %}\n{%- endif %}\n{{- '<tool_call>' + tc.name -}}\n{% set _args = tc.arguments %}{% for k, v in _args.items() %}<arg_key>{{ k }}</arg_key><arg_value>{{ v | tojson(ensure_ascii=False) if v is not string else v }}</arg_value>{% endfor %}</tool_call>{% endfor %}\n{% endif %}\n{%- elif m.role == 'tool' -%}\n{%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|observation|>' -}}\n{%- endif %}\n{%- if m.content is string -%}\n {{- '<tool_response>' + m.content + '</tool_response>' -}}\n{%- elif m.content is iterable and m.content is not mapping and m.content and m.content.0.type == \"tool_reference\" -%}\n {{- '<tool_response><tools>\\n' -}}\n {% for tr in m.content %}\n {%- for tool in tools -%}\n {%- if 'function' in tool -%}\n {%- set tool = tool['function'] -%}\n {%- endif -%}\n {%- if tool.name == tr.name -%}\n {{- tool_to_json(tool) + '\\n' -}}\n {%- endif -%}\n {%- endfor -%}\n {%- endfor -%}\n {{- '</tools></tool_response>' -}}\n{%- elif m.content is iterable and m.content is not mapping and m.content and m.content.0 is mapping and m.content.0.output is defined -%}\n {%- for tr in m.content -%}\n {{- '<tool_response>' + tr.output + '</tool_response>' -}}\n {%- endfor -%}\n{%- else -%}\n {{- '<tool_response>' + visible_text(m.content) + '</tool_response>' -}}\n{% endif -%}\n{%- elif m.role == 'system' -%}\n<|system|>{{ visible_text(m.content) }}\n{%- endif -%}\n{%- endfor -%}\n{%- if add_generation_prompt -%}\n <|assistant|>{{- '<think></think>' if (enable_thinking is defined and not enable_thinking) else '<think>' -}}\n{%- endif -%}\n","stop":[],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":1.4,"output":4.4,"base":0,"finetune":0,"cached_input":0.25999999999999995,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"MiniMaxAI/MiniMax-M3","uuid":"endpoint-5dea048e-3527-4287-8da8-5e61214b9f64","object":"model","created":0,"type":"chat","running":false,"display_name":"MiniMax M3","organization":"MiniMaxAI","context_length":524288,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.3,"output":1.2,"base":0,"finetune":0,"cached_input":0.060000000000000005,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"moonshotai/Kimi-K2.7-Code","uuid":"endpoint-b8ae5f69-a244-43dd-a6ac-957653518387","object":"model","created":0,"type":"chat","running":false,"display_name":"Kimi K2.7 Code","organization":"Moonshot AI","link":"https://huggingface.co/api/models/togethercomputer/Kimi-K2.7-Code-FP4","context_length":262144,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.95,"output":4,"base":0,"finetune":0,"cached_input":0.19,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepseek-ai/DeepSeek-V4-Pro","uuid":"endpoint-94151073-7212-43f8-9357-42a6043e1eef","object":"model","created":0,"type":"chat","running":false,"display_name":"Deepseek V4 Pro","organization":"Deepseek","context_length":512000,"config":{"chat_template":null,"stop":["<|end▁of▁sentence|>"],"bos_token":"<|begin▁of▁sentence|>","eos_token":"<|end▁of▁sentence|>"},"pricing":{"hourly":0,"input":1.74,"output":3.48,"base":0,"finetune":0,"cached_input":0.2,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nvidia/nemotron-3-ultra-550b-a55b","uuid":"endpoint-0f2ee6f7-0ad9-42e9-89df-cab8904dc46c","object":"model","created":0,"type":"chat","running":false,"display_name":"NVIDIA Nemotron 3 Ultra 550B A55B NVFP4","organization":"NVIDIA","context_length":512288,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.6,"output":3.6,"base":0,"finetune":0,"cached_input":0.2,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"moonshotai/Kimi-K2.6","uuid":"endpoint-257f1462-b475-4dd5-b417-96fb54d0a513","object":"model","created":0,"type":"chat","running":false,"display_name":"Kimi K2.6 Fp4","organization":"Moonshot AI","link":"https://huggingface.co/api/models/togethercomputer/Kimi-K2.6-FP4","context_length":262144,"config":{"chat_template":null,"stop":[],"bos_token":"[BOS]","eos_token":"[EOS]"},"pricing":{"hourly":0,"input":1.2,"output":4.5,"base":0,"finetune":0,"cached_input":0.2,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3.7-Max","uuid":"endpoint-ba47b6c3-f84c-435c-9d86-d8142b17031b","object":"model","created":1779386434,"type":"chat","running":false,"display_name":"Qwen3.7 Max","organization":"Qwen","context_length":1000000,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":1.25,"output":3.75,"base":0,"finetune":0,"cached_input":0.125,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-4-31B-it","uuid":"endpoint-155df9cc-8c2f-4a04-8840-728681211a34","object":"model","created":0,"type":"chat","running":false,"display_name":"Gemma 4 31B-it FP8","organization":"Google","link":"https://huggingface.co/api/models/google/gemma-4-31B-it","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":["<eos>"],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0.39,"output":0.9700000000000001,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"pearl-ai/gemma-4-31b-it","object":"model","created":1778777629,"type":"chat","running":false,"display_name":"Pearl-ai Gemma-4-31B-it-pearl","organization":"pearl.ai","link":"https://huggingface.co/pearl-ai/Gemma-4-31B-it-pearl","context_length":262144,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.27999999999999997,"output":0.86,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"openai/gpt-oss-120b","uuid":"endpoint-cf361a3e-47d0-4dfc-851a-97098881e6a2","object":"model","created":1754414557,"type":"chat","running":false,"display_name":"OpenAI GPT-OSS 120B","organization":"OpenAI","link":"https://huggingface.co/openai/gpt-oss-120b","license":"other","context_length":131072,"config":{"chat_template":null,"stop":["<|return|>"],"bos_token":"<|startoftext|>","eos_token":"<|return|>"},"pricing":{"hourly":0,"input":0.15,"output":0.6,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"openai/gpt-oss-20b","uuid":"endpoint-f382c20a-6806-4ac2-abfb-d00d7a0b0c2b","object":"model","created":1774480577,"type":"chat","running":false,"display_name":"OpenAI GPT-OSS 20B","organization":"OpenAI","link":"https://huggingface.co/api/models/openai/gpt-oss-20b","license":"apache-2.0","context_length":131072,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.05,"output":0.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3.5-9B","uuid":"endpoint-71bb7894-08d4-4882-bb72-7c257c234513","object":"model","created":0,"type":"chat","running":false,"display_name":"Qwen3.5 9B FP8","organization":"Qwen","link":"https://huggingface.co/api/models/togethercomputer/Qwen3.5-9B-FP8-MLP","context_length":262144,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0.17,"output":0.25,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-7B-Instruct-Turbo","uuid":"endpoint-117e51c5-eec1-48b8-be1c-fe6f8ae0a5be","object":"model","created":1728671048,"type":"chat","running":false,"display_name":"Qwen2.5 7B Instruct Turbo","organization":"Qwen","link":"https://huggingface.co/Qwen/Qwen2.5-7B-Instruct","license":"Qwen","context_length":32768,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|im_end|>"],"bos_token":"<|endoftext|>","eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0.3,"output":0.3,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","object":"model","created":1733466629,"type":"chat","running":false,"display_name":"Meta Llama 3.3 70B Instruct Turbo","organization":"Meta","link":"https://huggingface.co/meta-llama/Llama-3.3-70B-Instruct","license":"Llama-3.3 (Other)","context_length":131072,"config":{"chat_template":"{{- bos_token }}\n{%- if custom_tools is defined %}\n {%- set tools = custom_tools %}\n{%- endif %}\n{%- if not tools_in_user_message is defined %}\n {%- set tools_in_user_message = true %}\n{%- endif %}\n{%- if not date_string is defined %}\n {%- set date_string = \"26 Jul 2024\" %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n{%- endif %}\n\n{#- System message + builtin tools #}\n{{- \"<|start_header_id|>system<|end_header_id|>\\n\\n\" }}\n{%- if builtin_tools is defined or tools is not none %}\n {{- \"Environment: ipython\\n\" }}\n{%- endif %}\n{%- if builtin_tools is defined %}\n {{- \"Tools: \" + builtin_tools | reject('equalto', 'code_interpreter') | join(\", \") + \"\\n\\n\"}}\n{%- endif %}\n{{- \"Cutting Knowledge Date: December 2023\\n\" }}\n{{- \"Today Date: \" + date_string + \"\\n\\n\" }}\n{%- if tools is not none and not tools_in_user_message %}\n {{- \"You have access to the following functions. To call a function, please respond with JSON for a function call.\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n{%- endif %}\n{{- system_message }}\n{{- \"<|eot_id|>\" }}\n\n{#- Custom tools are passed in a user message with some extra guidance #}\n{%- if tools_in_user_message and not tools is none %}\n {#- Extract the first user message so we can plug it in here #}\n {%- if messages | length != 0 %}\n {%- set first_user_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n {%- else %}\n {{- raise_exception(\"Cannot put tools in the first user message when there's no first user message!\") }}\n{%- endif %}\n {{- '<|start_header_id|>user<|end_header_id|>\\n\\n' -}}\n {{- \"Given the following functions, please respond with a JSON for a function call \" }}\n {{- \"with its proper arguments that best answers the given prompt.\\n\\n\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n {{- first_user_message + \"<|eot_id|>\"}}\n{%- endif %}\n\n{%- for message in messages %}\n {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}\n {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n'+ message['content'] | trim + '<|eot_id|>' }}\n {%- elif 'tool_calls' in message %}\n {%- if not message.tool_calls|length == 1 %}\n {{- raise_exception(\"This model only supports single tool-calls at once!\") }}\n {%- endif %}\n {%- set tool_call = message.tool_calls[0].function %}\n {%- if builtin_tools is defined and tool_call.name in builtin_tools %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- \"<|python_tag|>\" + tool_call.name + \".call(\" }}\n {%- for arg_name, arg_val in tool_call.arguments | items %}\n {{- arg_name + '=\"' + arg_val + '\"' }}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- endif %}\n {%- endfor %}\n {{- \")\" }}\n {%- else %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- '{\"name\": \"' + tool_call.name + '\", ' }}\n {{- '\"parameters\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- \"}\" }}\n {%- endif %}\n {%- if builtin_tools is defined %}\n {#- This means we're in ipython mode #}\n {{- \"<|eom_id|>\" }}\n {%- else %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n {{- \"<|start_header_id|>ipython<|end_header_id|>\\n\\n\" }}\n {%- if message.content is mapping or message.content is iterable %}\n {{- message.content | tojson }}\n {%- else %}\n {{- message.content }}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' }}\n{%- endif %}\n","stop":["<|eot_id|>","<|eom_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot_id|>"},"pricing":{"hourly":0,"input":1.0399999999999998,"output":1.0399999999999998,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-3n-E4B-it","uuid":"endpoint-290b90f1-cdb9-46c1-a919-9a73822375c3","object":"model","created":1750955040,"type":"chat","running":false,"display_name":"Gemma 3N E4B Instruct","organization":"Google","link":"https://huggingface.co/google/gemma-3n-E4B-it","license":"gemma","context_length":32768,"config":{"chat_template":null,"stop":["<eos>"],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0.060000000000000005,"output":0.12000000000000001,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"hexgrad/Kokoro-82M","object":"model","created":1773163054,"type":"audio","running":false,"display_name":"Kokoro 82M","organization":"Hexgrad","link":"https://huggingface.co/hexgrad/Kokoro-82M","license":"apache2","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":4,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"canopylabs/orpheus-3b-0.1-ft","object":"model","created":1755731205,"type":"audio","running":false,"display_name":"Orpheus 3B 0.1 FT","organization":"Canopy Labs","link":"https://huggingface.co/canopylabs/orpheus-3b-0.1-ft","license":"apache2","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":15,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"openai/whisper-large-v3","uuid":"endpoint-b0eaec1e-3edb-48c3-85a9-1af9b5ce09fb","object":"model","created":0,"type":"transcribe","running":false,"display_name":"Whisper large-v3","organization":"OpenAI","link":"https://huggingface.co/openai/whisper-large-v3","license":"apache2","context_length":1,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.27,"output":0.85,"base":0,"finetune":0,"image_pixel":0,"transcribe":{"price_per_minute":0.0015},"image":0,"video":0}},{"id":"black-forest-labs/FLUX.1-schnell","uuid":"endpoint-e4638297-e0d0-4be4-85d4-62449ad55023","object":"model","created":1778115148,"type":"image","running":false,"display_name":"FLUX.1 Schnell","organization":"Black Forest Labs","link":"https://huggingface.co/black-forest-labs/FLUX.1-schnell","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":{"price_per_megapixel":0.0027,"min_steps":4},"transcribe":0,"image":0,"video":0}},{"id":"black-forest-labs/FLUX.1-kontext-pro","object":"model","created":0,"type":"image","running":false,"display_name":"FLUX.1 Kontext [pro]","organization":"Black Forest Labs","context_length":0,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":{"price_per_megapixel":0.04,"min_steps":0},"transcribe":0,"image":0,"video":0}},{"id":"black-forest-labs/FLUX.1-kontext-max","object":"model","created":0,"type":"image","running":false,"display_name":"FLUX.1 Kontext [max]","organization":"Black Forest Labs","context_length":0,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":{"price_per_megapixel":0.08,"min_steps":0},"transcribe":0,"image":0,"video":0}},{"id":"black-forest-labs/FLUX.2-dev","uuid":"endpoint-268047b1-b295-4d9b-bc9f-239d375768ab","object":"model","created":1764086551,"type":"image","running":false,"display_name":"FLUX.2 [dev]","organization":"Black Forest Labs","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.0154,"example_description":"starting price per image"},"video":0}},{"id":"black-forest-labs/FLUX.2-flex","uuid":"endpoint-3d15053d-a558-487c-b0f8-068e9dfd781f","object":"model","created":1764090764,"type":"image","running":false,"display_name":"FLUX.2 [flex]","organization":"Black Forest Labs","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.03,"example_description":"per text-to-image"},"video":0}},{"id":"black-forest-labs/FLUX.2-pro","uuid":"endpoint-f6f3da91-6f41-4b38-b61c-40f60902b714","object":"model","created":1764070232,"type":"image","running":false,"display_name":"FLUX.2 [pro]","organization":"Black Forest Labs","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.03,"example_description":"per text-to-image image"},"video":0}},{"id":"black-forest-labs/FLUX.2-max","object":"model","created":0,"type":"image","running":false,"display_name":"FLUX.2 [max]","organization":"Black Forest Labs","context_length":0,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":{"price_per_megapixel":0.07,"min_steps":50},"transcribe":0,"image":0,"video":0}},{"id":"black-forest-labs/FLUX.1.1-pro","uuid":"endpoint-071376f6-db8a-44cf-9706-7ba0c9c14833","object":"model","created":0,"type":"image","running":false,"display_name":"FLUX1.1 [pro]","organization":"Black Forest Labs","link":"https://huggingface.co/black-forest-labs/FLUX.1-schnell","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":{"price_per_megapixel":0.04,"min_steps":0},"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-Guard-4-12B","uuid":"endpoint-2095a2fc-bb95-48df-b94f-f95ccb22fa93","object":"model","created":1746038486,"type":"moderation","running":false,"display_name":"Llama Guard 4 12B","organization":"Meta","link":"https://huggingface.co/meta-llama/Llama-Guard-4-12B","license":"other llama4","context_length":1048576,"config":{"chat_template":"{%- if messages | length % 2 == 0 -%}\n {%- set role = 'Agent' -%}\n{%- else -%}\n {%- set role = 'User' -%}\n{%- endif -%}\n\n{%- if categories is not defined -%}\n {%- set ns = namespace(contains_image=false) -%}\n\n {%- for message in messages -%}\n {%- for content in message['content'] | selectattr('type', 'equalto', 'image') -%}\n {%- set ns.contains_image = true -%}\n {%- endfor -%}\n {%- endfor -%}\n\n {%- if ns.contains_image -%}\n {%- set categories = {\n \"S1\": \"Violent Crimes.\",\n \"S2\": \"Non-Violent Crimes.\",\n \"S3\": \"Sex Crimes.\",\n \"S4\": \"Child Exploitation.\",\n \"S5\": \"Defamation.\",\n \"S6\": \"Specialized Advice.\",\n \"S7\": \"Privacy.\",\n \"S8\": \"Intellectual Property.\",\n \"S9\": \"Indiscriminate Weapons.\",\n \"S10\": \"Hate.\",\n \"S11\": \"Self-Harm.\",\n \"S12\": \"Sexual Content.\",\n \"S13\": \"Elections.\",\n } -%}\n {%- else -%}\n {%- set categories = {\n \"S1\": \"Violent Crimes.\",\n \"S2\": \"Non-Violent Crimes.\",\n \"S3\": \"Sex Crimes.\",\n \"S4\": \"Child Exploitation.\",\n \"S5\": \"Defamation.\",\n \"S6\": \"Specialized Advice.\",\n \"S7\": \"Privacy.\",\n \"S8\": \"Intellectual Property.\",\n \"S9\": \"Indiscriminate Weapons.\",\n \"S10\": \"Hate.\",\n \"S11\": \"Self-Harm.\",\n \"S12\": \"Sexual Content.\",\n \"S13\": \"Elections.\",\n \"S14\": \"Code Interpreter Abuse.\",\n } -%}\n {%- endif -%}\n{%- endif -%}\n\n{{ \"<|begin_of_text|><|header_start|>user<|header_end|>\\n\" }}\n{{ \"Task: Check if there is unsafe content in '\" + role + \"' messages in conversations according to our safety policy with the below categories.\\n\" }}\n{{ \"<BEGIN UNSAFE CONTENT CATEGORIES>\\n\" }}\n\n{%- for key in categories -%}\n {%- if key not in excluded_category_keys -%}\n {{ key + \": \" + categories[key] + \"\\n\" }}\n {%- endif -%}\n{%- endfor -%}\n\n{{ \"<END UNSAFE CONTENT CATEGORIES>\\n\" }}\n{{ \"<BEGIN CONVERSATION>\\n\" }}\n\n{%- for message in messages -%}\n {%- if (message['role'] == 'user') != (loop.index0 % 2 == 0) -%}\n {{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}\n {%- endif -%}\n\n {%- set content = message['content'] -%}\n\n {%- if message['role'] == 'user' -%}\n {%- set role = 'User' -%}\n {%- elif message['role'] == 'assistant' -%}\n {%- set role = 'Agent' -%}\n {%- endif -%}\n\n {#— #1 Accumulate all images for this message —#}\n {%- set ns = namespace(img_tokens='') -%}\n {%- for img in message.content | selectattr('type', 'equalto', 'image') -%}\n {%- set ns.img_tokens = ns.img_tokens + '<|image|>' -%}\n {%- endfor -%}\n\n {#— #2 Then emit all text —#}\n {%- for txt in message.content | selectattr('type','equalto','text') -%}\n {{ role + ': ' }}{{ ns.img_tokens }}{{ txt.text | trim }}\\n\\n\n\n {#— clear the buffer so only first text prints images —#}\n {%- if loop.first -%}\n {%- set ns.img_tokens = '' -%}\n {%- endif -%}\n {%- endfor -%}\n{%- endfor -%}\n\n{{ \"<END CONVERSATION>\\n\" }}\n{{ \"Provide your safety assessment for ONLY THE LAST \" + role + \" message in the above conversation:\" }}\n{{ \" - First line must read 'safe' or 'unsafe'.\" }}\n{{ \" - If unsafe, a second line must include a comma-separated list of violated categories. <|eot|><|header_start|>assistant<|header_end|>\" }}","stop":["<|eot|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot|>"},"pricing":{"hourly":0,"input":0.2,"output":0.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"intfloat/multilingual-e5-large-instruct","uuid":"endpoint-b1b563e5-5ec2-4577-9017-16b52ac5c841","object":"model","created":1745513588,"type":"embedding","running":false,"display_name":"Multilingual E5 Large Instruct","organization":"Intfloat","link":"https://huggingface.co/api/models/intfloat/multilingual-e5-large-instruct","license":"mit","context_length":514,"config":{"chat_template":null,"stop":["</s>"],"bos_token":"<s>","eos_token":"</s>"},"pricing":{"hourly":0,"input":0.02,"output":0.02,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"arize-ai/qwen-2-1.5b-instruct","uuid":"endpoint-22ce9f16-299a-47cc-b88f-c59cfb1d235e","object":"model","created":1745522693,"type":"chat","running":false,"display_name":"Arize AI Qwen 2 1.5B Instruct","organization":"Togethercomputer","link":"https://huggingface.co/api/models/togethercomputer/arize-ai-qwen-2-1.5b-instruct","context_length":32768,"config":{"chat_template":"{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n' }}{% endif %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}","stop":["<|im_end|>"],"bos_token":"<|endoftext|>","eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0.1,"output":0.1,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nvidia/parakeet-tdt-0.6b-v3","uuid":"endpoint-3fbe0c47-5c71-4f52-92fb-abaff932f05f","object":"model","created":0,"type":"transcribe","running":false,"display_name":"Nvidia Parakeet TDT 0.6B V3","organization":"Nvidia","link":"https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3","context_length":448,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":{"price_per_minute":0.0015},"image":0,"video":0}},{"id":"openai/gpt-image-1.5","uuid":"endpoint-11f45afc-3f72-41d1-b93e-902e220f4d5a","object":"model","created":1765980893,"type":"image","running":false,"display_name":"GPT Image 1.5","organization":"OpenAI","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.034,"example_description":"/opt/homebrew/bin/zsh.009 - /opt/homebrew/bin/zsh.199 per image based on quality"},"video":0}},{"id":"Wan-AI/Wan2.6-image","uuid":"endpoint-7dc7f98d-c562-4b5a-b710-c24875a6b471","object":"model","created":1769618722,"type":"image","running":false,"display_name":"Wan 2.6 Image","organization":"Wan-AI","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.03,"example_description":"per output image"},"video":0}},{"id":"google/veo-3.0-fast-audio","uuid":"endpoint-8bdb9924-b64e-4f44-ad5f-c979e578e7f4","object":"model","created":1759884907,"type":"video","running":false,"display_name":"Google Veo 3.0 Fast + Audio","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":1.2,"example_description":"1080p / 8s"}}},{"id":"vidu/vidu-q1","uuid":"endpoint-fea0b805-4d7e-45ec-8b1b-856c932f152c","object":"model","created":1759884996,"type":"video","running":false,"display_name":"Vidu Q1","organization":"Vidu","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.22,"example_description":"1080p / 5s"}}},{"id":"cartesia/sonic","object":"model","created":1773696454,"type":"audio","running":false,"display_name":"Cartesia Sonic","organization":"Cartesia","link":"https://www.cartesia.ai","context_length":0,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":65,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"ByteDance-Seed/Seedream-3.0","uuid":"endpoint-c2769196-9347-46e4-815a-9c7abf5b8d50","object":"model","created":1759884740,"type":"image","running":false,"display_name":"ByteDance Seedream 3.0","organization":"ByteDance","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.018,"example_description":"720x1280"},"video":0}},{"id":"ByteDance-Seed/Seedream-4.0","uuid":"endpoint-e27a4640-becc-4a5a-92f4-3940b7be23e8","object":"model","created":1759884757,"type":"image","running":false,"display_name":"ByteDance Seedream 4.0","organization":"ByteDance","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.03,"example_description":"720x1280"},"video":0}},{"id":"Rundiffusion/Juggernaut-Lightning-Flux","uuid":"endpoint-63c3e50f-b9eb-41e3-a3ed-7242665874e4","object":"model","created":1759884814,"type":"image","running":false,"display_name":"Juggernaut Lightning Flux by RunDiffusion","organization":"RunDiffusion","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.0017,"example_description":"720x1280"},"video":0}},{"id":"google/veo-3.0-audio","uuid":"endpoint-ced52ba5-3cb0-46a3-aa92-d7a2f59d6bd9","object":"model","created":1759884892,"type":"video","running":false,"display_name":"Google Veo 3.0 + Audio","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":3.2,"example_description":"720p / 8s"}}},{"id":"kwaivgI/kling-2.1-master","uuid":"endpoint-5e489acf-5401-4843-97b7-8a830648bd3c","object":"model","created":1759884953,"type":"video","running":false,"display_name":"Kling 2.1 Master","organization":"kwaivgI","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.924,"example_description":"1080p / 5s"}}},{"id":"ideogram/ideogram-3.0","uuid":"endpoint-3d82f587-56ba-45df-817d-854cd2117f41","object":"model","created":1759884808,"type":"image","running":false,"display_name":"Ideogram 3.0","organization":"ideogram","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.06,"example_description":"720x1280"},"video":0}},{"id":"kwaivgI/kling-2.1-pro","uuid":"endpoint-8fa3e87a-9f35-45fc-8157-8ed046498ba6","object":"model","created":1759884948,"type":"video","running":false,"display_name":"Kling 2.1 Pro","organization":"kwaivgI","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.3234,"example_description":"1080p / 5s"}}},{"id":"google/veo-2.0","uuid":"endpoint-ad40ee70-5f82-4283-b2d8-2813a2773022","object":"model","created":1759884886,"type":"video","running":false,"display_name":"Google Veo 2.0","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":2.5,"example_description":"720p / 5s"}}},{"id":"openai/sora-2","uuid":"endpoint-c4adc1b3-6ac2-491a-b4b0-e0c3b3fea40f","object":"model","created":1760480340,"type":"video","running":false,"display_name":"Sora 2","organization":"OpenAI","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.8,"example_description":"720p / 8s"}}},{"id":"kwaivgI/kling-2.1-standard","uuid":"endpoint-09e526e5-8428-4841-8242-c883b8600a8c","object":"model","created":1759884940,"type":"video","running":false,"display_name":"Kling 2.1 Standard","organization":"kwaivgI","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.1848,"example_description":"720p / 5s"}}},{"id":"google/veo-3.0-fast","uuid":"endpoint-92bc9b5a-365e-48e2-bc37-e278671310cb","object":"model","created":1759884913,"type":"video","running":false,"display_name":"Google Veo 3.0 Fast","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.8,"example_description":"1080p / 8s"}}},{"id":"google/gemini-3-pro-image","uuid":"endpoint-d2f07d30-6a03-4f98-a52d-cdc5461cf639","object":"model","created":1763662095,"type":"image","running":false,"display_name":"Gemini 3 (Nano Banana Pro)","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.134,"example_description":"1080p & 2K resolutions costs $0.134/image and 4K resolutions costs $0.24 per image"},"video":0}},{"id":"vidu/vidu-2.0","uuid":"endpoint-31518301-3076-47c8-b42f-542569955820","object":"model","created":1759885002,"type":"video","running":false,"display_name":"Vidu 2.0","organization":"Vidu","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.8,"example_description":"720p / 8s"}}},{"id":"openai/sora-2-pro","uuid":"endpoint-03b9298b-8624-4c29-8055-941df060eda4","object":"model","created":1760480692,"type":"video","running":false,"display_name":"Sora 2 Pro","organization":"OpenAI","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":3,"example_description":"1080p / 8s"}}},{"id":"pixverse/pixverse-v5","uuid":"endpoint-1588b5bc-5923-4672-be92-3199a579a18f","object":"model","created":1759884975,"type":"video","running":false,"display_name":"PixVerse v5","organization":"PixVerse","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.299,"example_description":"1080p / 5s"}}},{"id":"stabilityai/stable-diffusion-xl-base-1.0","uuid":"endpoint-5bbe64a1-3798-4ad5-bfd5-aee40eca9564","object":"model","created":1759884771,"type":"image","running":false,"display_name":"SD XL","organization":"stabilityai","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.0019,"example_description":"720x1280"},"video":0}},{"id":"ByteDance/Seedance-1.0-lite","uuid":"endpoint-5467de41-51aa-4d08-98b5-8cd34dc19906","object":"model","created":1759884873,"type":"video","running":false,"display_name":"ByteDance Seedance 1.0 Lite","organization":"ByteDance","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.143,"example_description":"720p / 5s"}}},{"id":"cartesia/sonic-3","object":"model","created":1774464715,"type":"audio","running":false,"display_name":"Cartesia Sonic 3","organization":"Cartesia","link":"https://www.cartesia.ai","context_length":448,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":65,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"ByteDance/Seedance-1.0-pro","uuid":"endpoint-9419195a-e048-4865-bf8b-89343a3e9b84","object":"model","created":1759884879,"type":"video","running":false,"display_name":"ByteDance Seedance 1.0 Pro","organization":"ByteDance","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.565,"example_description":"720p / 5s"}}},{"id":"google/imagen-4.0-fast","uuid":"endpoint-3ba3bc6f-fe2b-4446-9ec0-71e82ac3348d","object":"model","created":1759884793,"type":"image","running":false,"display_name":"Google Imagen 4.0 Fast","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.02,"example_description":"720x1280"},"video":0}},{"id":"google/flash-image-2.5","uuid":"endpoint-e9655a27-b014-43b4-bff1-b343a0206e07","object":"model","created":1759884801,"type":"image","running":false,"display_name":"Gemini Flash Image 2.5 (Nano Banana)","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.039,"example_description":"720x1280"},"video":0}},{"id":"minimax/hailuo-02","uuid":"endpoint-68520084-c967-42b6-bff4-a63b660bd0cf","object":"model","created":1759884967,"type":"video","running":false,"display_name":"MiniMax Hailuo 02","organization":"MiniMaxAI","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.56,"example_description":"768p / 10s"}}},{"id":"google/imagen-4.0-ultra","uuid":"endpoint-40d2690e-57a7-4e89-987d-2a3e44c1302d","object":"model","created":1759884786,"type":"image","running":false,"display_name":"Google Imagen 4.0 Ultra","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.06,"example_description":"720x1280"},"video":0}},{"id":"google/imagen-4.0-preview","uuid":"endpoint-b6561013-bc17-4aa3-9a76-89174973977b","object":"model","created":1759884778,"type":"image","running":false,"display_name":"Google Imagen 4.0 Preview","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.04,"example_description":"720x1280"},"video":0}},{"id":"RunDiffusion/Juggernaut-pro-flux","uuid":"endpoint-1f51e977-a298-40aa-a0c6-d5865c37bc38","object":"model","created":1759884821,"type":"image","running":false,"display_name":"Juggernaut Pro Flux by RunDiffusion 1.0.0","organization":"RunDiffusion","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.0049,"example_description":"720x1280"},"video":0}},{"id":"Qwen/Qwen-Image","uuid":"endpoint-d4d29f48-ce86-4533-863a-23e9245f6570","object":"model","created":1759884857,"type":"image","running":false,"display_name":"Qwen Image","organization":"Qwen","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.0058,"example_description":"720x1280"},"video":0}},{"id":"google/veo-3.0","uuid":"endpoint-test-duplicate-001","object":"model","created":1778817876,"type":"video","running":false,"display_name":"Duplicate Test","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.08,"example_description":"test"}}},{"id":"kwaivgI/kling-1.6-standard","uuid":"endpoint-9f6794ed-52f7-414f-8974-d3b1ffb8702f","object":"model","created":1759884920,"type":"video","running":false,"display_name":"Kling 1.6 Standard","organization":"kwaivgI","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.185,"example_description":"720p / 5s"}}},{"id":"minimax/video-01-director","uuid":"endpoint-d5929bff-e81e-4bab-8b20-17cb99936a68","object":"model","created":1759884960,"type":"video","running":false,"display_name":"MiniMax 01 Director","organization":"MiniMaxAI","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{}}},{"id":"cartesia/sonic-2","object":"model","created":1774464715,"type":"audio","running":false,"display_name":"Cartesia Sonic 2","organization":"Cartesia","context_length":448,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":65,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"pixverse/pixverse-v5.6","uuid":"endpoint-5e8550be-7faf-411e-81ee-92773d4a1304","object":"model","created":1769621066,"type":"video","running":false,"display_name":"PixVerse v5.6","organization":"PixVerse","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.1326,"example_description":"$0.1031 - $0.221 per 5 sec video without audio. Audio is an additional $0.1326"}}},{"id":"Qwen/Qwen-Image-2.0-Pro","uuid":"endpoint-ea16bed3-cfd1-477b-ad95-1ac0f28bfec2","object":"model","created":1773318281,"type":"image","running":false,"display_name":"Qwen Image 2.0 Pro","organization":"Qwen","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.075,"example_description":"per image"},"video":0}},{"id":"google/flash-image-3.1","uuid":"endpoint-f0e10a8e-9250-4bcc-b1a9-ae34f3ecdaec","object":"model","created":1772535344,"type":"image","running":false,"display_name":"Gemini 3.1 Flash Image (Nano Banana 2)","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.04657,"example_description":"0.04657 for 512x512. For every input image used, it's an additional $0.00028. When using grounded search, $0.014 will be added on top."},"video":0}},{"id":"Qwen/Qwen-Image-2.0","uuid":"endpoint-9bd5c294-1a2e-4ffb-bf28-482e01eee56f","object":"model","created":1773251084,"type":"image","running":false,"display_name":"Qwen Image 2.0","organization":"Qwen","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.035,"example_description":"per image"},"video":0}},{"id":"Wan-AI/wan2.7-t2v","uuid":"endpoint-4e24da5f-2274-44ad-8bf3-36dc47a8114a","object":"model","created":1775245808,"type":"video","running":false,"display_name":"Wan 2.7 T2V","organization":"Wan-AI","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.1,"example_description":"per 5 seconds of video"}}},{"id":"Wan-AI/wan2.7-i2v","uuid":"endpoint-47e29650-3293-4538-bc90-fa3f07b159dc","object":"model","created":1775254675,"type":"video","running":false,"display_name":"Wan 2.7 I2V","organization":"Wan-AI","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.1,"example_description":"per 5 seconds of video"}}},{"id":"Wan-AI/wan2.7-r2v","uuid":"endpoint-819be224-66c1-424d-8d79-7d527bcf278c","object":"model","created":1775257231,"type":"video","running":false,"display_name":"Wan 2.7 R2V","organization":"Wan-AI","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.1,"example_description":"per 5 seconds of video"}}},{"id":"vidu/vidu-q3","uuid":"endpoint-002dc245-03bd-4e03-bdb0-e3fd55e25aba","object":"model","created":1776175177,"type":"video","running":false,"display_name":"Vidu Q3","organization":"Vidu","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.0975,"example_description":"0.0455 - 0.1040 per second depending on resolution"}}},{"id":"vidu/vidu-q3-turbo","uuid":"endpoint-1381491a-63c3-4513-abdc-15005e5e85a3","object":"model","created":1776175206,"type":"video","running":false,"display_name":"Vidu Q3 Turbo","organization":"Vidu","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.195,"example_description":"0.13 - 0.26 per second depending on resolution"}}},{"id":"google/veo-3.1-test-debug","uuid":"endpoint-test-debug-001","object":"model","created":0,"type":"video","running":false,"display_name":"Veo 3.1 Debug Test","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.08,"example_description":"test"}}},{"id":"deepcogito/cogito-v2-1-671b","uuid":"endpoint-057fe829-a0cc-491a-a71e-1819ee82d3d8","object":"model","created":0,"type":"chat","running":false,"display_name":"Cogito v2.1 671B","organization":"Deepcogito","link":"https://huggingface.co/api/models/togethercomputer/cogito-671b-v2.1-exp-chkp-2","context_length":163840,"config":{"chat_template":null,"stop":[],"bos_token":"<|begin▁of▁sentence|>","eos_token":"<|end▁of▁sentence|>"},"pricing":{"hourly":0,"input":1.25,"output":1.25,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"pixverse/pixverse-v6","uuid":"endpoint-9782553a-d1f6-4641-b70f-cf3664e95a8a","object":"model","created":1776953730,"type":"video","running":false,"display_name":"PixVerse v6","organization":"PixVerse","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.09,"example_description":"0.090/s at 1080p without audio. 0.115/s with audio"}}},{"id":"ByteDance/Seedance-2.0","uuid":"endpoint-1d17df31-ca97-4848-869e-be0f68b096a7","object":"model","created":1776942761,"type":"video","running":false,"display_name":"ByteDance Seedance 2.0","organization":"ByteDance","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.16,"example_description":"Text/Image to Video at 720P: $0.16/sec & Video-to-Video at 720P: from $0.28/sec"}}},{"id":"Qwen/Qwen3.6-Plus","uuid":"endpoint-78f9d01e-0c22-47dc-b2b2-6aa0e2f3570c-v2","object":"model","created":1777340375,"type":"chat","running":false,"display_name":"Qwen3.6 Plus","organization":"Qwen","context_length":1000000,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.5,"output":3,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"HappyHorse/HappyHorse-1.0-T2V","object":"model","created":1777283507,"type":"video","running":false,"display_name":"","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.1,"example_description":"per 5 seconds of video"}}},{"id":"alibaba/happyhorse-1.0-t2v","uuid":"endpoint-e65e99d1-97f1-443f-94e2-dd139e102897","object":"model","created":1777714549,"type":"video","running":false,"display_name":"HappyHorse 1.0 T2V","organization":"Alibaba","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.24,"example_description":"Text to Video at 720P: $0.14/sec and $0.24/sec at 1080p"}}},{"id":"alibaba/happyhorse-1.0-r2v","uuid":"endpoint-320deb45-9a43-46b2-8393-32b466ce9bce","object":"model","created":1777717813,"type":"video","running":false,"display_name":"HappyHorse 1.0 R2V","organization":"Alibaba","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.24,"example_description":"Text/Image to Video at 720P: $0.14/sec and $0.24/sec at 1080p"}}},{"id":"alibaba/happyhorse-1.0-i2v","uuid":"endpoint-0fdc51d3-6dd3-4f2c-bce8-418ab47b36ea","object":"model","created":1777717851,"type":"video","running":false,"display_name":"HappyHorse 1.0 I2V","organization":"Alibaba","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.24,"example_description":"Text/Image to Video at 720P: $0.14/sec and $0.24/sec at 1080p"}}},{"id":"ByteDance/Seedream-5.0-lite","uuid":"endpoint-90244fc5-096f-4bca-b5f2-79664175e2c4","object":"model","created":1778252567,"type":"image","running":false,"display_name":"ByteDance Seedream 5.0 Lite","organization":"ByteDance","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.035,"example_description":"Pricing is $0.035 for both 2K & 3K outputs"},"video":0}},{"id":"google/veo-3.1","uuid":"endpoint-b0a69f31-f14c-4825-9c01-cf20b5aeece9","object":"model","created":1776790993,"type":"video","running":false,"display_name":"Veo 3.1","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.08,"example_description":"0.08/ per 4s at 720p without audio. .60/s with audio"}}},{"id":"google/veo-3.1-lite","uuid":"endpoint-0a06c93a-68ce-48f6-bfbf-d9a0337a073b","object":"model","created":1778615460,"type":"video","running":false,"display_name":"Veo 3.1 Lite","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.05,"example_description":"0.05/s at 1080p without audio. 0.80/s with audio."}}},{"id":"nvidia/nemotron-3.5-asr-streaming-0.6b","uuid":"endpoint-cd9d043d-92ac-4320-af6a-2638e934861a","object":"model","created":0,"type":"transcribe","running":false,"display_name":"Nvidia Nemotron 3.5 ASR Streaming 0.6B","organization":"Nvidia","link":"https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b","license":"apache-2.0","context_length":448,"config":{"chat_template":null,"stop":[],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":{"price_per_minute":0.0015},"image":0,"video":0}},{"id":"nvidia/nemotron-3-asr-streaming-0.6b","uuid":"endpoint-614e0569-b81e-4234-b08e-976d81913415","object":"model","created":0,"type":"transcribe","running":false,"display_name":"Nvidia Nemotron 3 ASR Streaming 0.6B","organization":"Nvidia","link":"https://huggingface.co/nvidia/nemotron-speech-streaming-en-0.6b","license":"apache-2.0","context_length":448,"config":{"chat_template":null,"stop":[],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0.45,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":{"price_per_minute":0.0015},"image":0,"video":0}},{"id":"ideogram/ideogram-4.0","uuid":"endpoint-0304633d-06c9-4d89-a093-eaf52cc62aae","object":"model","created":1780584367,"type":"image","running":false,"display_name":"Ideogram 4.0","organization":"ideogram","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.06,"example_description":"per image price ranging from 0.03 - 0.10 per based on size and quality"},"video":0}},{"id":"openai/gpt-image-2","uuid":"endpoint-3a75d1cd-a76f-4277-b7f6-a6c62d05901b","object":"model","created":1776938977,"type":"image","running":false,"display_name":"GPT Image 2","organization":"OpenAI","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.053,"example_description":"0.006 - 0.165 per image based on size and quality"},"video":0}},{"id":"Qwen/Qwen3.7-Plus","uuid":"endpoint-ddc9fb60-6793-469c-ab42-a6db76013f67","object":"model","created":1781532368,"type":"chat","running":false,"display_name":"Qwen3.7 Plus","organization":"Qwen","context_length":1000000,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.32,"output":1.28,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"alibaba/happyhorse-1.1-t2v","uuid":"endpoint-bae418aa-f3a0-42b7-bf16-25639335bee5","object":"model","created":1782485613,"type":"video","running":false,"display_name":"HappyHorse 1.1 T2V","organization":"Alibaba","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.14,"example_description":"Text to Video at 720P: $0.14/sec and $0.18/sec at 1080p"}}},{"id":"alibaba/happyhorse-1.1-i2v","uuid":"endpoint-1d482f72-1593-4648-949f-09481c618521","object":"model","created":1782485593,"type":"video","running":false,"display_name":"HappyHorse 1.1 I2V","organization":"Alibaba","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.14,"example_description":"Text/Image to Video at 720P: $0.14/sec and $0.18/sec at 1080p"}}},{"id":"alibaba/happyhorse-1.1-r2v","uuid":"endpoint-87cf37d3-6892-40ce-b1ff-56d5aeb80c44","object":"model","created":1782485628,"type":"video","running":false,"display_name":"HappyHorse 1.1 R2V","organization":"Alibaba","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":{"example_price":0.14,"example_description":"Text/Image to Video at 720P: $0.14/sec and $0.18/sec at 1080p"}}},{"id":"google/flash-image-3.1-lite","uuid":"endpoint-acb856f2-4ab1-440e-ba58-2bd6cea1b536","object":"model","created":1782846618,"type":"image","running":false,"display_name":"Gemini 3.1 Flash-Lite Image (Nano Banana 2 Lite)","organization":"Google","config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":{"example_price":0.069,"example_description":"price per image"},"video":0}},{"id":"LiquidAI/LFM2.5-8B-A1B","uuid":"endpoint-d3cf7423-c5a2-4811-bcdc-85c6cacd9a0f","object":"model","created":0,"type":"chat","running":false,"display_name":"LFM2.5-8B-A1B","organization":"LiquidAI","link":"https://huggingface.co/api/models/LiquidAI/LFM2.5-8B-A1B","license":"other lfm1.0","context_length":128000,"config":{"chat_template":"{{- bos_token -}}\n{%- set preserve_thinking = preserve_thinking | default(false) -%}\n\n{%- macro format_arg_value(arg_value) -%}\n {%- if arg_value is string -%}\n {{- \"'\" + arg_value + \"'\" -}}\n {%- elif arg_value is mapping -%}\n {{- arg_value | tojson -}}\n {%- else -%}\n {{- arg_value | string -}}\n {%- endif -%}\n{%- endmacro -%}\n\n{%- macro parse_content(content) -%}\n {%- if content is string -%}\n {{- content -}}\n {%- else -%}\n {%- set _ns = namespace(result=\"\") -%}\n {%- for item in content -%}\n {%- if item[\"type\"] == \"image\" -%}\n {%- set _ns.result = _ns.result + \"<image>\" -%}\n {%- elif item[\"type\"] == \"text\" -%}\n {%- set _ns.result = _ns.result + item[\"text\"] -%}\n {%- else -%}\n {%- set _ns.result = _ns.result + item | tojson -%}\n {%- endif -%}\n {%- endfor -%}\n {{- _ns.result -}}\n {%- endif -%}\n{%- endmacro -%}\n\n{%- macro render_tool_calls(tool_calls) -%}\n {%- set tool_calls_ns = namespace(tool_calls=[]) -%}\n {%- for tool_call in tool_calls -%}\n {%- set func_name = tool_call[\"function\"][\"name\"] -%}\n {%- set func_args = tool_call[\"function\"][\"arguments\"] -%}\n {%- set args_ns = namespace(arg_strings=[]) -%}\n {%- for arg_name, arg_value in func_args.items() -%}\n {%- set args_ns.arg_strings = args_ns.arg_strings + [arg_name + \"=\" + format_arg_value(arg_value)] -%}\n {%- endfor -%}\n {%- set tool_calls_ns.tool_calls = tool_calls_ns.tool_calls + [func_name + \"(\" + (args_ns.arg_strings | join(\", \")) + \")\"] -%}\n {%- endfor -%}\n {{- \"<|tool_call_start|>[\" + (tool_calls_ns.tool_calls | join(\", \")) + \"]<|tool_call_end|>\" -}}\n{%- endmacro -%}\n\n{%- set ns = namespace(system_prompt=\"\", last_user_index=-1) -%}\n{%- if messages[0][\"role\"] == \"system\" -%}\n {%- if messages[0].get(\"content\") -%}\n {%- set ns.system_prompt = parse_content(messages[0][\"content\"]) -%}\n {%- endif -%}\n {%- set messages = messages[1:] -%}\n{%- endif -%}\n{%- if tools -%}\n {%- set ns.system_prompt = ns.system_prompt + (\"\\n\" if ns.system_prompt else \"\") + \"List of tools: [\" -%}\n {%- for tool in tools -%}\n {%- if tool is not string -%}\n {%- set tool = tool | tojson -%}\n {%- endif -%}\n {%- set ns.system_prompt = ns.system_prompt + tool -%}\n {%- if not loop.last -%}\n {%- set ns.system_prompt = ns.system_prompt + \", \" -%}\n {%- endif -%}\n {%- endfor -%}\n {%- set ns.system_prompt = ns.system_prompt + \"]\" -%}\n{%- endif -%}\n{%- if ns.system_prompt -%}\n {{- \"<|im_start|>system\\n\" + ns.system_prompt + \"<|im_end|>\\n\" -}}\n{%- endif -%}\n{%- for message in messages -%}\n {%- if message[\"role\"] == \"user\" -%}\n {%- set ns.last_user_index = loop.index0 -%}\n {%- endif -%}\n{%- endfor -%}\n{%- for message in messages -%}\n {{- \"<|im_start|>\" + message.role + \"\\n\" -}}\n {%- if message.role == \"assistant\" -%}\n {%- generation -%}\n {%- if message.thinking is defined and (preserve_thinking or loop.index0 > ns.last_user_index) -%}\n {{- \"<think>\" + message.thinking + \"</think>\" -}}\n {%- endif -%}\n {%- set _cfm_tag = \"CONTINUE_FINAL_MESSAGE_TAG \" -%}\n {%- set _has_cfm = false -%}\n {%- if message.content is defined -%}\n {%- set content = parse_content(message.content) -%}\n {%- if not (preserve_thinking or loop.index0 > ns.last_user_index) -%}\n {%- if \"</think>\" in content -%}\n {%- set content = content.split(\"</think>\")[-1] | trim -%}\n {%- endif -%}\n {%- endif -%}\n {%- if message.tool_calls is defined and content.endswith(_cfm_tag) -%}\n {%- set _has_cfm = true -%}\n {%- set _trunc_len = (content | length) - (_cfm_tag | length) -%}\n {{- content[:_trunc_len] -}}\n {%- else -%}\n {{- content -}}\n {%- endif -%}\n {%- endif -%}\n {%- if message.tool_calls is defined -%}\n {{- render_tool_calls(message.tool_calls) -}}\n {%- endif -%}\n {%- if _has_cfm -%}\n {{- _cfm_tag -}}\n {%- endif -%}\n {{- \"<|im_end|>\\n\" -}}\n {%- endgeneration -%}\n {%- else %}\n {%- if message.get(\"content\") -%}\n {{- parse_content(message[\"content\"]) -}}\n {%- endif -%}\n {{- \"<|im_end|>\\n\" -}}\n {%- endif %}\n{%- endfor -%}\n{%- if add_generation_prompt -%}\n {{- \"<|im_start|>assistant\\n\" -}}\n{%- endif -%}","stop":["<|im_end|>"],"bos_token":"<|startoftext|>","eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0.030000000000000002,"output":0.12000000000000001,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"de-2-0-dev/agi-smoke","object":"model","created":1785392780,"type":"chat","running":false,"display_name":"AGI Smoke Test","context_length":32768,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"MiniMaxAI/MiniMax-M2.7","uuid":"endpoint-f657dadd-0b1a-4671-b00c-e7a14221433d","object":"model","created":1784055909,"type":"chat","running":false,"display_name":"MiniMax M2.7 FP4","organization":"MiniMaxAI","link":"https://huggingface.co/api/models/togethercomputer/M2.5plus-fp4","context_length":196608,"config":{"chat_template":null,"stop":["[e~["],"bos_token":"]~!b[","eos_token":"[e~["},"pricing":{"hourly":0,"input":0.3,"output":1.2,"base":0,"finetune":0,"cached_input":0.060000000000000005,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"mistralai/Mistral-7B-Instruct-v0.1","uuid":"endpoint-0830fdf1-35d2-4722-9b1f-b799f85f9997","object":"model","created":1695860851,"type":"chat","running":false,"display_name":"Mistral (7B) Instruct v0.1","organization":"mistralai","link":"https://huggingface.co/api/models/mistralai/Mistral-7B-Instruct-v0.1","license":"apache-2.0","context_length":32768,"config":{"chat_template":"{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% else %}{% set loop_messages = messages %}{% set system_message = false %}{% endif %}{% for message in loop_messages %}{% if loop.index0 == 0 and system_message != false %}{% set content = '<<SYS>>\\n' + system_message + '\\n<</SYS>>\\n\\n' + message['content'] %}{% else %}{% set content = message['content'] %}{% endif %}{% if message['role'] == 'user' or message['role'] == 'tool' %}{{ bos_token + '[INST] ' + content + ' [/INST]' }}{% elif message['role'] == 'system' %}{{ '<<SYS>>\\n' + content + '\\n<</SYS>>\\n\\n' }}{% elif message['role'] == 'assistant' %}{{ ' ' + content + ' ' + eos_token }}{% endif %}{% endfor %}","stop":["</s>"],"bos_token":"<s>","eos_token":"</s>"},"pricing":{"hourly":0,"input":0.2,"output":0.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"mistralai/Mixtral-8x7B-Instruct-v0.1","uuid":"endpoint-14e525c7-aa72-46f4-981d-1bdbf2f83dde","object":"model","created":1702342468,"type":"chat","running":false,"display_name":"Mixtral-8x7B Instruct v0.1","organization":"mistralai","link":"https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1","license":"apache-2.0","context_length":32768,"config":{"chat_template":"{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% else %}{% set loop_messages = messages %}{% set system_message = false %}{% endif %}{% for message in loop_messages %}{% if loop.index0 == 0 and system_message != false %}{% set content = '<<SYS>>\\n' + system_message + '\\n<</SYS>>\\n\\n' + message['content'] %}{% else %}{% set content = message['content'] %}{% endif %}{% if message['role'] == 'user' or message['role'] == 'tool' %}{{ bos_token + '[INST] ' + content + ' [/INST]' }}{% elif message['role'] == 'system' %}{{ '<<SYS>>\\n' + content + '\\n<</SYS>>\\n\\n' }}{% elif message['role'] == 'assistant' %}{{ ' ' + content + ' ' + eos_token }}{% endif %}{% endfor %}","stop":["[/INST]","</s>"],"bos_token":"<s>","eos_token":"</s>"},"pricing":{"hourly":0,"input":0.6,"output":0.6,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO","uuid":"endpoint-780669da-db9b-45f4-8d61-bda27dea3192","object":"model","created":1705292440,"type":"chat","running":false,"display_name":"Nous Hermes 2 Mixtral 8X7B Dpo","organization":"Nousresearch","link":"https://huggingface.co/api/models/NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO","license":"apache-2.0","context_length":32768,"config":{"chat_template":"{{bos_token}}{% for message in messages %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}","stop":["<|im_end|>"],"bos_token":"<s>","eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0.6,"output":0.6,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepseek-ai/deepseek-coder-33b-instruct","uuid":"model-24647d1e-9967-4aa9-bc8c-24820782d7c0","object":"model","created":1707283326,"type":"chat","running":false,"display_name":"Deepseek Coder 33B Instruct","organization":"Deepseek","link":"https://huggingface.co/api/models/deepseek-ai/deepseek-coder-33b-instruct","license":"other deepseek","context_length":16384,"config":{"chat_template":"{% if not add_generation_prompt is defined %}\n{% set add_generation_prompt = false %}\n{% endif %}\n{%- set found=false -%}\n{%- for message in messages -%}\n {%- if message['role'] == 'system' -%}\n {%- set found = true -%}\n {%- endif -%}\n{%- endfor -%}\n{{bos_token}}{%- if not found -%}\n{{'You are an AI programming assistant, utilizing the Deepseek Coder model, developed by Deepseek Company, and you only answer questions related to computer science. For politically sensitive questions, security and privacy issues, and other non-computer science questions, you will refuse to answer\\n'}}\n{%- endif %}\n{%- for message in messages %}\n {%- if message['role'] == 'system' %}\n{{ message['content'] }}\n {%- else %}\n {%- if message['role'] == 'user' %}\n{{'### Instruction:\\n' + message['content'] + '\\n'}}\n {%- else %}\n{{'### Response:\\n' + message['content'] + '\\n<|EOT|>\\n'}}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{% if add_generation_prompt %}\n{{'### Response:'}}\n{% endif %}","stop":["<|EOT|>"],"bos_token":"<|begin▁of▁sentence|>","eos_token":"<|EOT|>"},"pricing":{"hourly":0,"input":0.8,"output":0.8,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-3-8b-chat-hf","uuid":"endpoint-30e7275a-6fee-42aa-989c-86b4354a3804","object":"model","created":1713420479,"type":"chat","running":false,"display_name":"Meta Llama 3 8B Instruct Reference","organization":"Meta","link":"https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct","license":"Llama-3 (Other)","context_length":8192,"config":{"chat_template":"{% set loop_messages = messages %}{% for message in loop_messages %}{% set content = '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' %}{% if loop.index0 == 0 %}{% set content = bos_token + content %}{% endif %}{{ content }}{% endfor %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\n' }}","stop":["<|eot_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|end_of_text|>"},"pricing":{"hourly":0,"input":0.2,"output":0.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Meta-Llama-3-8B-Instruct","uuid":"model-f2de14d8-39ce-4cf7-a58a-1b3d74841874","object":"model","created":1713420479,"type":"chat","running":false,"display_name":"Meta Llama 3 8B Instruct","organization":"Meta","link":"https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct","license":"Llama-3 (Other)","context_length":8192,"config":{"chat_template":"{% set loop_messages = messages %}{% for message in loop_messages %}{% set content = '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' %}{% if loop.index0 == 0 %}{% set content = bos_token + content %}{% endif %}{{ content }}{% endfor %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\n' }}","stop":["<|eot_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|end_of_text|>"},"pricing":{"hourly":0,"input":0.2,"output":0.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"mistralai/Mistral-7B-Instruct-v0.3","uuid":"endpoint-0830fdf1-35d2-4722-9b1f-b799f85f9997","object":"model","created":1716406261,"type":"chat","running":false,"display_name":"Mistral (7B) Instruct v0.3","organization":"mistralai","link":"https://huggingface.co/api/models/mistralai/Mistral-7B-Instruct-v0.3","license":"apache-2.0","context_length":32768,"config":{"chat_template":"{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% else %}{% set loop_messages = messages %}{% set system_message = false %}{% endif %}{% for message in loop_messages %}{% if loop.index0 == 0 and system_message != false %}{% set content = '<<SYS>>\\n' + system_message + '\\n<</SYS>>\\n\\n' + message['content'] %}{% else %}{% set content = message['content'] %}{% endif %}{% if message['role'] == 'user' or message['role'] == 'tool' %}{{ bos_token + '[INST] ' + content + ' [/INST]' }}{% elif message['role'] == 'system' %}{{ '<<SYS>>\\n' + content + '\\n<</SYS>>\\n\\n' }}{% elif message['role'] == 'assistant' %}{{ ' ' + content + ' ' + eos_token }}{% endif %}{% endfor %}","stop":["</s>"],"bos_token":"<s>","eos_token":"</s>"},"pricing":{"hourly":0,"input":0.2,"output":0.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-2-27b-it","uuid":"endpoint-aeccb188-d897-4fc6-aaf4-84d1bff38f8a","object":"model","created":1708648606,"type":"chat","running":false,"display_name":"Gemma-2 Instruct (27B)","organization":"Google","link":"https://huggingface.co/google/gemma-2b-it","license":"gemma-terms-of-use","context_length":8192,"config":{"chat_template":"{{ bos_token }}{% for message in messages %}{% if (message['role'] == 'assistant') %}{% set role = 'model' %}{% else %}{% set role = message['role'] %}{% endif %}{{ '<start_of_turn>' + role + '\n' + message['content'] | trim + '<end_of_turn>\n' }}{% endfor %}{% if add_generation_prompt %}{{'<start_of_turn>model\n'}}{% endif %}","stop":["<eos>","<end_of_turn>"],"bos_token":"<bos>","eos_token":"<end_of_turn>"},"pricing":{"hourly":0,"input":0.8,"output":0.8,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Meta-Llama-3-70B-Instruct-Turbo","uuid":"endpoint-4626a9aa-4d0a-4226-b0e5-9e6874f1a256","object":"model","created":0,"type":"chat","running":false,"display_name":"Meta Llama 3 70B Instruct Turbo","organization":"Meta","link":"https://huggingface.co/meta-llama/Meta-Llama-3-70B-Instruct","license":"Llama-3 (Other)","context_length":8192,"config":{"chat_template":"{% set loop_messages = messages %}{% for message in loop_messages %}{% set content = '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' %}{% if loop.index0 == 0 %}{% set content = bos_token + content %}{% endif %}{{ content }}{% endfor %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\n' }}","stop":["<|eot_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|end_of_text|>"},"pricing":{"hourly":0,"input":0.88,"output":0.88,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Meta-Llama-3.1-8B","uuid":"model-59f15f56-68d2-4233-b92d-36f67253c408","object":"model","created":1713420479,"type":"language","running":false,"display_name":"Meta Llama 3.1 8B","organization":"Meta","link":"https://huggingface.co/meta-llama/Meta-Llama-3.1-8B","license":"Llama-3.1 (Other)","context_length":16384,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.2,"output":0.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo","uuid":"endpoint-8dc05faf-a910-40bb-8163-9f4e0c9008f1","object":"model","created":1721603683,"type":"chat","running":false,"display_name":"Meta Llama 3.1 70B Instruct Turbo","organization":"Meta","link":"https://huggingface.co/meta-llama/Meta-Llama-3.1-70B-Instruct","license":"Llama-3.1 (Other)","context_length":131072,"config":{"chat_template":"{{- bos_token }}\n{%- if custom_tools is defined %}\n {%- set tools = custom_tools %}\n{%- endif %}\n{%- if not tools_in_user_message is defined %}\n {%- set tools_in_user_message = true %}\n{%- endif %}\n{%- if not date_string is defined %}\n {%- set date_string = \"26 Jul 2024\" %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n{%- endif %}\n\n{#- System message + builtin tools #}\n{{- \"<|start_header_id|>system<|end_header_id|>\\n\\n\" }}\n{%- if builtin_tools is defined or tools is not none %}\n {{- \"Environment: ipython\\n\" }}\n{%- endif %}\n{%- if builtin_tools is defined %}\n {{- \"Tools: \" + builtin_tools | reject('equalto', 'code_interpreter') | join(\", \") + \"\\n\\n\"}}\n{%- endif %}\n{{- \"Cutting Knowledge Date: December 2023\\n\" }}\n{{- \"Today Date: \" + date_string + \"\\n\\n\" }}\n{%- if tools is not none and not tools_in_user_message %}\n {{- \"You have access to the following functions. To call a function, please respond with JSON for a function call.\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n{%- endif %}\n{{- system_message }}\n{{- \"<|eot_id|>\" }}\n\n{#- Custom tools are passed in a user message with some extra guidance #}\n{%- if tools_in_user_message and not tools is none %}\n {#- Extract the first user message so we can plug it in here #}\n {%- if messages | length != 0 %}\n {%- set first_user_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n {%- else %}\n {{- raise_exception(\"Cannot put tools in the first user message when there's no first user message!\") }}\n{%- endif %}\n {{- '<|start_header_id|>user<|end_header_id|>\\n\\n' -}}\n {{- \"Given the following functions, please respond with a JSON for a function call \" }}\n {{- \"with its proper arguments that best answers the given prompt.\\n\\n\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n {{- first_user_message + \"<|eot_id|>\"}}\n{%- endif %}\n\n{%- for message in messages %}\n {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}\n {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n'+ message['content'] | trim + '<|eot_id|>' }}\n {%- elif 'tool_calls' in message %}\n {%- if not message.tool_calls|length == 1 %}\n {{- raise_exception(\"This model only supports single tool-calls at once!\") }}\n {%- endif %}\n {%- set tool_call = message.tool_calls[0].function %}\n {%- if builtin_tools is defined and tool_call.name in builtin_tools %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- \"<|python_tag|>\" + tool_call.name + \".call(\" }}\n {%- for arg_name, arg_val in tool_call.arguments | items %}\n {{- arg_name + '=\"' + arg_val + '\"' }}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- endif %}\n {%- endfor %}\n {{- \")\" }}\n {%- else %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- '{\"name\": \"' + tool_call.name + '\", ' }}\n {{- '\"parameters\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- \"}\" }}\n {%- endif %}\n {%- if builtin_tools is defined %}\n {#- This means we're in ipython mode #}\n {{- \"<|eom_id|>\" }}\n {%- else %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n {{- \"<|start_header_id|>ipython<|end_header_id|>\\n\\n\" }}\n {%- if message.content is mapping or message.content is iterable %}\n {{- message.content | tojson }}\n {%- else %}\n {{- message.content }}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' }}\n{%- endif %}\n","stop":["<|eot_id|>","<|eom_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot_id|>"},"pricing":{"hourly":0,"input":0.88,"output":0.88,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2-1.5B-Instruct","uuid":"model-c4aa2f31-8e66-43a5-9bfe-db7a8bc68f78","object":"model","created":1717792561,"type":"chat","running":false,"display_name":"Qwen 2 Instruct (1.5B)","organization":"Qwen","link":"https://huggingface.co/Qwen/Qwen2-72B-Instruct","license":"tongyi-qianwen","context_length":32768,"config":{"chat_template":"{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n' }}{% endif %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}","stop":["<|im_start|>","<|im_end|>"],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.02,"output":0.02,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2-72B","uuid":"model-35a8967f-dca1-4a5e-bd87-d6cf962b3ffc","object":"model","created":1717792561,"type":"language","running":false,"display_name":"Qwen 2 (72B)","organization":"Qwen","link":"https://huggingface.co/Qwen/Qwen2-7B","license":"tongyi-qianwen","context_length":32768,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2-7B","uuid":"model-ac6b42df-f63d-46a5-baef-ce57bb8624df","object":"model","created":1717792561,"type":"language","running":false,"display_name":"Qwen 2 (7B)","organization":"Qwen","link":"https://huggingface.co/Qwen/Qwen2-7B","license":"tongyi-qianwen","context_length":32768,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2-1.5B","uuid":"model-165a6e58-bcc0-466d-bed1-c8ed0a8cfb35","object":"model","created":1717792561,"type":"language","running":false,"display_name":"Qwen 2 (1.5B)","organization":"Qwen","link":"https://huggingface.co/Qwen/Qwen2-1.5B","license":"tongyi-qianwen","context_length":32768,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Salesforce/Llama-Rank-V1","uuid":"endpoint-ec76d175-b4d5-430a-9b2b-d9a7d45755ec","object":"model","created":1723745254,"type":"rerank","running":false,"display_name":"Salesforce Llama Rank V1 (8B)","organization":"salesforce","license":"llama3","context_length":8192,"config":{"chat_template":"{% set loop_messages = messages %}{% for message in loop_messages %}{% set content = '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' %}{% if loop.index0 == 0 %}{% set content = bos_token + content %}{% endif %}{{ content }}{% endfor %}{% if add_generation_prompt %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\nAfter carefully reading the query, document, and guidelines, I have determined that the relevance score is: ' }}{% endif %}","stop":["<|eot_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot_id|>"},"pricing":{"hourly":0,"input":0.1,"output":0.1,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-72B-Instruct-Turbo","uuid":"endpoint-2aca6593-7a8d-4790-a136-29e1ba686aa0","object":"model","created":1728633510,"type":"chat","running":false,"display_name":"Qwen2.5 72B Instruct Turbo","organization":"Qwen","link":"https://huggingface.co/Qwen/Qwen2.5-72B-Instruct","license":"Qwen","context_length":131072,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|im_end|>"],"bos_token":"<|endoftext|>","eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":1.2,"output":1.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nvidia/Llama-3.1-Nemotron-70B-Instruct-HF","uuid":"endpoint-a1b84afe-8242-42a6-8288-68773f507684","object":"model","created":1731110984,"type":"chat","running":false,"display_name":"Llama 3.1 Nemotron 70B Instruct HF","organization":"nvidia","link":"https://huggingface.co/nvidia/Llama-3.1-Nemotron-70B-Instruct-HF","license":"llama3.1","context_length":32768,"config":{"chat_template":"{{- bos_token }}\n{%- if custom_tools is defined %}\n {%- set tools = custom_tools %}\n{%- endif %}\n{%- if not tools_in_user_message is defined %}\n {%- set tools_in_user_message = true %}\n{%- endif %}\n{%- if not date_string is defined %}\n {%- set date_string = \"26 Jul 2024\" %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n{%- endif %}\n\n{#- System message + builtin tools #}\n{{- \"<|start_header_id|>system<|end_header_id|>\\n\\n\" }}\n{%- if builtin_tools is defined or tools is not none %}\n {{- \"Environment: ipython\\n\" }}\n{%- endif %}\n{%- if builtin_tools is defined %}\n {{- \"Tools: \" + builtin_tools | reject('equalto', 'code_interpreter') | join(\", \") + \"\\n\\n\"}}\n{%- endif %}\n\n{%- if tools is not none and not tools_in_user_message %}\n {{- \"You have access to the following functions. To call a function, please respond with JSON for a function call.\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n{%- endif %}\n{{- system_message }}\n{{- \"<|eot_id|>\" }}\n\n{#- Custom tools are passed in a user message with some extra guidance #}\n{%- if tools_in_user_message and not tools is none %}\n {#- Extract the first user message so we can plug it in here #}\n {%- if messages | length != 0 %}\n {%- set first_user_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n {%- else %}\n {{- raise_exception(\"Cannot put tools in the first user message when there's no first user message!\") }}\n{%- endif %}\n {{- '<|start_header_id|>user<|end_header_id|>\\n\\n' -}}\n {{- \"Given the following functions, please respond with a JSON for a function call \" }}\n {{- \"with its proper arguments that best answers the given prompt.\\n\\n\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n {{- first_user_message + \"<|eot_id|>\"}}\n{%- endif %}\n\n{%- for message in messages %}\n {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}\n {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n'+ message['content'] | trim + '<|eot_id|>' }}\n {%- elif 'tool_calls' in message %}\n {%- if not message.tool_calls|length == 1 %}\n {{- raise_exception(\"This model only supports single tool-calls at once!\") }}\n {%- endif %}\n {%- set tool_call = message.tool_calls[0].function %}\n {%- if builtin_tools is defined and tool_call.name in builtin_tools %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- \"<|python_tag|>\" + tool_call.name + \".call(\" }}\n {%- for arg_name, arg_val in tool_call.arguments | items %}\n {{- arg_name + '=\"' + arg_val + '\"' }}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- endif %}\n {%- endfor %}\n {{- \")\" }}\n {%- else %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- '{\"name\": \"' + tool_call.name + '\", ' }}\n {{- '\"parameters\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- \"}\" }}\n {%- endif %}\n {%- if builtin_tools is defined %}\n {#- This means we're in ipython mode #}\n {{- \"<|eom_id|>\" }}\n {%- else %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n {{- \"<|start_header_id|>ipython<|end_header_id|>\\n\\n\" }}\n {%- if message.content is mapping or message.content is iterable %}\n {{- message.content | tojson }}\n {%- else %}\n {{- message.content }}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' }}\n{%- endif %}\n","stop":["<|eot_id|>","<|eom_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot_id|>"},"pricing":{"hourly":0,"input":0.88,"output":0.88,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","uuid":"endpoint-503e11d4-3dee-459d-9ea6-e0f061f7dee5","object":"model","created":1731556615,"type":"chat","running":false,"display_name":"Qwen 2.5 Coder 32B Instruct","organization":"Qwen","link":"https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct","license":"Qwen","context_length":16384,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|im_end|>"],"bos_token":"<|endoftext|>","eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0.8,"output":0.8,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-3.1-405B-Instruct","uuid":"model-ec45f5a8-6e10-400f-b4b4-515e860baf75","object":"model","created":1733522566,"type":"chat","running":false,"display_name":"Meta Llama 3.1 405B Instruct","organization":"Meta","link":"https://huggingface.co/meta-llama/Llama-3.1-405B-Instruct","license":"llama","context_length":4096,"config":{"chat_template":"{{- bos_token }}\n{%- if custom_tools is defined %}\n {%- set tools = custom_tools %}\n{%- endif %}\n{%- if not tools_in_user_message is defined %}\n {%- set tools_in_user_message = true %}\n{%- endif %}\n{%- if not date_string is defined %}\n {%- set date_string = \"26 Jul 2024\" %}\n{%- endif %}\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n{%- endif %}\n\n{#- System message + builtin tools #}\n{{- \"<|start_header_id|>system<|end_header_id|>\\n\\n\" }}\n{%- if builtin_tools is defined or tools %}\n {{- \"Environment: ipython\\n\" }}\n{%- endif %}\n{%- if builtin_tools is defined %}\n {{- \"Tools: \" + builtin_tools | reject('equalto', 'code_interpreter') | join(\", \") + \"\\n\\n\"}}\n{%- endif %}\n{{- \"Cutting Knowledge Date: December 2023\\n\" }}\n{{- \"Today Date: \" + date_string + \"\\n\\n\" }}\n{%- if tools %}\n {{- \"You have access to the following functions:\\n\\n\" }}{%- for t in tools %}\n {{- \"Use the function '\" + t.function.name + \"' to '\" + t.function.description + \"'\\n\" }}\n {{- t.function | dump(4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n{% raw %}If a you choose to call a function ONLY reply in the following format:\n<{start_tag}={function_name}>{parameters}{end_tag}\nwhere\n\nstart_tag => `<function`\nparameters => a JSON dict with the function argument name as key and function argument value as value.\nend_tag => `</function>`\n\nHere is an example,\n<function=example_function_name>{\"example_name\": \"example_value\"}</function>\n\nReminder:\n- Function calls MUST follow the specified format\n- Required parameters MUST be specified\n- Only call one function at a time\n- Put the entire function call reply on one line\n- Always add your sources when using search results to answer the user query\n\n{% endraw %}{%- endif %}\n{{- system_message }}\n{{- \"<|eot_id|>\" }}\n\n{%- for message in messages %}\n {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}\n {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n'+ message['content'] | trim + '<|eot_id|>' }}\n {%- elif 'tool_calls' in message and message.tool_calls %}\n {%- if not message.tool_calls|length == 1 %}\n {{- raise_exception(\"This model only supports single tool-calls at once!\") }}\n {%- endif %}\n {%- set tool_call = message.tool_calls[0].function %}\n {%- if builtin_tools is defined and tool_call.name in builtin_tools %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- \"<|python_tag|>\" + tool_call.name + \".call(\" }}\n {%- for arg_name, arg_val in tool_call.arguments | items %}\n {{- arg_name + '=\"' + arg_val + '\"' }}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- endif %}\n {%- endfor %}\n {{- \")\" }}\n {%- else %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- '{\"name\": \"' + tool_call.name + '\", ' }}\n {{- '\"parameters\": ' }}\n {{- tool_call.arguments | dump }}\n {{- \"}\" }}\n {%- endif %}\n {%- if builtin_tools is defined %}\n {#- This means we're in ipython mode #}\n {{- \"<|eom_id|>\" }}\n {%- else %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n {{- \"<|start_header_id|>ipython<|end_header_id|>\\n\\n\" }}\n {%- if message.content is mapping or message.content is iterable %}\n {{- message.content | dump }}\n {%- else %}\n {{- message.content }}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' }}{%- endif %}\n","stop":["<|eot_id|>","<|eom_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot_id|>"},"pricing":{"hourly":0,"input":3.5,"output":3.5,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-3.2-1B-Instruct","uuid":"model-13e8c741-8389-4983-afe4-8b22a9de9f49","object":"model","created":1733523047,"type":"chat","running":false,"display_name":"Meta Llama 3.2 1B Instruct","organization":"Meta","link":"https://huggingface.co/api/models/meta-llama/Llama-3.2-1B-Instruct","license":"llama3.2","context_length":131072,"config":{"chat_template":"{{- bos_token }}\n{%- if custom_tools is defined %}\n {%- set tools = custom_tools %}\n{%- endif %}\n{%- if not tools_in_user_message is defined %}\n {%- set tools_in_user_message = true %}\n{%- endif %}\n{%- if not date_string is defined %}\n {%- if strftime_now is defined %}\n {%- set date_string = strftime_now(\"%d %b %Y\") %}\n {%- else %}\n {%- set date_string = \"26 Jul 2024\" %}\n {%- endif %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n{%- endif %}\n\n{#- System message #}\n{{- \"<|start_header_id|>system<|end_header_id|>\\n\\n\" }}\n{%- if tools is not none %}\n {{- \"Environment: ipython\\n\" }}\n{%- endif %}\n{{- \"Cutting Knowledge Date: December 2023\\n\" }}\n{{- \"Today Date: \" + date_string + \"\\n\\n\" }}\n{%- if tools is not none and not tools_in_user_message %}\n {{- \"You have access to the following functions. To call a function, please respond with JSON for a function call.\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n{%- endif %}\n{{- system_message }}\n{{- \"<|eot_id|>\" }}\n\n{#- Custom tools are passed in a user message with some extra guidance #}\n{%- if tools_in_user_message and not tools is none %}\n {#- Extract the first user message so we can plug it in here #}\n {%- if messages | length != 0 %}\n {%- set first_user_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n {%- else %}\n {{- raise_exception(\"Cannot put tools in the first user message when there's no first user message!\") }}\n{%- endif %}\n {{- '<|start_header_id|>user<|end_header_id|>\\n\\n' -}}\n {{- \"Given the following functions, please respond with a JSON for a function call \" }}\n {{- \"with its proper arguments that best answers the given prompt.\\n\\n\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n {{- first_user_message + \"<|eot_id|>\"}}\n{%- endif %}\n\n{%- for message in messages %}\n {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}\n {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n'+ message['content'] | trim + '<|eot_id|>' }}\n {%- elif 'tool_calls' in message %}\n {%- if not message.tool_calls|length == 1 %}\n {{- raise_exception(\"This model only supports single tool-calls at once!\") }}\n {%- endif %}\n {%- set tool_call = message.tool_calls[0].function %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- '{\"name\": \"' + tool_call.name + '\", ' }}\n {{- '\"parameters\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- \"}\" }}\n {{- \"<|eot_id|>\" }}\n {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n {{- \"<|start_header_id|>ipython<|end_header_id|>\\n\\n\" }}\n {%- if message.content is mapping or message.content is iterable %}\n {{- message.content | tojson }}\n {%- else %}\n {{- message.content }}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' }}\n{%- endif %}\n","stop":["<|eot_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot_id|>"},"pricing":{"hourly":0,"input":0.060000000000000005,"output":0.060000000000000005,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-3.2-3B-Instruct","uuid":"model-4f259d14-9091-4488-9a5a-b9899240d7c7","object":"model","created":1733523405,"type":"chat","running":false,"display_name":"Meta Llama 3.2 3B Instruct","organization":"Meta","link":"https://huggingface.co/api/models/meta-llama/Llama-3.2-3B-Instruct","license":"llama3.2","context_length":131072,"config":{"chat_template":"{{- bos_token }}\n{%- if custom_tools is defined %}\n {%- set tools = custom_tools %}\n{%- endif %}\n{%- if not tools_in_user_message is defined %}\n {%- set tools_in_user_message = true %}\n{%- endif %}\n{%- if not date_string is defined %}\n {%- if strftime_now is defined %}\n {%- set date_string = strftime_now(\"%d %b %Y\") %}\n {%- else %}\n {%- set date_string = \"26 Jul 2024\" %}\n {%- endif %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n{%- endif %}\n\n{#- System message #}\n{{- \"<|start_header_id|>system<|end_header_id|>\\n\\n\" }}\n{%- if tools is not none %}\n {{- \"Environment: ipython\\n\" }}\n{%- endif %}\n{{- \"Cutting Knowledge Date: December 2023\\n\" }}\n{{- \"Today Date: \" + date_string + \"\\n\\n\" }}\n{%- if tools is not none and not tools_in_user_message %}\n {{- \"You have access to the following functions. To call a function, please respond with JSON for a function call.\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n{%- endif %}\n{{- system_message }}\n{{- \"<|eot_id|>\" }}\n\n{#- Custom tools are passed in a user message with some extra guidance #}\n{%- if tools_in_user_message and not tools is none %}\n {#- Extract the first user message so we can plug it in here #}\n {%- if messages | length != 0 %}\n {%- set first_user_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n {%- else %}\n {{- raise_exception(\"Cannot put tools in the first user message when there's no first user message!\") }}\n{%- endif %}\n {{- '<|start_header_id|>user<|end_header_id|>\\n\\n' -}}\n {{- \"Given the following functions, please respond with a JSON for a function call \" }}\n {{- \"with its proper arguments that best answers the given prompt.\\n\\n\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n {{- first_user_message + \"<|eot_id|>\"}}\n{%- endif %}\n\n{%- for message in messages %}\n {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}\n {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n'+ message['content'] | trim + '<|eot_id|>' }}\n {%- elif 'tool_calls' in message %}\n {%- if not message.tool_calls|length == 1 %}\n {{- raise_exception(\"This model only supports single tool-calls at once!\") }}\n {%- endif %}\n {%- set tool_call = message.tool_calls[0].function %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- '{\"name\": \"' + tool_call.name + '\", ' }}\n {{- '\"parameters\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- \"}\" }}\n {{- \"<|eot_id|>\" }}\n {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n {{- \"<|start_header_id|>ipython<|end_header_id|>\\n\\n\" }}\n {%- if message.content is mapping or message.content is iterable %}\n {{- message.content | tojson }}\n {%- else %}\n {{- message.content }}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' }}\n{%- endif %}\n","stop":["<|eot_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot_id|>"},"pricing":{"hourly":0,"input":0.060000000000000005,"output":0.060000000000000005,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-72B-Instruct","uuid":"model-1ca3af0a-7968-422a-9ee7-57a429f1c8ff","object":"model","created":1733523968,"type":"chat","running":false,"display_name":"Qwen2.5 72B Instruct","organization":"Qwen","link":"https://huggingface.co/Qwen/Qwen2.5-72B-Instruct","license":"Qwen","context_length":32768,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|im_end|>"],"bos_token":"<|endoftext|>","eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":1.2,"output":1.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-14B-Instruct","uuid":"model-983bb31f-7b4d-43c7-9ae8-c8e1879e7352","object":"model","created":1733873086,"type":"chat","running":false,"display_name":"Qwen 2.5 14B Instruct","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen2.5-14B-Instruct","license":"apache-2.0","context_length":32768,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|im_end|>"],"bos_token":"<|endoftext|>","eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0.8,"output":0.8,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2-VL-72B-Instruct","object":"model","created":1736448718,"type":"chat","running":false,"display_name":"Qwen2-VL (72B) Instruct","organization":"Qwen","link":"https://huggingface.co/Qwen/Qwen2-VL-72B-Instruct","license":"tongyi-qianwen","context_length":32768,"config":{"chat_template":"{% set image_count = namespace(value=0) %}{% set video_count = namespace(value=0) %}{% for message in messages %}{% if loop.first and message['role'] != 'system' %}<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n{% endif %}<|im_start|>{{ message['role'] }}\n{% if message['content'] is string %}{{ message['content'] }}<|im_end|>\n{% else %}{% for content in message['content'] %}{% if content['type'] == 'image' or 'image' in content or 'image_url' in content %}{% set image_count.value = image_count.value + 1 %}{% if add_vision_id %}Picture {{ image_count.value }}: {% endif %}<|vision_start|><|image_pad|><|vision_end|>{% elif content['type'] == 'video' or 'video' in content %}{% set video_count.value = video_count.value + 1 %}{% if add_vision_id %}Video {{ video_count.value }}: {% endif %}<|vision_start|><|video_pad|><|vision_end|>{% elif 'text' in content %}{{ content['text'] }}{% endif %}{% endfor %}<|im_end|>\n{% endif %}{% endfor %}{% if add_generation_prompt %}<|im_start|>assistant\n{% endif %}","stop":["<|im_end|>","<|endoftext|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":1.2,"output":1.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","uuid":"endpoint-6bf6649d-fdfb-47e7-8f39-be4c7516c96c","object":"model","created":1738048961,"type":"chat","running":false,"display_name":"DeepSeek R1 Distill Llama 70B","organization":"DeepSeek","link":"https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Llama-70B","license":"mit","context_length":131072,"config":{"chat_template":"{% if not add_generation_prompt is defined %}{% set add_generation_prompt = false %}{% endif %}{% set system_prompt='' %}{% set is_tool = false %}{%- for message in messages %}{%- if message['role'] == 'system' %}{% set system_prompt = message['content'] %}{%- endif %}{%- endfor %}{{bos_token}}{{system_prompt}}{%- for message in messages %}{%- if message['role'] == 'user' %}{%- set is_tool = false -%}{{'<|User|>' + message['content']}}{%- endif %}{%- if message['role'] == 'assistant' and message['content'] is none %}{%- set is_tool = false -%}{%- set is_output_first = true -%}{%- set is_first = false -%}{%- for tool in message['tool_calls']%}{%- if is_first %}{{'<|Assistant|><|tool▁calls▁begin|><|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\\n' + '```json' + '\\n' + tool['function']['arguments'] + '\\n' + '```' + '<|tool▁call▁end|>'}}{%- set is_first = true -%}{%- else %}{{'\\n' + '<|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\\n' + '```json' + '\\n' + tool['function']['arguments'] + '\\n' + '```' + '<|tool▁call▁end|>'}}{{'<|tool▁calls▁end|><|end▁of▁sentence|>'}}{%- endif %}{%- endfor %}{%- endif %}{%- if message['role'] == 'assistant' and message['content'] is not none %}{%- if is_tool %}{{'<|tool▁outputs▁end|>' + message['content'] + '<|end▁of▁sentence|>'}}{%- set is_tool = false -%}{%- else %}{% set content = message['content'] %}{% if '</think>' in content %}{% set parts = content | split('</think>') %}{% set content = parts[parts.length-1] %}{% endif %}{{'<|Assistant|>' + content + '<|end▁of▁sentence|>'}}{%- endif %}{%- endif %}{%- if message['role'] == 'tool' %}{%- set is_tool = true -%}{%- if is_output_first %}{{'<|tool▁outputs▁begin|><|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- set is_output_first = false %}{%- else %}{{'\\n<|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- endif %}{%- endif %}{%- endfor -%}{% if is_tool %}{{'<|tool▁outputs▁end|>'}}{% endif %}{% if add_generation_prompt and not is_tool %}{{'<|Assistant|>'}}{% endif %}","stop":["<|end▁of▁sentence|>"],"bos_token":"<|begin▁of▁sentence|>","eos_token":"<|end▁of▁sentence|>","max_output_length":32768},"pricing":{"hourly":0,"input":2,"output":2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","uuid":"endpoint-56e511d0-9a77-4121-a8b3-39cd093828c3","object":"model","created":1738182549,"type":"chat","running":false,"display_name":"DeepSeek R1 Distill Qwen 14B","organization":"DeepSeek","link":"https://huggingface.co/api/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","license":"mit","context_length":131072,"config":{"chat_template":"{% if not add_generation_prompt %}{% set add_generation_prompt = false %}{% endif %}{# Initialize variables since Nunjucks doesn't support namespace #}{% set is_first = false %}{% set is_tool = false %}{% set is_output_first = true %}{% set system_prompt = '' %}{# Get system prompt #}{% for message in messages %}{% if message.role == 'system' %}{% set system_prompt = message.content %}{% endif %}{% endfor %}{{bos_token}}{{system_prompt}}{% for message in messages %}{% if message.role == 'user' %}{% set is_tool = false %}<|User|>{{message.content}}{% endif %}{% if message.role == 'assistant' and not message.content %}{% set is_tool = false %}{% for tool in message.tool_calls %}{% if not is_first %}<|Assistant|><|tool▁calls▁begin|><|tool▁call▁begin|>{{tool.type}}<|tool▁sep|>{{tool.function.name}}```json{{tool.function.arguments}}```<|tool▁call▁end|>{% set is_first = true %}{% else %}<|tool▁call▁begin|>{{tool.type}}<|tool▁sep|>{{tool.function.name}}```json{{tool.function.arguments}}```<|tool▁call▁end|><|tool▁calls▁end|><|end▁of▁sentence|>{% endif %}{% endfor %}{% endif %}{% if message.role == 'assistant' and message.content %}{% if is_tool %}<|tool▁outputs▁end|>{{message.content}}<|end▁of▁sentence|>{% set is_tool = false %}{% else %}{% set content = message.content %}{% if '</think>' in content %}{% set parts = content | split('</think>') %}{% set content = parts[parts.length-1] %}{% endif %}<|Assistant|>{{content}}<|end▁of▁sentence|>{% endif %}{% endif %}{% if message.role == 'tool' %}{% set is_tool = true %}{% if is_output_first %}<|tool▁outputs▁begin|><|tool▁output▁begin|>{{message.content}}<|tool▁output▁end|>{% set is_output_first = false %}{% else %}<|tool▁output▁begin|>{{message.content}}<|tool▁output▁end|>{% endif %}{% endif %}{% endfor %}{% if is_tool %}<|tool▁outputs▁end|>{% endif %}{% if add_generation_prompt and not is_tool %}<|Assistant|>{% endif %}","stop":["<|end▁of▁sentence|>"],"bos_token":"<|begin▁of▁sentence|>","eos_token":"<|end▁of▁sentence|>","max_output_length":32768},"pricing":{"hourly":0,"input":1.6,"output":1.6,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B","uuid":"endpoint-56e511d0-9a77-4121-a8b3-39cd093828c4","object":"model","created":1738185844,"type":"chat","running":false,"display_name":"DeepSeek R1 Distill Qwen 1.5B","organization":"DeepSeek","link":"https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B","license":"mit","context_length":131072,"config":{"chat_template":"{% if not add_generation_prompt %}{% set add_generation_prompt = false %}{% endif %}{# Initialize variables since Nunjucks doesn't support namespace #}{% set is_first = false %}{% set is_tool = false %}{% set is_output_first = true %}{% set system_prompt = '' %}{# Get system prompt #}{% for message in messages %}{% if message.role == 'system' %}{% set system_prompt = message.content %}{% endif %}{% endfor %}{{bos_token}}{{system_prompt}}{% for message in messages %}{% if message.role == 'user' %}{% set is_tool = false %}<|User|>{{message.content}}{% endif %}{% if message.role == 'assistant' and not message.content %}{% set is_tool = false %}{% for tool in message.tool_calls %}{% if not is_first %}<|Assistant|><|tool▁calls▁begin|><|tool▁call▁begin|>{{tool.type}}<|tool▁sep|>{{tool.function.name}}```json{{tool.function.arguments}}```<|tool▁call▁end|>{% set is_first = true %}{% else %}<|tool▁call▁begin|>{{tool.type}}<|tool▁sep|>{{tool.function.name}}```json{{tool.function.arguments}}```<|tool▁call▁end|><|tool▁calls▁end|><|end▁of▁sentence|>{% endif %}{% endfor %}{% endif %}{% if message.role == 'assistant' and message.content %}{% if is_tool %}<|tool▁outputs▁end|>{{message.content}}<|end▁of▁sentence|>{% set is_tool = false %}{% else %}{% set content = message.content %}{% if '</think>' in content %}{% set parts = content | split('</think>') %}{% set content = parts[parts.length-1] %}{% endif %}<|Assistant|>{{content}}<|end▁of▁sentence|>{% endif %}{% endif %}{% if message.role == 'tool' %}{% set is_tool = true %}{% if is_output_first %}<|tool▁outputs▁begin|><|tool▁output▁begin|>{{message.content}}<|tool▁output▁end|>{% set is_output_first = false %}{% else %}<|tool▁output▁begin|>{{message.content}}<|tool▁output▁end|>{% endif %}{% endif %}{% endfor %}{% if is_tool %}<|tool▁outputs▁end|>{% endif %}{% if add_generation_prompt and not is_tool %}<|Assistant|>{% endif %}","stop":["<|end▁of▁sentence|>"],"bos_token":"<|begin▁of▁sentence|>","eos_token":"<|end▁of▁sentence|>"},"pricing":{"hourly":0,"input":0.18000000000000002,"output":0.18000000000000002,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"mistralai/Mistral-Small-24B-Instruct-2501","uuid":"endpoint-d5e9222e-abb6-49ce-940f-f24b0073bfda","object":"model","created":1738246136,"type":"chat","running":false,"display_name":"Mistral Small (24B) Instruct 25.01","organization":"mistralai","link":"https://huggingface.co/mistralai/Mistral-Small-Instruct-2501","license":"apache-2.0","context_length":32768,"config":{"chat_template":"{%- if messages[0][\"role\"] == \"system\" %}{%- set system_message = messages[0][\"content\"] %}{%- set loop_messages = messages[1:] %}{%- else %}{%- set today = strftime_now(\"%Y-%m-%d\") %}{%- set system_message = \"You are Mistral Small 3, a Large Language Model (LLM) created by Mistral AI, a French startup headquartered in Paris.\\nYour knowledge base was last updated on 2023-10-01. The current date is \" + today + \".\\n\\nWhen you're not sure about some information, you say that you don't have the information and don't make up anything.\\nIf the user's question is not clear, ambiguous, or does not provide enough context for you to accurately answer the question, you do not try to answer it right away and you rather ask the user to clarify their request (e.g. \\\"What are some good restaurants around me?\\\" => \\\"Where are you?\\\" or \\\"When is the next flight to Tokyo\\\" => \\\"Where do you travel from?\\\")\" %}{%- set loop_messages = messages %}{%- endif %}{%- if not tools is defined %}{%- set tools = none %}{%- elif tools is not none %}{%- set parallel_tool_prompt = \"You are a helpful assistant that can call tools. If you call one or more tools, format them in a single JSON array or objects, where each object is a tool call, not as separate objects outside of an array or multiple arrays. Use the format [{\\\"name\\\": tool call name, \\\"arguments\\\": tool call arguments}, additional tool calls] if you call more than one tool. If you call tools, do not attempt to interpret them or otherwise provide a response until you receive a tool call result that you can interpret for the user.\" %}{%- if system_message is defined %}{%- set system_message = parallel_tool_prompt + \"\\n\\n\" + system_message %}{%- else %}{%- set system_message = parallel_tool_prompt %}{%- endif %}\n{%- endif %}{%- set user_messages = loop_messages | selectattr(\"role\", \"equalto\", \"user\") | list %}{%- for message in loop_messages | rejectattr(\"role\", \"equalto\", \"tool\") | rejectattr(\"role\", \"equalto\", \"tool_results\") | selectattr(\"tool_calls\", \"undefined\") %}{%- if (message[\"role\"] == \"user\") != (loop.index0 % 2 == 0) %}{{- raise_exception(\"After the optional system message, conversation roles must alternate user/assistant/user/assistant/...\") }}{%- endif %}{%- endfor %}{{- bos_token }}{%- for message in loop_messages %}{%- if message[\"role\"] == \"user\" %}{%- if tools is not none and (message == user_messages[user_messages.length-1]) %}{{- \"[AVAILABLE_TOOLS] [\" }}{%- for tool in tools %}{%- set tool = tool.function %}{{- '{\"type\": \"function\", \"function\": {' }}{%- for key, val in tool.items() if key != \"return\" %}{%- if val is string %}{{- '\"' + key + '\": \"' + val + '\"' }}{%- else %}{{- '\"' + key + '\": ' + val|tojson }}{%- endif %}{%- if not loop.last %}{{- \", \" }}{%- endif %}{%- endfor %}{{- \"}}\" }}{%- if not loop.last %}{{- \", \" }}{%- else %}{{- \"]\" }}{%- endif %}{%- endfor %}{{- \"[/AVAILABLE_TOOLS]\" }}{%- endif %}{%- if loop.last and system_message is defined %}{{- \"[SYSTEM_PROMPT]\" + system_message + \"[/SYSTEM_PROMPT][INST]\" + message[\"content\"] + \"[/INST]\" }}{%- else %}{{- \"[INST]\" + message[\"content\"] + \"[/INST]\" }}{%- endif %}{%- elif message[\"role\"] == \"tool_calls\" or message.tool_calls is defined %}{%- if message.tool_calls is defined %}{%- set tool_calls = message.tool_calls %}{%- else %}{%- set tool_calls = message.content %}{%- endif %}{{- \"[TOOL_CALLS] [\" }}{%- for tool_call in tool_calls %}{%- set out = tool_call.function|tojson %}{{- out }}{%- if not tool_call.id is defined or tool_call.id|length < 9 %}{{- raise_exception(\"Tool call IDs should be alphanumeric strings with length >= 9! (1)\" + tool_call.id) }}{%- endif %}{{- ', \"id\": \"' + tool_call.id + '\"}' }}{%- if not loop.last %}{{- \", \" }}{%- else %}{{- \"]\" + eos_token }}{%- endif %}{%- endfor %}{%- elif message[\"role\"] == \"assistant\" %}{{- \" \" + message[\"content\"] + eos_token }}{%- elif message[\"role\"] == \"tool_results\" or message[\"role\"] == \"tool\" %}{%- if message.content is defined and message.content.content is defined %}{%- set content = message.content.content %}{%- else %}{%- set content = message.content %}{%- endif %}{{- '[TOOL_RESULTS] {\"content\": ' + content|string + \", \" }}{%- if not message.tool_call_id is defined or message.tool_call_id|length < 9 %}{{- raise_exception(\"Tool call IDs should be alphanumeric strings with length >= 9! (2)\" + message.tool_call_id) }}{%- endif %}{{- '\"call_id\": \"' + message.tool_call_id + '\"}[/TOOL_RESULTS]' }}{%- else %}{{- raise_exception(\"Only user and assistant roles are supported, with the exception of an initial optional system message!\") }}{%- endif %}\n{%- endfor %}","stop":["[/INST]","</s>"],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.1,"output":0.3,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-3.2-3B","object":"model","created":1740523679,"type":"language","running":false,"display_name":"Meta Llama 3.2 3B","organization":"Meta","link":"https://huggingface.co/api/models/meta-llama/Llama-3.2-3B","license":"llama3.2","context_length":131072,"config":{"chat_template":null,"stop":["<|end_of_text|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|end_of_text|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/QwQ-32B","object":"model","created":1741207789,"type":"chat","running":false,"display_name":"Qwen QwQ-32B","organization":"Qwen","link":"https://huggingface.co/Qwen/QwQ-32B","license":"Qwen","context_length":131072,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are a helpful and harmless assistant. You are Qwen developed by Alibaba. You should think step-by-step.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|im_end|>","<|endoftext|>"],"bos_token":null,"eos_token":"<|im_end|>","max_output_length":32768},"pricing":{"hourly":0,"input":1.2,"output":1.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo","uuid":"endpoint-b29b431f-6184-4685-9abc-b4d39cdc771d","object":"model","created":1741298134,"type":"chat","running":false,"display_name":"Meta Llama 3.1 8B Instruct Turbo","organization":"Meta","link":"https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct","license":"Llama-3.1 (Other)","context_length":131072,"config":{"chat_template":"{{- bos_token }}\n{%- if custom_tools is defined %}\n {%- set tools = custom_tools %}\n{%- endif %}\n{%- if not tools_in_user_message is defined %}\n {%- set tools_in_user_message = true %}\n{%- endif %}\n{%- if not date_string is defined %}\n {%- set date_string = \"26 Jul 2024\" %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n{%- endif %}\n\n{#- System message + builtin tools #}\n{{- \"<|start_header_id|>system<|end_header_id|>\\n\\n\" }}\n{%- if builtin_tools is defined or tools is not none %}\n {{- \"Environment: ipython\\n\" }}\n{%- endif %}\n{%- if builtin_tools is defined %}\n {{- \"Tools: \" + builtin_tools | reject('equalto', 'code_interpreter') | join(\", \") + \"\\n\\n\"}}\n{%- endif %}\n{{- \"Cutting Knowledge Date: December 2023\\n\" }}\n{{- \"Today Date: \" + date_string + \"\\n\\n\" }}\n{%- if tools is not none and not tools_in_user_message %}\n {{- \"You have access to the following functions. To call a function, please respond with JSON for a function call.\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n{%- endif %}\n{{- system_message }}\n{{- \"<|eot_id|>\" }}\n\n{#- Custom tools are passed in a user message with some extra guidance #}\n{%- if tools_in_user_message and not tools is none %}\n {#- Extract the first user message so we can plug it in here #}\n {%- if messages | length != 0 %}\n {%- set first_user_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n {%- else %}\n {{- raise_exception(\"Cannot put tools in the first user message when there's no first user message!\") }}\n{%- endif %}\n {{- '<|start_header_id|>user<|end_header_id|>\\n\\n' -}}\n {{- \"Given the following functions, please respond with a JSON for a function call \" }}\n {{- \"with its proper arguments that best answers the given prompt.\\n\\n\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n {{- first_user_message + \"<|eot_id|>\"}}\n{%- endif %}\n\n{%- for message in messages %}\n {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}\n {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n'+ message['content'] | trim + '<|eot_id|>' }}\n {%- elif 'tool_calls' in message %}\n {%- if not message.tool_calls|length == 1 %}\n {{- raise_exception(\"This model only supports single tool-calls at once!\") }}\n {%- endif %}\n {%- set tool_call = message.tool_calls[0].function %}\n {%- if builtin_tools is defined and tool_call.name in builtin_tools %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- \"<|python_tag|>\" + tool_call.name + \".call(\" }}\n {%- for arg_name, arg_val in tool_call.arguments | items %}\n {{- arg_name + '=\"' + arg_val + '\"' }}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- endif %}\n {%- endfor %}\n {{- \")\" }}\n {%- else %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- '{\"name\": \"' + tool_call.name + '\", ' }}\n {{- '\"parameters\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- \"}\" }}\n {%- endif %}\n {%- if builtin_tools is defined %}\n {#- This means we're in ipython mode #}\n {{- \"<|eom_id|>\" }}\n {%- else %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n {{- \"<|start_header_id|>ipython<|end_header_id|>\\n\\n\" }}\n {%- if message.content is mapping or message.content is iterable %}\n {{- message.content | tojson }}\n {%- else %}\n {{- message.content }}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' }}\n{%- endif %}\n","stop":["<|eot_id|>","<|eom_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot_id|>"},"pricing":{"hourly":0,"input":0.18000000000000002,"output":0.18000000000000002,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nim/meta/llama-3.2-11b-vision-instruct","object":"model","created":1741628472,"type":"chat","running":false,"display_name":"nim/meta/llama-3.2-11b-vision-instruct","organization":"Nvidia","context_length":16384,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nim/meta/llama-3.2-90b-vision-instruct","object":"model","created":1741634194,"type":"chat","running":false,"display_name":"nim/meta/llama-3.2-90b-vision-instruct","organization":"Meta","context_length":16384,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nim/mistralai/mixtral-8x22b-instruct-v01","object":"model","created":1741634368,"type":"chat","running":false,"display_name":"nim/mistralai/mixtral-8x22b-instruct-v01","organization":"Mistral","context_length":16384,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nim/meta/llama-3.3-70b-instruct","object":"model","created":1741806412,"type":"chat","running":false,"display_name":"nim/meta/llama-3.3-70b-instruct","organization":"Meta","context_length":16384,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nim/nvidia/llama-3.1-nemotron-70b-instruct","object":"model","created":1741808060,"type":"chat","running":false,"display_name":"nim/nvidia/llama-3.1-nemotron-70b-instruct","organization":"NVIDIA","context_length":16384,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nim/meta/llama-3.1-8b-instruct","object":"model","created":1741829400,"type":"chat","running":false,"display_name":"nim/meta/llama-3.1-8b-instruct","organization":"Meta","context_length":16384,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nim/meta/llama-3.1-70b-instruct","object":"model","created":1741933887,"type":"chat","running":false,"display_name":"nim/meta/llama-3.1-70b-instruct","organization":"Llama","context_length":16384,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nim/nv-mistralai/mistral-nemo-12b-instruct","object":"model","created":1741933917,"type":"chat","running":false,"display_name":"nim/nv-mistralai/mistral-nemo-12b-instruct","organization":"NVIDIA","context_length":16384,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nim/mistralai/mixtral-8x7b-instruct-v01","object":"model","created":1741933961,"type":"chat","running":false,"display_name":"nim/mistralai/mixtral-8x7b-instruct-v01","organization":"mistralai","context_length":16384,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nim/nvidia/llama-3.3-nemotron-super-49b-v1","object":"model","created":1742324726,"type":"chat","running":false,"display_name":"nim/nvidia/llama-3.3-nemotron-super-49b-v1","organization":"Nvidia","context_length":16384,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-VL-72B-Instruct","uuid":"endpoint-0de709e6-fce9-4457-9591-b650b7338796","object":"model","created":1742408085,"type":"chat","running":false,"display_name":"Qwen2.5-VL (72B) Instruct","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen2.5-VL-72B-Instruct","license":"tongyi-qianwen","context_length":32768,"config":{"chat_template":"{% set image_count = namespace(value=0) %}{% set video_count = namespace(value=0) %}{% for message in messages %}{% if loop.first and message['role'] != 'system' %}<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n{% endif %}<|im_start|>{{ message['role'] }}\n{% if message['content'] is string %}{{ message['content'] }}<|im_end|>\n{% else %}{% for content in message['content'] %}{% if content['type'] == 'image' or 'image' in content or 'image_url' in content %}{% set image_count.value = image_count.value + 1 %}{% if add_vision_id %}Picture {{ image_count.value }}: {% endif %}<|vision_start|><|image_pad|><|vision_end|>{% elif content['type'] == 'video' or 'video' in content %}{% set video_count.value = video_count.value + 1 %}{% if add_vision_id %}Video {{ video_count.value }}: {% endif %}<|vision_start|><|video_pad|><|vision_end|>{% elif 'text' in content %}{{ content['text'] }}{% endif %}{% endfor %}<|im_end|>\n{% endif %}{% endfor %}{% if add_generation_prompt %}<|im_start|>assistant\n{% endif %}","stop":["<|im_end|>","<|endoftext|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":1.95,"output":8,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-3-27b-it","uuid":"endpoint-7330ad61-fe41-4856-af8b-da0b8c43713a","object":"model","created":1743212460,"type":"chat","running":false,"display_name":"Gemma 3 27B It","organization":"Google","link":"https://huggingface.co/api/models/google/gemma-3-27b-it","license":"gemma","context_length":65536,"config":{"chat_template":null,"stop":["<eos>"],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-2-7b-chat-hf","uuid":"model-56248d8b-36cf-4789-8024-f75de81f2a51","object":"model","created":1743496513,"type":"chat","running":false,"display_name":"meta-llama/Llama-2-7b-chat-hf","organization":"Meta","link":"https://huggingface.co/meta-llama/Llama-2-7b-chat-hf","license":"llama2","context_length":4096,"config":{"chat_template":"{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% else %}{% set loop_messages = messages %}{% set system_message = false %}{% endif %}{% for message in loop_messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if loop.index0 == 0 and system_message != false %}{% set content = '<<SYS>>\\n' + system_message + '\\n<</SYS>>\\n\\n' + message['content'] %}{% else %}{% set content = message['content'] %}{% endif %}{% if message['role'] == 'user' %}{{ bos_token + '[INST] ' + content.strip() + ' [/INST]' }}{% elif message['role'] == 'assistant' %}{{ ' ' + content.strip() + ' ' + eos_token }}{% endif %}{% endfor %}","stop":["</s>"],"bos_token":"<s>","eos_token":"</s>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B","uuid":"model-063896d5-823e-4bf3-88bb-cf2b4c9bc33b","object":"model","created":1743602298,"type":"chat","running":false,"display_name":"DeepSeek R1 Distill Qwen 7B","organization":"Deepseek","link":"https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B","license":"mit","context_length":131072,"config":{"chat_template":"{% if not add_generation_prompt is defined %}{% set add_generation_prompt = false %}{% endif %}{% set is_first=false %}{% set is_tool=false %}{% set is_output=false %}{% set system_prompt='' %}{%- for message in messages %}{%- if message['role'] == 'system' %}{% set system_prompt = message['content'] %}{%- endif %}{%- endfor %}{{bos_token}}{{system_prompt}}{%- for message in messages %}{%- if message['role'] == 'user' %}{%- set is_tool = false -%}{{'<|User|>' + message['content']}}{%- endif %}{%- if message['role'] == 'assistant' and message['content'] is none %}{%- set is_tool = false -%}{%- for tool in message['tool_calls']%}{%- if not is_first %}{{'<|Assistant|><|tool▁calls▁begin|><|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\\n' + '```json' + '\\n' + tool['function']['arguments'] + '\\n' + '```' + '<|tool▁call▁end|>'}}{%- set is_first = true -%}{%- else %}{{'\\n' + '<|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\\n' + '```json' + '\\n' + tool['function']['arguments'] + '\\n' + '```' + '<|tool▁call▁end|>'}}{{'<|tool▁calls▁end|><|end▁of▁sentence|>'}}{%- endif %}{%- endfor %}{%- endif %}{%- if message['role'] == 'assistant' and message['content'] is not none %}{%- if is_tool %}{{'<|tool▁outputs▁end|>' + message['content'] + '<|end▁of▁sentence|>'}}{%- set is_tool = false -%}{%- else %}{% set content = message['content'] %}{% if '</think>' in content %}{% set content = content.split('</think>')[-1] %}{% endif %}{{'<|Assistant|>' + content + '<|end▁of▁sentence|>'}}{%- endif %}{%- endif %}{%- if message['role'] == 'tool' %}{%- set is_tool = true -%}{%- if is_output_first %}{{'<|tool▁outputs▁begin|><|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- set is_output_first = false %}{%- else %}{{'\\n<|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- endif %}{%- endif %}{%- endfor -%}{% if is_tool %}{{'<|tool▁outputs▁end|>'}}{% endif %}{% if add_generation_prompt and not is_tool %}{{'<|Assistant|><think>\\n'}}{% endif %}","stop":["<|end▁of▁sentence|>"],"bos_token":"<|begin▁of▁sentence|>","eos_token":"<|end▁of▁sentence|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-3-1b-it","object":"model","created":1743632409,"type":"chat","running":false,"display_name":"Gemma 3 1b it","organization":"Google","context_length":32768,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-3-4b-it","object":"model","created":1743646985,"type":"chat","running":false,"display_name":"Gemma 3 4b it","organization":"Google","context_length":65536,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","object":"model","created":1743878170,"type":"chat","running":false,"display_name":"Llama 4 Scout Instruct (17Bx16E)","organization":"Meta","link":"https://huggingface.co/meta-llama/Llama-4-Scout-17B-16E-Instruct","license":"llama4","context_length":1048576,"config":{"chat_template":"{{- bos_token }}\n{%- if custom_tools is defined and custom_tools%}\n {%- set tools = custom_tools %}\n{%- endif %}\n{%- if tools is defined and tools %}\n {%- set tool_definition = tool_definition ~ (tools | tojson(indent=4)) %}\n{%- else %}\n {%- set tools = none %}\n{%- endif %}\n\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set user_provided_system_message = true %}\n {%- if messages[0]['content'] is string %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- else %}\n {%- set system_message = messages[0]['content'][0]['text']|trim %}\n {%- endif %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- if tools is not none %}\n {#- Since not system_message was provided by user, if tool is provided, system_message is now default tool system message #}\n {#- This system message is from llama website:https://www.llama.com/docs/model-cards-and-prompt-formats/llama4/ #}\n {%- set system_message = \"You are a helpful assistant and an expert in function composition. You can answer general questions using your internal knowledge OR invoke functions when necessary. Follow these strict guidelines:\\n\\n1. FUNCTION CALLS:\\n- ONLY use functions that are EXPLICITLY listed in the function list below\\n- If NO functions are listed (empty function list []), respond ONLY with internal knowledge or \\\"I don't have access to [Unavailable service] information\\\"\\n- If a function is not in the list, respond ONLY with internal knowledge or \\\"I don't have access to [Unavailable service] information\\\"\\n- If ALL required parameters are present AND the query EXACTLY matches a listed function's purpose: output ONLY the function call(s)\\n- Use exact format: [\\n {\\n \\\"name\\\": \\\"<tool_name_foo>\\\",\\n \\\"parameters\\\": {\\n \\\"<param1_name>\\\": \\\"<param1_value>\\\",\\n \\\"<param2_name>\\\": \\\"<param2_value>\\\"\\n }\\n }\\n]\\nExamples:\\nCORRECT: [\\n {\\n \\\"name\\\": \\\"get_weather\\\",\\n \\\"parameters\\\": {\\n \\\"location\\\": \\\"Vancouver\\\"\\n }\\n },\\n {\\n \\\"name\\\": \\\"calculate_route\\\",\\n \\\"parameters\\\": {\\n \\\"start\\\": \\\"Boston\\\",\\n \\\"end\\\": \\\"New York\\\"\\n }\\n }\\n] <- Only if get_weather and calculate_route are in function list\\n\\nINCORRECT: [\\n {\\n \\\"name\\\": \\\"population_projections\\\",\\n \\\"parameters\\\": {\\n \\\"country\\\": \\\"United States\\\",\\n \\\"years\\\": 20\\n }\\n }\\n]}] <- Bad json format\\nINCORRECT: Let me check the weather: [\\n {\\n \\\"name\\\": \\\"get_weather\\\",\\n \\\"parameters\\\": {\\n \\\"location\\\": \\\"Vancouver\\\"\\n }\\n }]\\nINCORRECT: [\\n {\\n \\\"name\\\": \\\"get_events\\\",\\n \\\"parameters\\\": {\\n \\\"location\\\": \\\"Singapore\\\"\\n }\\n }] <- If function not in list\\n\\n2. RESPONSE RULES:\\n- For pure function requests matching a listed function: ONLY output the function call(s)\\n- For knowledge questions: ONLY output text\\n- For missing parameters: ONLY request the specific missing parameters\\n- For unavailable services (not in function list): output ONLY with internal knowledge or \\\"I don't have access to [Unavailable service] information\\\". Do NOT execute a function call.\\n- If the query asks for information beyond what a listed function provides: output ONLY with internal knowledge about your limitations\\n- NEVER combine text and function calls in the same response\\n- NEVER suggest alternative functions when the requested service is unavailable\\n- NEVER create or invent new functions not listed below\\n\\n3. STRICT BOUNDARIES:\\n- ONLY use functions from the list below - no exceptions\\n- NEVER use a function as an alternative to unavailable information\\n- NEVER call functions not present in the function list\\n- NEVER add explanatory text to function calls\\n- NEVER respond with empty brackets\\n- Use proper Python/JSON syntax for function calls\\n- Check the function list carefully before responding\\n\\n4. TOOL RESPONSE HANDLING:\\n- When receiving tool responses: provide concise, natural language responses\\n- Don't repeat tool response verbatim\\n- Don't add supplementary information\\n\\nHere is a list of functions in JSON format that you can invoke:\\n\" %}\n {%- else %}\n {%- set system_message = \"\" %}\n {%- endif %}\n{%- endif %}\n{#- Now writing the system message: use the user provided system message if user_provided_system_message, else default tool system message if tools presented #}\n{%- if system_message %}\n {#- always use user provided system message to override default tool system message #}\n {{- \"<|header_start|>system<|header_end|>\\n\\n\" }}\n {{- system_message }}\n {%- if user_provided_system_message and tools %}\n {{- \"\\nHere is a list of functions in JSON format that you can invoke. Use exact format: [func_name1(param1=value1, param2=value2), func_name2(...)]\\n\" }}\n {{- tool_definition -}}\n {%- elif tool_definition %}\n {{- tool_definition -}}\n {%- endif %}\n {{- \"<|eot|>\" }}\n{%- endif %}\n\n{#- Now deal with all other messages #}\n{%- for message in messages %}\n {#- Base case: messages that are not from tool role and has empty tool_call list #}\n {%- if not (message.role == 'ipython' or message.role == 'tool' or ('tool_calls' in message and message.tool_calls|length != 0 )) %}\n {{- '<|header_start|>' + message['role'] + '<|header_end|>\\n\\n' }}\n {%- if message['content'] is string %}\n {{- message['content'] }}\n {%- else %}\n {%- for content in message['content'] %}\n {%- if content['type'] == 'image' %}\n {{- '<|image|>' }}\n {%- elif content['type'] == 'text' %}\n {{- content['text'] | trim }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- \"<|eot|>\" }}\n {#- Tool case: messages has non-empty tool_call list, must from assistant #}\n {%- elif 'tool_calls' in message %}\n {#- assume tool_calls are always coming from assistant #}\n {%- if message.role == 'assistant' %}\n {{- '<|header_start|>assistant<|header_end|>\\n\\n' -}}\n {%- if message['content'] is string %}\n {{- message['content'] }}\n {%- else %}\n {%- for content in message['content'] %}\n {%- if content['type'] == 'image' %}\n {{- '<|image|>' }}\n {%- elif content['type'] == 'text' %}\n {{- content['text'] }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- \"[\" }}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- tool_call.name + '(' -}}\n {%- for param, needed in tool_call.arguments %}\n {{- param + '=\"' -}}\n {{- \"%s\" | format(tool_call.arguments[param]) -}}\n {{- '\"' -}}\n {% if not loop.last %}, {% endif %}\n {%- endfor %}\n {{- ')' -}}\n {% if not loop.last %}, {% endif %}\n {%- endfor %}\n {{- \"]<|eot|>\" }}\n{%- endif %}\n{#- Tool_response case: messages are from tool_response #}\n {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n {{- \"<|header_start|>ipython<|header_end|>\\n\\n\" }}\n {%- if message.content is string %}\n {{- message.content | tojson }}\n {%- else %}\n {%- for content in message['content'] %}\n {%- if content['type'] == 'text' %}\n {{- content['text'] | tojson }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- \"<|eot|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|header_start|>assistant<|header_end|>\\n\\n' }}\n{%- endif %}","stop":["<|eot|>","<|eom|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot|>"},"pricing":{"hourly":0,"input":0.18000000000000002,"output":0.5900000000000001,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepcogito/cogito-v1-preview-llama-8B","object":"model","created":1744128601,"type":"chat","running":false,"display_name":"Cogito V1 Preview Llama 8B","organization":"deepcogito","context_length":131072,"config":{"chat_template":"{{- bos_token }}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n{%- if not enable_thinking is defined %}\n {%- set enable_thinking = false %}\n{%- endif %}\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n{%- endif %}\n{#- Set the system message. If enable_thinking is true, add the \"Enable deep thinking subroutine.\" #}\n{%- if enable_thinking %}\n {%- if system_message != \"\" %}\n {%- set system_message = \"Enable deep thinking subroutine.\n\n\" ~ system_message %}\n {%- else %}\n {%- set system_message = \"Enable deep thinking subroutine.\" %}\n {%- endif %}\n{%- endif %}\n{#- Set the system message. In case there are tools present, add them to the system message. #}\n{%- if tools is not none or system_message != '' %}\n {{- \"<|start_header_id|>system<|end_header_id|>\n\n\" }}\n {{- system_message }}\n {%- if tools is not none %}\n {%- if system_message != \"\" %}\n {{- \"\n\n\" }}\n {%- endif %}\n {{- \"Available Tools:\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\n\n\" }}\n {%- endfor %}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n{%- endif %}\n\n{#- Rest of the messages #}\n{%- for message in messages %}\n {#- The special cases are when the message is from a tool (via role ipython/tool/tool_results) or when the message is from the assistant, but has \"tool_calls\". If not, we add the message directly as usual. #}\n {#- Case 1 - Usual, non tool related message. #}\n {%- if not (message.role == \"ipython\" or message.role == \"tool\" or message.role == \"tool_results\" or (message.tool_calls is defined and message.tool_calls is not none)) %}\n {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n' }}\n {%- if message['content'] is string %}\n {{- message['content'] | trim }}\n {%- else %}\n {%- for item in message['content'] %}\n {%- if item.type == 'text' %}\n {{- item.text | trim }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|eot_id|>' }}\n \n {#- Case 2 - the response is from the assistant, but has a tool call returned. The assistant may also have returned some content along with the tool call. #}\n {%- elif message.tool_calls is defined and message.tool_calls is not none %}\n {{- \"<|start_header_id|>assistant<|end_header_id|>\n\n\" }}\n {%- if message['content'] is string %}\n {{- message['content'] | trim }}\n {%- else %}\n {%- for item in message['content'] %}\n {%- if item.type == 'text' %}\n {{- item.text | trim }}\n {%- if item.text | trim != \"\" %}\n {{- \"\n\n\" }}\n {%- endif %}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- \"[\" }}\n {%- for tool_call in message.tool_calls %}\n {%- set out = tool_call.function|tojson %}\n {%- if not tool_call.id is defined %}\n {{- out }}\n {%- else %}\n {{- out[:-1] }}\n {{- ', \"id\": \"' + tool_call.id + '\"}' }}\n {%- endif %}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- else %}\n {{- \"]<|eot_id|>\" }}\n {%- endif %}\n {%- endfor %}\n \n {#- Case 3 - the response is from a tool call. The tool call may have an id associated with it as well. If it does, we add it to the prompt. #}\n {%- elif message.role == \"ipython\" or message[\"role\"] == \"tool_results\" or message[\"role\"] == \"tool\" %}\n {{- \"<|start_header_id|>ipython<|end_header_id|>\n\n\" }}\n {%- if message.tool_call_id is defined and message.tool_call_id != '' %}\n {{- '{\"content\": ' + (message.content | tojson) + ', \"call_id\": \"' + message.tool_call_id + '\"}' }}\n {%- else %}\n {{- '{\"content\": ' + (message.content | tojson) + '}' }}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' }}\n{%- endif %}","stop":["<|eot_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot_id|>","max_output_length":8192},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepcogito/cogito-v1-preview-qwen-32B","object":"model","created":1744128685,"type":"chat","running":false,"display_name":"Cogito V1 Preview Qwen 32B","organization":"deepcogito","context_length":131072,"config":{"chat_template":"{%- if not enable_thinking is defined %}\n {%- set enable_thinking = false %}\n{%- endif %}\n{%- if tools %}\n {{- \"<|im_start|>system\n\" }}\n {%- if messages[0]['role'] == 'system' %}\n {%- if enable_thinking %}\n {{- \"Enable deep thinking subroutine.\n\n\" + messages[0]['content'] + \"\n\n\" }}\n {%- else %}\n {{- messages[0]['content'] + \"\n\n\" }}\n {%- endif %}\n {%- elif enable_thinking %}\n {{- \"Enable deep thinking subroutine.\n\n\" }}\n {%- endif %}\n {{- \"# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- '\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n' }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {%- if enable_thinking %}\n {{- \"<|im_start|>system\n\" + \"Enable deep thinking subroutine.\n\n\" + messages[0]['content'] + \"<|im_end|>\n\" }}\n {%- else %}\n {{- \"<|im_start|>system\n\" + messages[0]['content'] + \"<|im_end|>\n\" }}\n {%- endif %}\n {%- elif enable_thinking %}\n {{- \"<|im_start|>system\n\" + \"Enable deep thinking subroutine.\" + \"<|im_end|>\n\" }}\n {%- endif %}\n{%- endif %}\n\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- elif message.content is iterable and message.content is not string %}\n {%- for content_item in message.content %}\n {%- if content_item.type == 'text' %}\n {{- content_item.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>' + '\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- elif message.content is iterable and message.content is not string %}\n {%- for content_item in message.content %}\n {%- if content_item.type == 'text' %}\n {{- content_item.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\n<tool_call>\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\n<tool_response>\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- elif message.content is iterable and message.content is not string %}\n {%- for content_item in message.content %}\n {%- if content_item.type == 'text' %}\n {{- content_item.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\n' }}\n{%- endif %}","stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>","max_output_length":8192},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepcogito/cogito-v1-preview-qwen-14B","object":"model","created":1744128691,"type":"chat","running":false,"display_name":"Cogito V1 Preview Qwen 14B","organization":"deepcogito","context_length":131072,"config":{"chat_template":"{%- if not enable_thinking is defined %}\n {%- set enable_thinking = false %}\n{%- endif %}\n{%- if tools %}\n {{- \"<|im_start|>system\n\" }}\n {%- if messages[0]['role'] == 'system' %}\n {%- if enable_thinking %}\n {{- \"Enable deep thinking subroutine.\n\n\" + messages[0]['content'] + \"\n\n\" }}\n {%- else %}\n {{- messages[0]['content'] + \"\n\n\" }}\n {%- endif %}\n {%- elif enable_thinking %}\n {{- \"Enable deep thinking subroutine.\n\n\" }}\n {%- endif %}\n {{- \"# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- '\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n' }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {%- if enable_thinking %}\n {{- \"<|im_start|>system\n\" + \"Enable deep thinking subroutine.\n\n\" + messages[0]['content'] + \"<|im_end|>\n\" }}\n {%- else %}\n {{- \"<|im_start|>system\n\" + messages[0]['content'] + \"<|im_end|>\n\" }}\n {%- endif %}\n {%- elif enable_thinking %}\n {{- \"<|im_start|>system\n\" + \"Enable deep thinking subroutine.\" + \"<|im_end|>\n\" }}\n {%- endif %}\n{%- endif %}\n\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- elif message.content is iterable and message.content is not string %}\n {%- for content_item in message.content %}\n {%- if content_item.type == 'text' %}\n {{- content_item.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>' + '\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- elif message.content is iterable and message.content is not string %}\n {%- for content_item in message.content %}\n {%- if content_item.type == 'text' %}\n {{- content_item.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\n<tool_call>\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\n<tool_response>\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- elif message.content is iterable and message.content is not string %}\n {%- for content_item in message.content %}\n {%- if content_item.type == 'text' %}\n {{- content_item.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\n' }}\n{%- endif %}","stop":["<|im_end|>"],"bos_token":"<|endoftext|>","eos_token":"<|im_end|>","max_output_length":8192},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepcogito/cogito-v1-preview-llama-70B","object":"model","created":1744128722,"type":"chat","running":false,"display_name":"Cogito V1 Preview Llama 70B","organization":"deepcogito","context_length":131072,"config":{"chat_template":"{{- bos_token }}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n{%- if not enable_thinking is defined %}\n {%- set enable_thinking = false %}\n{%- endif %}\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n{%- endif %}\n{#- Set the system message. If enable_thinking is true, add the \"Enable deep thinking subroutine.\" #}\n{%- if enable_thinking %}\n {%- if system_message != \"\" %}\n {%- set system_message = \"Enable deep thinking subroutine.\n\n\" ~ system_message %}\n {%- else %}\n {%- set system_message = \"Enable deep thinking subroutine.\" %}\n {%- endif %}\n{%- endif %}\n{#- Set the system message. In case there are tools present, add them to the system message. #}\n{%- if tools is not none or system_message != '' %}\n {{- \"<|start_header_id|>system<|end_header_id|>\n\n\" }}\n {{- system_message }}\n {%- if tools is not none %}\n {%- if system_message != \"\" %}\n {{- \"\n\n\" }}\n {%- endif %}\n {{- \"Available Tools:\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\n\n\" }}\n {%- endfor %}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n{%- endif %}\n\n{#- Rest of the messages #}\n{%- for message in messages %}\n {#- The special cases are when the message is from a tool (via role ipython/tool/tool_results) or when the message is from the assistant, but has \"tool_calls\". If not, we add the message directly as usual. #}\n {#- Case 1 - Usual, non tool related message. #}\n {%- if not (message.role == \"ipython\" or message.role == \"tool\" or message.role == \"tool_results\" or (message.tool_calls is defined and message.tool_calls is not none)) %}\n {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n' }}\n {%- if message['content'] is string %}\n {{- message['content'] | trim }}\n {%- else %}\n {%- for item in message['content'] %}\n {%- if item.type == 'text' %}\n {{- item.text | trim }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|eot_id|>' }}\n \n {#- Case 2 - the response is from the assistant, but has a tool call returned. The assistant may also have returned some content along with the tool call. #}\n {%- elif message.tool_calls is defined and message.tool_calls is not none %}\n {{- \"<|start_header_id|>assistant<|end_header_id|>\n\n\" }}\n {%- if message['content'] is string %}\n {{- message['content'] | trim }}\n {%- else %}\n {%- for item in message['content'] %}\n {%- if item.type == 'text' %}\n {{- item.text | trim }}\n {%- if item.text | trim != \"\" %}\n {{- \"\n\n\" }}\n {%- endif %}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- \"[\" }}\n {%- for tool_call in message.tool_calls %}\n {%- set out = tool_call.function|tojson %}\n {%- if not tool_call.id is defined %}\n {{- out }}\n {%- else %}\n {{- out[:-1] }}\n {{- ', \"id\": \"' + tool_call.id + '\"}' }}\n {%- endif %}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- else %}\n {{- \"]<|eot_id|>\" }}\n {%- endif %}\n {%- endfor %}\n \n {#- Case 3 - the response is from a tool call. The tool call may have an id associated with it as well. If it does, we add it to the prompt. #}\n {%- elif message.role == \"ipython\" or message[\"role\"] == \"tool_results\" or message[\"role\"] == \"tool\" %}\n {{- \"<|start_header_id|>ipython<|end_header_id|>\n\n\" }}\n {%- if message.tool_call_id is defined and message.tool_call_id != '' %}\n {{- '{\"content\": ' + (message.content | tojson) + ', \"call_id\": \"' + message.tool_call_id + '\"}' }}\n {%- else %}\n {{- '{\"content\": ' + (message.content | tojson) + '}' }}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' }}\n{%- endif %}","stop":["<|eot_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot_id|>","max_output_length":8192},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepcogito/cogito-v1-preview-llama-70B-Turbo","object":"model","created":1744154143,"type":"chat","running":false,"display_name":"Cogito V1 Preview Llama 70B Turbo","organization":"deepcogito","context_length":131072,"config":{"chat_template":"{{- bos_token }}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n{%- if not enable_thinking is defined %}\n {%- set enable_thinking = false %}\n{%- endif %}\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n{%- endif %}\n{#- Set the system message. If enable_thinking is true, add the \"Enable deep thinking subroutine.\" #}\n{%- if enable_thinking %}\n {%- if system_message != \"\" %}\n {%- set system_message = \"Enable deep thinking subroutine.\n\n\" ~ system_message %}\n {%- else %}\n {%- set system_message = \"Enable deep thinking subroutine.\" %}\n {%- endif %}\n{%- endif %}\n{#- Set the system message. In case there are tools present, add them to the system message. #}\n{%- if tools is not none or system_message != '' %}\n {{- \"<|start_header_id|>system<|end_header_id|>\n\n\" }}\n {{- system_message }}\n {%- if tools is not none %}\n {%- if system_message != \"\" %}\n {{- \"\n\n\" }}\n {%- endif %}\n {{- \"Available Tools:\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\n\n\" }}\n {%- endfor %}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n{%- endif %}\n\n{#- Rest of the messages #}\n{%- for message in messages %}\n {#- The special cases are when the message is from a tool (via role ipython/tool/tool_results) or when the message is from the assistant, but has \"tool_calls\". If not, we add the message directly as usual. #}\n {#- Case 1 - Usual, non tool related message. #}\n {%- if not (message.role == \"ipython\" or message.role == \"tool\" or message.role == \"tool_results\" or (message.tool_calls is defined and message.tool_calls is not none)) %}\n {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n' }}\n {%- if message['content'] is string %}\n {{- message['content'] | trim }}\n {%- else %}\n {%- for item in message['content'] %}\n {%- if item.type == 'text' %}\n {{- item.text | trim }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|eot_id|>' }}\n \n {#- Case 2 - the response is from the assistant, but has a tool call returned. The assistant may also have returned some content along with the tool call. #}\n {%- elif message.tool_calls is defined and message.tool_calls is not none %}\n {{- \"<|start_header_id|>assistant<|end_header_id|>\n\n\" }}\n {%- if message['content'] is string %}\n {{- message['content'] | trim }}\n {%- else %}\n {%- for item in message['content'] %}\n {%- if item.type == 'text' %}\n {{- item.text | trim }}\n {%- if item.text | trim != \"\" %}\n {{- \"\n\n\" }}\n {%- endif %}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- \"[\" }}\n {%- for tool_call in message.tool_calls %}\n {%- set out = tool_call.function|tojson %}\n {%- if not tool_call.id is defined %}\n {{- out }}\n {%- else %}\n {{- out[:-1] }}\n {{- ', \"id\": \"' + tool_call.id + '\"}' }}\n {%- endif %}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- else %}\n {{- \"]<|eot_id|>\" }}\n {%- endif %}\n {%- endfor %}\n \n {#- Case 3 - the response is from a tool call. The tool call may have an id associated with it as well. If it does, we add it to the prompt. #}\n {%- elif message.role == \"ipython\" or message[\"role\"] == \"tool_results\" or message[\"role\"] == \"tool\" %}\n {{- \"<|start_header_id|>ipython<|end_header_id|>\n\n\" }}\n {%- if message.tool_call_id is defined and message.tool_call_id != '' %}\n {{- '{\"content\": ' + (message.content | tojson) + ', \"call_id\": \"' + message.tool_call_id + '\"}' }}\n {%- else %}\n {{- '{\"content\": ' + (message.content | tojson) + '}' }}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' }}\n{%- endif %}","stop":["<|eot_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot_id|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2-72B-Instruct","uuid":"endpoint-2a5b2f2b-a027-465b-bfbc-768247460226","object":"model","created":1744167438,"type":"chat","running":false,"display_name":"Qwen2 72B Instruct","organization":"Togethercomputer","link":"https://huggingface.co/api/models/togethercomputer/Qwen2-72B-Instruct","license":"other tongyi-qianwen","context_length":32768,"config":{"chat_template":"{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n' }}{% endif %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}","stop":["<|im_start|>","<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0.9,"output":0.9,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-3.3-70B-Instruct","uuid":"model-b5b8af2b-d221-4c2c-9d47-4d10a3f7a838","object":"model","created":1744545240,"type":"chat","running":false,"display_name":"Meta Llama 3.3 70B Instruct","organization":"meta-llama","link":"https://huggingface.co/meta-llama/Llama-3.3-70B-Instruct","license":"llama3.3","context_length":131072,"config":{"chat_template":"{{- bos_token }}\n{%- if custom_tools is defined %}\n {%- set tools = custom_tools %}\n{%- endif %}\n{%- if not tools_in_user_message is defined %}\n {%- set tools_in_user_message = true %}\n{%- endif %}\n{%- if not date_string is defined %}\n {%- set date_string = \"26 Jul 2024\" %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n{%- endif %}\n\n{#- System message + builtin tools #}\n{{- \"<|start_header_id|>system<|end_header_id|>\\n\\n\" }}\n{%- if builtin_tools is defined or tools is not none %}\n {{- \"Environment: ipython\\n\" }}\n{%- endif %}\n{%- if builtin_tools is defined %}\n {{- \"Tools: \" + builtin_tools | reject('equalto', 'code_interpreter') | join(\", \") + \"\\n\\n\"}}\n{%- endif %}\n{{- \"Cutting Knowledge Date: December 2023\\n\" }}\n{{- \"Today Date: \" + date_string + \"\\n\\n\" }}\n{%- if tools is not none and not tools_in_user_message %}\n {{- \"You have access to the following functions. To call a function, please respond with JSON for a function call.\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n{%- endif %}\n{{- system_message }}\n{{- \"<|eot_id|>\" }}\n\n{#- Custom tools are passed in a user message with some extra guidance #}\n{%- if tools_in_user_message and not tools is none %}\n {#- Extract the first user message so we can plug it in here #}\n {%- if messages | length != 0 %}\n {%- set first_user_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n {%- else %}\n {{- raise_exception(\"Cannot put tools in the first user message when there's no first user message!\") }}\n{%- endif %}\n {{- '<|start_header_id|>user<|end_header_id|>\\n\\n' -}}\n {{- \"Given the following functions, please respond with a JSON for a function call \" }}\n {{- \"with its proper arguments that best answers the given prompt.\\n\\n\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n {{- first_user_message + \"<|eot_id|>\"}}\n{%- endif %}\n\n{%- for message in messages %}\n {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}\n {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n'+ message['content'] | trim + '<|eot_id|>' }}\n {%- elif 'tool_calls' in message %}\n {%- if not message.tool_calls|length == 1 %}\n {{- raise_exception(\"This model only supports single tool-calls at once!\") }}\n {%- endif %}\n {%- set tool_call = message.tool_calls[0].function %}\n {%- if builtin_tools is defined and tool_call.name in builtin_tools %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- \"<|python_tag|>\" + tool_call.name + \".call(\" }}\n {%- for arg_name, arg_val in tool_call.arguments | items %}\n {{- arg_name + '=\"' + arg_val + '\"' }}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- endif %}\n {%- endfor %}\n {{- \")\" }}\n {%- else %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- '{\"name\": \"' + tool_call.name + '\", ' }}\n {{- '\"parameters\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- \"}\" }}\n {%- endif %}\n {%- if builtin_tools is defined %}\n {#- This means we're in ipython mode #}\n {{- \"<|eom_id|>\" }}\n {%- else %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n {{- \"<|start_header_id|>ipython<|end_header_id|>\\n\\n\" }}\n {%- if message.content is mapping or message.content is iterable %}\n {{- message.content | tojson }}\n {%- else %}\n {{- message.content }}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' }}\n{%- endif %}","stop":["<|eot_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot_id|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-32B","object":"model","created":1744695057,"type":"chat","running":false,"display_name":"Qwen2.5 32B","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen2.5-32B","license":"apache-2.0","context_length":131072,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-72B","object":"model","created":1744695107,"type":"chat","running":false,"display_name":"Qwen2.5 72B","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen2.5-72B","license":"other qwen","context_length":131072,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-3B-Instruct","object":"model","created":1744695138,"type":"chat","running":false,"display_name":"Qwen2.5 3B Instruct","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen2.5-3B-Instruct","license":"other qwen-research","context_length":32768,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-1.5B-Instruct","object":"model","created":1744695182,"type":"chat","running":false,"display_name":"Qwen2.5 1.5B Instruct","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen2.5-1.5B-Instruct","license":"apache-2.0","context_length":32768,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-14B","object":"model","created":1744695237,"type":"chat","running":false,"display_name":"Qwen2.5 14B","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen2.5-14B","license":"apache-2.0","context_length":131072,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-7B","object":"model","created":1744695357,"type":"chat","running":false,"display_name":"Qwen2.5 7B","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen2.5-7B","license":"apache-2.0","context_length":131072,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-1.5B","object":"model","created":1744695368,"type":"chat","running":false,"display_name":"Qwen2.5 1.5B","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen2.5-1.5B","license":"apache-2.0","context_length":131072,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Meta-Llama-3.1-70B","object":"model","created":1744695371,"type":"chat","running":false,"display_name":"Llama 3.1 70B","organization":"Meta","link":"https://huggingface.co/api/models/meta-llama/Llama-3.1-70B","license":"llama3.1","context_length":131072,"config":{"chat_template":null,"stop":["<|end_of_text|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|end_of_text|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-3.2-1B","object":"model","created":1744695381,"type":"chat","running":false,"display_name":"Llama 3.2 1B","organization":"Meta","link":"https://huggingface.co/api/models/meta-llama/Llama-3.2-1B","license":"llama3.2","context_length":131072,"config":{"chat_template":null,"stop":["<|end_of_text|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|end_of_text|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-7B-Instruct","object":"model","created":1744695400,"type":"chat","running":false,"display_name":"Qwen2.5 7B Instruct","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen2.5-7B-Instruct","license":"apache-2.0","context_length":32768,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen2.5-32B-Instruct","object":"model","created":1744695404,"type":"chat","running":false,"display_name":"Qwen2.5 32B Instruct","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen2.5-32B-Instruct","license":"apache-2.0","context_length":32768,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n","stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-3.1-405B","object":"model","created":1744844058,"type":"chat","running":false,"display_name":"Llama 3.1 405B","organization":"Meta","link":"https://huggingface.co/api/models/meta-llama/Llama-3.1-405B","license":"llama3.1","context_length":131072,"config":{"chat_template":null,"stop":["<|end_of_text|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|end_of_text|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"agentica-org/DeepCoder-14B-Preview","object":"model","created":1746765219,"type":"chat","running":false,"display_name":"Deepcoder 14B Preview","organization":"Togethercomputer","link":"https://huggingface.co/api/models/togethercomputer/DeepCoder-14B-Preview","license":"mit","context_length":131072,"config":{"chat_template":null,"stop":["<|end▁of▁sentence|>"],"bos_token":"<|begin▁of▁sentence|>","eos_token":"<|end▁of▁sentence|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"mistralai/Mistral-7B-v0.1","uuid":"model-70b142e2-ab21-4fd7-a429-a744d42c5483","object":"model","created":1747775387,"type":"chat","running":false,"display_name":"Mistral 7B v0.1","organization":"Mistralai","link":"https://huggingface.co/api/models/mistralai/Mistral-7B-v0.1","license":"apache-2.0","context_length":32768,"config":{"chat_template":null,"stop":["</s>"],"bos_token":"<s>","eos_token":"</s>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"mistralai/Devstral-Small-2505","object":"model","created":1747804209,"type":"chat","running":false,"display_name":"Devstral Small 2505","organization":"Mistralai","link":"https://huggingface.co/api/models/togethercomputer/Devstral-Small-2505","license":"apache-2.0","context_length":131072,"config":{"chat_template":null,"stop":["</s>"],"bos_token":"<s>","eos_token":"</s>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"mistralai/Mixtral-8x22B-Instruct-v0.1","object":"model","created":1748320270,"type":"chat","running":false,"display_name":"Mixtral 8X22b Instruct V0.1","organization":"Mistralai","link":"https://huggingface.co/api/models/mistralai/Mixtral-8x22B-Instruct-v0.1","license":"apache-2.0","context_length":65536,"config":{"chat_template":null,"stop":["</s>"],"bos_token":"<s>","eos_token":"</s>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"allenai/Molmo-7B-D-0924","object":"model","created":1748451330,"type":"chat","running":false,"display_name":"Molmo 7B D 0924","organization":"Allenai","link":"https://huggingface.co/api/models/allenai/Molmo-7B-D-0924","license":"apache-2.0","context_length":4096,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-8B","object":"model","created":1748452111,"type":"chat","running":false,"display_name":"Qwen3 8B","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-8B","license":"apache-2.0","context_length":40960,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-14B","object":"model","created":1748453216,"type":"chat","running":false,"display_name":"Qwen3 14B","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-14B","license":"apache-2.0","context_length":2048,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-0.6B","object":"model","created":1749059215,"type":"chat","running":false,"display_name":"Qwen3 0.6B","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-0.6B","license":"apache-2.0","context_length":40960,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-0.6B-Base","object":"model","created":1749059218,"type":"language","running":false,"display_name":"Qwen3 0.6B Base","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-0.6B-Base","license":"apache-2.0","context_length":32768,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-1.7B","object":"model","created":1749059220,"type":"chat","running":false,"display_name":"Qwen3 1.7B","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-1.7B","license":"apache-2.0","context_length":40960,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-1.7B-Base","object":"model","created":1749059223,"type":"language","running":false,"display_name":"Qwen3 1.7B Base","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-1.7B-Base","license":"apache-2.0","context_length":32768,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-4B-Base","object":"model","created":1749059228,"type":"language","running":false,"display_name":"Qwen3 4B Base","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-4B-Base","license":"apache-2.0","context_length":32768,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-14B-Base","object":"model","created":1749059231,"type":"language","running":false,"display_name":"Qwen3 14B Base","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-14B-Base","license":"apache-2.0","context_length":32768,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-30B-A3B","object":"model","created":1749059233,"type":"chat","running":false,"display_name":"Qwen3 30B A3b","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-30B-A3B","license":"apache-2.0","context_length":40960,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-30B-A3B-Base","object":"model","created":1749059236,"type":"language","running":false,"display_name":"Qwen3 30B A3b Base","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-30B-A3B-Base","license":"apache-2.0","context_length":32768,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-2b-it","object":"model","created":1749442258,"type":"chat","running":false,"display_name":"Gemma 2B It","organization":"Google","link":"https://huggingface.co/api/models/google/gemma-2b-it","license":"gemma","context_length":8192,"config":{"chat_template":"{{ bos_token }}{% if messages[0]['role'] == 'system' %}{{ raise_exception('System role not supported') }}{% endif %}{% for message in messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if (message['role'] == 'assistant') %}{% set role = 'model' %}{% else %}{% set role = message['role'] %}{% endif %}{{ '<start_of_turn>' + role + '\n' + message['content'] | trim + '<end_of_turn>\n' }}{% endfor %}{% if add_generation_prompt %}{{'<start_of_turn>model\n'}}{% endif %}","stop":["<eos>"],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-2-9b-it","object":"model","created":1749442480,"type":"chat","running":false,"display_name":"Gemma 2 9B It","organization":"Google","link":"https://huggingface.co/api/models/google/gemma-2-9b-it","license":"gemma","context_length":8192,"config":{"chat_template":"{{ bos_token }}{% if messages[0]['role'] == 'system' %}{{ raise_exception('System role not supported') }}{% endif %}{% for message in messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if (message['role'] == 'assistant') %}{% set role = 'model' %}{% else %}{% set role = message['role'] %}{% endif %}{{ '<start_of_turn>' + role + '\n' + message['content'] | trim + '<end_of_turn>\n' }}{% endfor %}{% if add_generation_prompt %}{{'<start_of_turn>model\n'}}{% endif %}","stop":["<eos>"],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"BAAI/bge-base-en-v1.5","uuid":"endpoint-9a567e7b-15a8-40b7-b8b1-b5ae0f2163aa","object":"model","created":1749601524,"type":"embedding","running":false,"display_name":"BAAI-Bge-Base-1.5","organization":"BAAI","link":"https://huggingface.co/api/models/BAAI/bge-base-en-v1.5","license":"MIT","context_length":512,"config":{"chat_template":null,"stop":[],"bos_token":"[PAD]","eos_token":null},"pricing":{"hourly":0,"input":0.008,"output":0.008,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-4-Scout-17B-16E","object":"model","created":1749624034,"type":"chat","running":false,"display_name":"Llama 4 Scout (17Bx16E)","organization":"Meta","link":"https://huggingface.co/api/models/meta-llama/Llama-4-Scout-17B-16E","license":"other llama4","context_length":262144,"config":{"chat_template":"{{- bos_token }}\n{%- if custom_tools is defined %}\n {%- set tools = custom_tools %}\n{%- endif %}\n{%- if not tools_in_user_message is defined %}\n {%- set tools_in_user_message = true %}\n{%- endif %}\n{%- if not date_string is defined %}\n {%- if strftime_now is defined %}\n {%- set date_string = strftime_now(\"%d %b %Y\") %}\n {%- else %}\n {%- set date_string = \"26 Jul 2024\" %}\n {%- endif %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %} \n {%- if messages[0]['content'] is string %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- else %}\n {#- FIXME: The processor requires an array, always. #}\n {%- set system_message = messages[0]['content'][0]['text']|trim %}\n {%- endif %}\n {%- set messages = messages[1:] %}\n {%- set user_supplied_system_message = true %}\n{%- else %}\n {%- set system_message = \"\" %}\n {%- set user_supplied_system_message = false %}\n{%- endif %}\n\n{#- System message if the user supplied one #}\n{%- if user_supplied_system_message %}\n {{- \"<|header_start|>system<|header_end|>\n\n\" }}\n {%- if tools is not none %}\n {{- \"Environment: ipython\n\" }}\n {%- endif %}\n {%- if tools is not none and not tools_in_user_message %}\n {{- \"You have access to the following functions. To call a function, please respond with JSON for a function call.\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\n\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\n\n\" }}\n {%- endfor %}\n {%- endif %}\n {{- system_message }}\n {{- \"<|eot|>\" }}\n{%- endif %}\n\n{#- Custom tools are passed in a user message with some extra guidance #}\n{%- if tools_in_user_message and not tools is none %}\n {#- Extract the first user message so we can plug it in here #}\n {%- if messages | length != 0 %}\n {%- set first_user_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n {%- else %}\n {{- raise_exception(\"Cannot put tools in the first user message when there's no first user message!\") }}\n{%- endif %}\n {{- '<|header_start|>user<|header_end|>\n\n' -}}\n {{- \"Given the following functions, please respond with a JSON for a function call \" }}\n {{- \"with its proper arguments that best answers the given prompt.\n\n\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\n\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\n\n\" }}\n {%- endfor %}\n {{- first_user_message + \"<|eot|>\"}}\n{%- endif %}\n\n{%- for message in messages %}\n {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}\n {{- '<|header_start|>' + message['role'] + '<|header_end|>\n\n' }}\n {%- if message['content'] is string %}\n {{- message['content'] }}\n {%- else %}\n {%- for content in message['content'] %}\n {%- if content['type'] == 'image' %}\n {{- '<|image|>' }}\n {%- elif content['type'] == 'text' %}\n {{- content['text'] }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- \"<|eot|>\" }}\n {%- elif 'tool_calls' in message and message.tool_calls|length > 0 %}\n {{- '<|header_start|>assistant<|header_end|>\n\n' -}}\n {{- '<|python_start|>' }}\n {%- if message['content'] is string %}\n {{- message['content'] }}\n {%- else %}\n {%- for content in message['content'] %}\n {%- if content['type'] == 'image' %}\n {{- '<|image|>' }}\n {%- elif content['type'] == 'text' %}\n {{- content['text'] }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|python_end|>' }}\n {%- for tool_call in message.tool_calls %}\n {{- '{\"name\": \"' + tool_call.function.name + '\", ' }}\n {{- '\"parameters\": ' }}\n {{- tool_call.function.arguments | tojson }}\n {{- \"}\" }}\n {%- endfor %}\n {{- \"<|eot|>\" }}\n {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n {{- \"<|header_start|>ipython<|header_end|>\n\n\" }}\n {%- if message.content is mapping or message.content is iterable %}\n {{- message.content | tojson }}\n {%- else %}\n {{- message.content }}\n {%- endif %}\n {{- \"<|eot|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|header_start|>assistant<|header_end|>\n\n' }}\n{%- endif %}\n","stop":["<|eot|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"mistralai/Magistral-Small-2506","object":"model","created":1749674059,"type":"chat","running":false,"display_name":"Magistral Small 2506","organization":"Mistralai","link":"https://huggingface.co/api/models/mistralai/Magistral-Small-2506","license":"apache-2.0","context_length":40960,"config":{"chat_template":null,"stop":[""],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"MiniMaxAI/MiniMax-M1-40k","object":"model","created":1750710988,"type":"chat","running":false,"display_name":"Minimax M1 40K","organization":"MiniMaxAI","link":"https://huggingface.co/api/models/togethercomputer/MiniMax-M1-40k","license":"apache-2.0","context_length":1048576,"config":{"chat_template":"{{ '<begin_of_document>' -}}{% set system_prompt='' -%}{% for message in messages -%}{% if message['role'] == 'system' -%}{% set system_prompt = system_prompt + message['content'] -%}{% endif -%}{%- endfor -%}{% if system_prompt != '' -%}{{ '<beginning_of_sentence>system ai_setting=assistant\n' + system_prompt + '<end_of_sentence>\n' -}}{%- endif -%}{% if tools -%}{{ '<beginning_of_sentence>system tool_setting=tools\nYou are provided with these tools:\n<tools>\n' -}}{% for tool in tools -%}{{ tool | tojson({indent:1}) | removenewlines ~ '\n' -}}{%- endfor -%}{{ '</tools>\n\nIf you need to call tools, please respond with <tool_calls></tool_calls> XML tags, and provide tool-name and json-object of arguments, following the format below:\n<tool_calls>\n{\"name\": <tool-name-1>, \"arguments\": <args-json-object-1>}\n...\n</tool_calls><end_of_sentence>\n' -}}{%- endif -%}{% for message in messages -%}{% if message['role'] == 'user' -%}{{ '<beginning_of_sentence>user name=user\n' + message['content'] + '<end_of_sentence>\n' -}}{% elif message['role'] == 'assistant' -%}{{ '<beginning_of_sentence>ai name=assistant\n' -}}{% for content in message['content'] | selectattr('type', 'equalto', 'text') -%}{{ content['text'] -}}{%- endfor -%}{{ '<end_of_sentence>\n' -}}{% elif message['role'] == 'tool' -%}{{ '<beginning_of_sentence>tool name=tools\n' }} {%- for content in message['content'] -%}{{- 'tool name: ' + content['name'] + '\n' + 'tool result: ' + content['text'] + '\n\n' -}} {%- endfor -%}{{- '<end_of_sentence>\n' -}}{% endif -%}{%- endfor -%}{% if add_generation_prompt -%}{{ '<beginning_of_sentence>ai name=assistant\n' -}}{%- endif -%}","stop":["<end_of_sentence>"],"bos_token":"<beginning_of_sentence>","eos_token":"<end_of_sentence>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"MiniMaxAI/MiniMax-M1-80k","object":"model","created":1751078602,"type":"chat","running":false,"display_name":"Minimax M1 80K","organization":"MiniMaxAI","link":"https://huggingface.co/api/models/togethercomputer/MiniMax-M1-80k","license":"apache-2.0","context_length":1048576,"config":{"chat_template":"{{ '<begin_of_document>' -}}{% set system_prompt='' -%}{% for message in messages -%}{% if message['role'] == 'system' -%}{% set system_prompt = system_prompt + message['content'] -%}{% endif -%}{%- endfor -%}{% if system_prompt != '' -%}{{ '<beginning_of_sentence>system ai_setting=assistant\n' + system_prompt + '<end_of_sentence>\n' -}}{%- endif -%}{% if tools -%}{{ '<beginning_of_sentence>system tool_setting=tools\nYou are provided with these tools:\n<tools>\n' -}}{% for tool in tools -%}{{ tool | tojson({indent:1}) | removenewlines ~ '\n' -}}{%- endfor -%}{{ '</tools>\n\nIf you need to call tools, please respond with <tool_calls></tool_calls> XML tags, and provide tool-name and json-object of arguments, following the format below:\n<tool_calls>\n{\"name\": <tool-name-1>, \"arguments\": <args-json-object-1>}\n...\n</tool_calls><end_of_sentence>\n' -}}{%- endif -%}{% for message in messages -%}{% if message['role'] == 'user' -%}{{ '<beginning_of_sentence>user name=user\n' + message['content'] + '<end_of_sentence>\n' -}}{% elif message['role'] == 'assistant' -%}{{ '<beginning_of_sentence>ai name=assistant\n' -}}{% for content in message['content'] | selectattr('type', 'equalto', 'text') -%}{{ content['text'] -}}{%- endfor -%}{{ '<end_of_sentence>\n' -}}{% elif message['role'] == 'tool' -%}{{ '<beginning_of_sentence>tool name=tools\n' }} {%- for content in message['content'] -%}{{- 'tool name: ' + content['name'] + '\n' + 'tool result: ' + content['text'] + '\n\n' -}} {%- endfor -%}{{- '<end_of_sentence>\n' -}}{% endif -%}{%- endfor -%}{% if add_generation_prompt -%}{{ '<beginning_of_sentence>ai name=assistant\n' -}}{%- endif -%}","stop":["<end_of_sentence>"],"bos_token":"<beginning_of_sentence>","eos_token":"<end_of_sentence>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"mistralai/Mixtral-8x7B-v0.1","object":"model","created":1752016524,"type":"language","running":false,"display_name":"Mixtral 8X7b V0.1","organization":"mistralai","link":"https://huggingface.co/api/models/mistralai/Mixtral-8x7B-v0.1","license":"apache-2.0","context_length":32768,"config":{"chat_template":null,"stop":["</s>"],"bos_token":"<s>","eos_token":"</s>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"togethercomputer/meta-llama-3.1-8B-Instruct-AWQ-INT4","object":"model","created":1752128301,"type":"chat","running":false,"display_name":"Meta Llama 3.1 8B Instruct Awq Int4","organization":"Meta","link":"https://huggingface.co/api/models/togethercomputer/meta-llama-3.1-8B-Instruct-AWQ-INT4","license":"llama3.1","context_length":131072,"config":{"chat_template":null,"stop":["<|eot_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot_id|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"sarvamai/sarvam-m","uuid":"model-cc4d92e1-251f-4fce-801c-66fd3c0ec511","object":"model","created":1752174718,"type":"chat","running":false,"display_name":"Sarvam M","organization":"Sarvamai","link":"https://huggingface.co/api/models/sarvamai/sarvam-m","license":"apache-2.0","context_length":32768,"config":{"chat_template":null,"stop":["</s>"],"bos_token":"<s>","eos_token":"</s>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepseek-ai/DeepSeek-R1-0528","object":"model","created":1752475276,"type":"chat","running":false,"display_name":"DeepSeek R1 0528 NVFP4","organization":"Deepseek","link":"https://huggingface.co/api/models/deepseek-ai/DeepSeek-R1-0528","license":"mit","context_length":163840,"config":{"chat_template":"{%- for message in messages -%}{%- if message.role == 'system' -%}{{- message.content -}}{%- endif -%}{%- if message.role == 'user' -%}{{- message.content -}}{%- endif -%}{%- if message.role == 'assistant' -%}{{- message.content -}}{%- endif -%}{%- if message.role == 'tool' -%}{{- message.content -}}{%- endif -%}{%- endfor -%}","stop":["<|end▁of▁sentence|>"],"bos_token":"<|begin▁of▁sentence|>","eos_token":"<|end▁of▁sentence|>","max_output_length":12288},"pricing":{"hourly":0,"input":3,"output":7,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-32B","object":"model","created":1752778157,"type":"chat","running":false,"display_name":"Qwen3 32B","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-32B","license":"apache-2.0","context_length":40960,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8","uuid":"endpoint-4d37b937-890b-403a-bd2b-3d30b620254d","object":"model","created":1753233591,"type":"chat","running":false,"display_name":"Qwen3 Coder 480B A35B Instruct Fp8","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":"<|endoftext|>","eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":2,"output":2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507-FP8","object":"model","created":1753813799,"type":"chat","running":false,"display_name":"Qwen3 235B A22b Instruct 2507 Fp8","link":"https://huggingface.co/api/models/Qwen/Qwen3-235B-A22B-Instruct-2507-FP8","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"zai-org/GLM-4.5-Air-FP8","uuid":"endpoint-f3be971a-78f5-4a96-b7d3-3b11ba717fbc","object":"model","created":1753840897,"type":"chat","running":false,"display_name":"Glm 4.5 Air Fp8","organization":"Zai Org","link":"https://huggingface.co/api/models/zai-org/GLM-4.5-Air-FP8","license":"mit","context_length":131072,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0.2,"output":1.1,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","object":"model","created":1754023367,"type":"chat","running":false,"display_name":"Qwen3 Coder 30B A3b Instruct","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-Coder-30B-A3B-Instruct","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-4B-Instruct-2507","uuid":"model-039c8a49-bbdb-4074-9403-5c0ee5783fc8","object":"model","created":1754614031,"type":"chat","running":false,"display_name":"Qwen3 4B Instruct 2507","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-4B-Instruct-2507","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-8B-Base","object":"model","created":1755021131,"type":"language","running":false,"display_name":"Qwen3 8B Base","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-8B-Base","license":"apache-2.0","context_length":32768,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepseek-ai/DeepSeek-V3.1","uuid":"endpoint-3aeb420a-6f30-485f-a486-a854d1c87136","object":"model","created":1774480496,"type":"chat","running":false,"display_name":"Deepseek V3.1 NVFP4","organization":"DeepSeek","link":"https://huggingface.co/deepseek-ai/DeepSeek-V3.1","license":"mit","context_length":131072,"config":{"chat_template":null,"stop":["<|end▁of▁sentence|>"],"bos_token":"<|begin▁of▁sentence|>","eos_token":"<|end▁of▁sentence|>","max_output_length":40000},"pricing":{"hourly":0,"input":0.6,"output":1.7,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","uuid":"endpoint-acf17972-4582-4b74-9ecc-6081ee0c1169","object":"model","created":0,"type":"chat","running":false,"display_name":"Qwen3 Next 80B A3b Instruct","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-Next-80B-A3B-Instruct","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0.15,"output":1.5,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","uuid":"endpoint-fa0bc342-7693-43fa-860d-5b1e9011608f","object":"model","created":1757604143,"type":"chat","running":false,"display_name":"Qwen3 Next 80B A3b Thinking","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-Next-80B-A3B-Thinking","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0.15,"output":1.5,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"zai-org/GLM-4.5V","object":"model","created":1758063708,"type":"chat","running":false,"display_name":"GLM 4.5V","organization":"Zai Org","link":"https://huggingface.co/api/models/zai-org/GLM-4.5V","license":"mit","context_length":65536,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nvidia/NVIDIA-Nemotron-Nano-9B-v2","object":"model","created":1758138256,"type":"chat","running":false,"display_name":"Nvidia Nemotron Nano 9B V2","organization":"Nvidia","link":"https://huggingface.co/api/models/nvidia/NVIDIA-Nemotron-Nano-9B-v2","license":"other nvidia-open-model-license","context_length":131072,"config":{"chat_template":null,"stop":["<SPECIAL_12>"],"bos_token":"<s>","eos_token":"<SPECIAL_12>"},"pricing":{"hourly":0,"input":0.060000000000000005,"output":0.25,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct-FP8","object":"model","created":1758748745,"type":"chat","running":false,"display_name":"Qwen3 Next 80B A3b Instruct Fp8","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-Next-80B-A3B-Instruct-FP8","license":"apache-2.0","context_length":0,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-3-270m-it","object":"model","created":1759265684,"type":"chat","running":false,"display_name":"Gemma 3 270M It","organization":"Google","link":"https://huggingface.co/api/models/google/gemma-3-270m-it","license":"gemma","context_length":32768,"config":{"chat_template":null,"stop":[],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"facebook/cwm","object":"model","created":1760032935,"type":"code","running":false,"display_name":"Facebook CWM","organization":"Meta","link":"https://huggingface.co/api/models/togethercomputer/facebook-cwm","license":"fair-noncommercial-research-license","context_length":131072,"config":{"chat_template":null,"stop":[],"bos_token":"<|begin_of_text|>","eos_token":"<|end_of_text|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-VL-8B-Instruct","uuid":"endpoint-b3429766-6305-438b-9811-0cdf45318b15","object":"model","created":0,"type":"chat","running":false,"display_name":"Qwen3-VL-8B-Instruct","organization":"Qwen","link":"https://huggingface.co/Qwen/Qwen3-VL-8B-Instruct","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0.18000000000000002,"output":0.68,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"zai-org/GLM-4.6","uuid":"endpoint-dfa0b2d9-167c-4cea-b317-94f779bcb204","object":"model","created":1761236990,"type":"chat","running":false,"display_name":"GLM 4.6 Fp8","organization":"Zai Org","link":"https://huggingface.co/api/models/zai-org/GLM-4.6-FP8","license":"mit","context_length":202752,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0.6,"output":2.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"mixedbread-ai/mxbai-rerank-large-v2","uuid":"model-90cd118d-449e-4891-968c-717c7bdac98b","object":"model","created":1761254818,"type":"rerank","running":false,"display_name":"Mxbai Rerank Large V2","organization":"Mixedbread AI","context_length":32768,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/medgemma-27b-text-it","object":"model","created":1761265247,"type":"chat","running":false,"display_name":"Medgemma 27B Text It","organization":"Google","link":"https://huggingface.co/api/models/google/medgemma-27b-text-it","license":"other health-ai-developer-foundations","context_length":131072,"config":{"chat_template":null,"stop":[],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-VL-32B-Instruct","uuid":"endpoint-d4458597-6551-42b4-8611-87286e67d570","object":"model","created":1761433877,"type":"chat","running":false,"display_name":"Qwen3-VL-32B-Instruct","organization":"Qwen","link":"https://huggingface.co/Qwen/Qwen3-VL-32B-Instruct","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0.5,"output":1.5,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"MiniMaxAI/MiniMax-M2","uuid":"model-c0ea21e8-de8a-4c28-b33a-743082283c56","object":"model","created":1761687398,"type":"chat","running":false,"display_name":"MiniMax M2","organization":"MiniMaxAI","link":"https://huggingface.co/MiniMaxAI/MiniMax-M2","license":"mit","context_length":196608,"config":{"chat_template":"{# ----------‑‑‑ special token variables ‑‑‑---------- #}\n{%- set toolcall_begin_token = '<minimax:tool_call>' -%}\n{%- set toolcall_end_token = '</minimax:tool_call>' -%}\n{#- Tool Rendering Functions ============================================== -#}\n{%- macro render_tool_namespace(namespace_name, tool_list) -%}\n{%- for tool in tool_list -%}\n<tool>{{ tool.function | tojson(ensure_ascii=False) }}</tool>\n{% endfor -%}\n{%- endmacro -%}\n{%- macro visible_text(content) -%}\n {%- if content is string -%}\n {{ content }}\n {%- elif content is iterable and content is not mapping -%}\n {%- for item in content -%}\n {%- if item is mapping and item.type == 'text' -%}\n {{- item.text }}\n {%- elif item is string -%}\n {{- item }}\n {%- endif -%}\n {%- endfor -%}\n {%- else -%}\n {{- content }}\n {%- endif -%}\n{%- endmacro -%}\n{#- System Message Construction ============================================ -#}\n{%- macro build_system_message(system_message) -%}\n {%- if system_message and system_message.content -%}\n {{- visible_text(system_message.content) }}\n {%- else -%}\n {%- if model_identity is not defined -%}\n {%- set model_identity = \"You are a helpful assistant.\" -%}\n {%- endif -%}\n {{- model_identity }}\n {%- endif -%}\n \n {#- Handle current_date -#}\n {%- if system_message and system_message.current_date -%}\n {{- '\\n' ~ 'Current date: ' + system_message.current_date }}\n {%- endif -%}\n {#- Handle current_location -#}\n {%- if system_message and system_message.current_location -%}\n {{- '\\n' ~ 'Current location: ' + system_message.current_location }}\n {%- endif -%}\n{%- endmacro -%}\n{#- Main Template Logic ================================================= -#}\n{#- Extract system message (only first message if it's system) -#}\n{%- set system_message = none -%}\n{%- set conversation_messages = messages -%}\n{%- if messages and messages[0].role == \"system\" -%}\n {%- set system_message = messages[0] -%}\n {%- set conversation_messages = messages[1:] -%}\n{%- endif -%}\n{#- Get the last user message turn, for interleved thinking -#}\n{%- set ns = namespace(last_user_index=-1) %}\n{% for m in conversation_messages %}\n {%- if m.role == 'user' %}\n {% set ns.last_user_index = loop.index0 -%}\n {%- endif %}\n{%- endfor %}\n{#- Render system message -#}\n{{- ']~!b[' ~ ']~b]system' ~ '\\n' }}\n{{- build_system_message(system_message) }}\n{#- Render tools if available -#}\n{%- if tools -%}\n {{- '\\n\\n' ~ '# Tools' ~ '\\n' ~ 'You may call one or more tools to assist with the user query.\\nHere are the tools available in JSONSchema format:' ~ '\\n' }}\n {{- '\\n' ~ '<tools>' ~ '\\n' }}\n {{- render_tool_namespace(\"functions\", tools) }}\n {{- '</tools>' ~ '\\n\\n' }}\n{{- 'When making tool calls, use XML format to invoke tools and pass parameters:' ~ '\\n' }}\n{{- '\\n' ~ toolcall_begin_token }}\n<invoke name=\"tool-name-1\">\n<parameter name=\"param-key-1\">param-value-1</parameter>\n<parameter name=\"param-key-2\">param-value-2</parameter>\n...\n</invoke>\n{{- '\\n' ~ toolcall_end_token }}\n{%- endif -%}\n{{- '[e~[\\n' }}\n\n{#- Render messages -#}\n{%- set last_tool_call = namespace(name=none) -%}\n{%- for message in conversation_messages -%}\n {%- if message.role == 'assistant' -%}\n {#- Only render reasoning_content if no user message follows -#}\n {{- ']~b]ai' ~ '\\n' }}\n\n {%- set reasoning_content = '' %}\n {%- set content = visible_text(message.content) %}\n {%- if message.reasoning_content is string %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '</think>' in content %}\n {%- set reasoning_content = content.split('</think>')[0].strip('\\n').split('<think>')[-1].strip('\\n') %}\n {%- set content = content.split('</think>')[-1].strip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- if reasoning_content and loop.index0 > ns.last_user_index -%}\n {{- '<think>' ~ '\\n' ~ reasoning_content ~ '\\n' ~ '</think>' ~ '\\n\\n' }}\n {%- endif -%}\n {%- if content -%}\n {{- content }}\n {%- endif -%}\n {%- if message.tool_calls -%}\n {{- '\\n' ~ toolcall_begin_token ~ '\\n' }}\n\n {%- for tool_call in message.tool_calls -%}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<invoke name=\"' + tool_call.name + '\">' }}\n {% set _args = tool_call.arguments %}\n {%- for k, v in _args.items() %}\n {{- '<parameter name=\"' + k + '\">' }}\n {{- v | tojson(ensure_ascii=False) if v is not string else v }}\n {{- '</parameter>' }}\n {% endfor %}\n {{- '</invoke>' ~ '\\n' }}\n {%- endfor -%}\n \n {{- toolcall_end_token}}\n {%- set last_tool_call.name = message.tool_calls[-1].name -%}\n {%- else -%}\n {%- set last_tool_call.name = none -%}\n {%- endif -%}\n {{- '[e~[' ~ '\\n' }}\n \n {%- elif message.role == 'tool' -%}\n {%- if last_tool_call.name is none -%}\n {{- raise_exception(\"Message has tool role, but there was no previous assistant message with a tool call!\") }}\n {%- endif -%}\n {%- if loop.first or (conversation_messages[loop.index0 - 1].role != 'tool') -%}\n {{- ']~b]tool' }}\n {%- endif -%}\n {%- if message.content is string -%}\n {{- '\\n<response>' }}\n {{- message.content }}\n {{- '</response>' }}\n {%- else -%}\n {%- for tr in message.content -%}\n {{- '\\n<response>' }}\n {{- tr.output if tr.output is defined else (tr.text if tr.type == 'text' and tr.text is defined else tr) }}\n {{- '\\n</response>' }}\n {%- endfor -%}\n {%- endif -%}\n {%- if loop.last or (conversation_messages[loop.index0 + 1].role != 'tool') -%}\n {{- '[e~[\\n' -}}\n {%- endif -%}\n \n {%- elif message.role == 'user' -%}\n {{- ']~b]user' ~ '\\n' }}\n {{- visible_text(message.content) }}\n {{- '[e~[' ~ '\\n' }}\n {%- endif -%}\n{%- endfor -%}\n\n{#- Generation prompt -#}\n{%- if add_generation_prompt -%}\n{{- ']~b]ai' ~ '\\n' ~ '<think>' ~ '\\n' }}\n{%- endif -%}","stop":["[e~["],"bos_token":"]~!b[","eos_token":"[e~["},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8","object":"model","created":1762450858,"type":"chat","running":false,"display_name":"Qwen3-VL-235B-A22B-Instruct-FP8","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-VL-235B-A22B-Instruct-FP8","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-3-1b-pt","object":"model","created":1763600655,"type":"language","running":false,"display_name":"Gemma 3 1B Pt","organization":"Google","link":"https://huggingface.co/api/models/togethercomputer/gemma-3-1b-pt","license":"gemma","context_length":32768,"config":{"chat_template":null,"stop":[],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"arcee-ai/trinity-mini","uuid":"endpoint-800144b6-acf5-4bcc-af38-2dc148b8df48","object":"model","created":1778882481,"type":"chat","running":false,"display_name":"Trinity Mini","organization":"Arcee AI","link":"https://huggingface.co/api/models/togethercomputer/arcee-trinity-mini-rc","context_length":128000,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0.045000000000000005,"output":0.15,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"mistralai/Ministral-3-14B-Instruct-2512","uuid":"endpoint-0e55cf55-2317-49b2-b03c-17de72bdc9a0","object":"model","created":1764641096,"type":"chat","running":false,"display_name":"Ministral 3 14B Instruct 2512","organization":"Mistralai","link":"https://huggingface.co/api/models/mistralai/Ministral-3-14B-Instruct-2512","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":[""],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.2,"output":0.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"togethercomputer/EssentialAI-RNJ-1-Instruct","object":"model","created":1764918345,"type":"chat","running":false,"display_name":"EssentialAI Rnj-1 Instruct","organization":"Essential AI","link":"https://huggingface.co/api/models/togethercomputer/EssentialAI-RNJ-1-Instruct","context_length":32768,"config":{"chat_template":null,"stop":[],"bos_token":"<|begin_of_text|>","eos_token":"<|end_of_text|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"rime-labs/rime-arcana-v2","object":"model","created":0,"type":"audio","running":false,"display_name":"Rime Labs Arcana v2","organization":"Rime Labs","context_length":0,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.27,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16","object":"model","created":1765923022,"type":"chat","running":false,"display_name":"Nvidia Nemotron 3 Nano 30B A3b Bf16","organization":"Nvidia","link":"https://huggingface.co/api/models/nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16","license":"other nvidia-open-model-license","context_length":262144,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":"<s>","eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"minimax/speech-2.6-turbo","object":"model","created":1766046667,"type":"audio","running":false,"display_name":"Minimax Speech 2.6 Turbo","organization":"MiniMaxAI","context_length":448,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"rime-labs/rime-mist-v2","object":"model","created":0,"type":"audio","running":false,"display_name":"Rime Labs Mist v2","organization":"Rime Labs","context_length":0,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"zai-org/GLM-4.7","uuid":"endpoint-19585518-00ef-4ee4-bf04-77043b11023d","object":"model","created":1780427525,"type":"chat","running":false,"display_name":"GLM 4.7 FP8","organization":"Zai Org","link":"https://huggingface.co/api/models/zai-org/GLM-4.7-fp8","license":"mit","context_length":202752,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.45,"output":2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"rime-labs/rime-arcana-v3","object":"model","created":0,"type":"audio","running":false,"display_name":"Rime Labs Arcana v3","organization":"Rime Labs","context_length":0,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-Coder-Next-FP8","uuid":"endpoint-e866876b-60ac-408f-a521-526fafab05bf","object":"model","created":0,"type":"chat","running":false,"display_name":"Qwen3 Coder Next Fp8","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3-Coder-Next-FP8","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.5,"output":1.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"moonshotai/Kimi-K2.5-fp4","uuid":"endpoint-0434e195-b471-4b82-92f8-37e352ff7591","object":"model","created":0,"type":"chat","running":false,"display_name":"Kimi K2.5 Fp4","organization":"Togethercomputer","link":"https://huggingface.co/api/models/togethercomputer/Kimi-K2.5-fp4","context_length":262144,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0.5,"output":2.8,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"rime-labs/rime-arcana-v3-turbo","object":"model","created":1770061507,"type":"audio","running":false,"display_name":"Rime Labs Arcana v3 Turbo","organization":"Rime Labs","context_length":448,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-3-27b-pt","object":"model","created":1770376600,"type":"language","running":false,"display_name":"Gemma 3 27B Pt","organization":"Google","config":{"chat_template":null,"stop":["<eos>"],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"zai-org/GLM-4.7-fp4","uuid":"endpoint-902d2c9c-7844-49aa-aa32-e2c009749bb3","object":"model","created":1780365305,"type":"chat","running":false,"display_name":"GLM 4.7 FP4","organization":"Zai Org","context_length":202752,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"zai-org/GLM-5-FP4","object":"model","created":1770855351,"type":"chat","running":false,"display_name":"GLM 5 Fp4","organization":"Zai Org","link":"https://huggingface.co/api/models/togethercomputer/GLM-5-FP4","context_length":202752,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"zai-org/GLM-5","uuid":"endpoint-f6104312-37ea-4d87-82c1-ec0b29951a4b","object":"model","created":1782149328,"type":"chat","running":false,"display_name":"GLM 5 Fp4","organization":"Zai Org","link":"https://huggingface.co/api/models/togethercomputer/GLM-5-FP4","context_length":202752,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":1,"output":3.2,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"MiniMaxAI/MiniMax-M2.5-FP4","object":"model","created":1771122164,"type":"chat","running":false,"display_name":"MiniMax M2.5 FP4","organization":"MiniMaxAI","context_length":8192,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3.5-397B-A17B","uuid":"endpoint-3a29fc79-9262-4d92-bd0a-da8b087be4be","object":"model","created":1782762805,"type":"chat","running":false,"display_name":"Qwen3.5 397B A17b","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3.5-397B-A17B","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0.6,"output":3.6,"base":0,"finetune":0,"cached_input":0.35,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepgram/flux","object":"model","created":1771449125,"type":"transcribe","running":false,"display_name":"Deepgram Flux","organization":"Deepgram","context_length":448,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":{"price_per_minute":0.0015},"image":0,"video":0}},{"id":"zai-org/GLM-4.7-FP8","object":"model","created":1772499990,"type":"chat","running":false,"display_name":"Glm 4.7 Fp8","organization":"Zai Org","link":"https://huggingface.co/api/models/zai-org/GLM-4.7-FP8","license":"mit","context_length":202752,"config":{"chat_template":"[gMASK]<sop>\n{%- if tools -%}\n<|system|>\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{% for tool in tools %}\n{{ tool | tojson(ensure_ascii=False) }}\n{% endfor %}\n</tools>\n\nFor each function call, output the function name and arguments within the following XML format:\n<tool_call>{function-name}<arg_key>{arg-key-1}</arg_key><arg_value>{arg-value-1}</arg_value><arg_key>{arg-key-2}</arg_key><arg_value>{arg-value-2}</arg_value>...</tool_call>{%- endif -%}\n{%- macro visible_text(content) -%}\n {%- if content is string -%}\n {{- content }}\n {%- elif content is iterable and content is not mapping -%}\n {%- for item in content -%}\n {%- if item is mapping and item.type == 'text' -%}\n {{- item.text }}\n {%- elif item is string -%}\n {{- item }}\n {%- endif -%}\n {%- endfor -%}\n {%- else -%}\n {{- content }}\n {%- endif -%}\n{%- endmacro -%}\n{%- set ns = namespace(last_user_index=-1) %}\n{%- for m in messages %}\n {%- if m.role == 'user' %}\n {% set ns.last_user_index = loop.index0 -%}\n {%- endif %}\n{%- endfor %}\n{% for m in messages %}\n{%- if m.role == 'user' -%}<|user|>{{ visible_text(m.content) }}\n{%- elif m.role == 'assistant' -%}\n<|assistant|>\n{%- set reasoning_content = '' %}\n{%- set content = visible_text(m.content) %}\n{%- if m.reasoning_content is string %}\n {%- set reasoning_content = m.reasoning_content %}\n{%- else %}\n {%- if '</think>' in content %}\n {%- set reasoning_content = content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n {%- set content = content.split('</think>')[-1].lstrip('\\n') %}\n {%- endif %}\n{%- endif %}\n{%- if ((clear_thinking is defined and not clear_thinking) or loop.index0 > ns.last_user_index) and reasoning_content -%}\n{{ '<think>' + reasoning_content.strip() + '</think>'}}\n{%- else -%}\n{{ '</think>' }}\n{%- endif -%}\n{%- if content.strip() -%}\n{{ content.strip() }}\n{%- endif -%}\n{% if m.tool_calls %}\n{% for tc in m.tool_calls %}\n{%- if tc.function %}\n {%- set tc = tc.function %}\n{%- endif %}\n{{- '<tool_call>' + tc.name -}}\n{% set _args = tc.arguments %}{% for k, v in _args.items() %}<arg_key>{{ k }}</arg_key><arg_value>{{ v | tojson(ensure_ascii=False) if v is not string else v }}</arg_value>{% endfor %}</tool_call>{% endfor %}\n{% endif %}\n{%- elif m.role == 'tool' -%}\n{%- if m.content is string -%}\n{%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|observation|>' }}\n{%- endif %}\n{{- '<tool_response>' }}\n{{- m.content }}\n{{- '</tool_response>' }}\n{%- else -%}\n<|observation|>{% for tr in m.content %}\n<tool_response>{{ tr.output if tr.output is defined else tr }}</tool_response>{% endfor -%}\n{% endif -%}\n{%- elif m.role == 'system' -%}\n<|system|>{{ visible_text(m.content) }}\n{%- endif -%}\n{%- endfor -%}\n{%- if add_generation_prompt -%}\n <|assistant|>{{- '</think>' if (enable_thinking is defined and not enable_thinking) else '<think>' -}}\n{%- endif -%}","stop":[],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3.5-9B-FP8","object":"model","created":1772735269,"type":"chat","running":false,"display_name":"Qwen3.5 9B Fp8","organization":"Qwen","link":"https://huggingface.co/api/models/togethercomputer/Qwen3.5-9B-FP8-MLP","context_length":262144,"config":{"chat_template":"{%- set image_count = namespace(value=0) %}\n{%- set video_count = namespace(value=0) %}\n{%- macro render_content(content, do_vision_count, is_system_content=false) %}\n {%- if content is string %}\n {{- content }}\n {%- elif content is iterable and content is not mapping %}\n {%- for item in content %}\n {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}\n {%- if is_system_content %}\n {{- raise_exception('System message cannot contain images.') }}\n {%- endif %}\n {%- if do_vision_count %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- endif %}\n {%- if add_vision_id %}\n {{- 'Picture ' ~ image_count.value ~ ': ' }}\n {%- endif %}\n {{- '<|vision_start|><|image_pad|><|vision_end|>' }}\n {%- elif 'video' in item or item.type == 'video' %}\n {%- if is_system_content %}\n {{- raise_exception('System message cannot contain videos.') }}\n {%- endif %}\n {%- if do_vision_count %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- endif %}\n {%- if add_vision_id %}\n {{- 'Video ' ~ video_count.value ~ ': ' }}\n {%- endif %}\n {{- '<|vision_start|><|video_pad|><|vision_end|>' }}\n {%- elif 'text' in item %}\n {{- item.text }}\n {%- else %}\n {{- raise_exception('Unexpected item type in content.') }}\n {%- endif %}\n {%- endfor %}\n {%- elif content is none or content is undefined %}\n {{- '' }}\n {%- else %}\n {{- raise_exception('Unexpected content type.') }}\n {%- endif %}\n{%- endmacro %}\n{%- if not messages %}\n {{- raise_exception('No messages provided.') }}\n{%- endif %}\n{%- if tools and tools is iterable and tools is not mapping %}\n {{- '<|im_start|>system\\n' }}\n {{- \"# Tools\\n\\nYou have access to the following functions:\\n\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\" }}\n {{- '\\n\\nIf you choose to call a function ONLY reply in the following format with NO suffix:\\n\\n<tool_call>\\n<function=example_function_name>\\n<parameter=example_parameter_1>\\nvalue_1\\n</parameter>\\n<parameter=example_parameter_2>\\nThis is the value for the second parameter\\nthat can span\\nmultiple lines\\n</parameter>\\n</function>\\n</tool_call>\\n\\n<IMPORTANT>\\nReminder:\\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\\n- Required parameters MUST be specified\\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\\n</IMPORTANT>' }}\n {%- if messages[0].role == 'system' %}\n {%- set content = render_content(messages[0].content, false, true)|trim %}\n {%- if content %}\n {{- '\\n\\n' + content }}\n {%- endif %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {%- set content = render_content(messages[0].content, false, true)|trim %}\n {{- '<|im_start|>system\\n' + content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n {%- set index = (messages|length - 1) - loop.index0 %}\n {%- if ns.multi_step_tool and message.role == \"user\" %}\n {%- set content = render_content(message.content, false)|trim %}\n {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}\n {%- set ns.multi_step_tool = false %}\n {%- set ns.last_query_index = index %}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if ns.multi_step_tool %}\n {{- raise_exception('No user query found in messages.') }}\n{%- endif %}\n{%- for message in messages %}\n {%- set content = render_content(message.content, true)|trim %}\n {%- if message.role == \"system\" %}\n {%- if not loop.first %}\n {{- raise_exception('System message must be at the beginning.') }}\n {%- endif %}\n {%- elif message.role == \"user\" %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {%- set reasoning_content = '' %}\n {%- if message.reasoning_content is string %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '</think>' in content %}\n {%- set reasoning_content = content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n {%- set content = content.split('</think>')[-1].lstrip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- set reasoning_content = reasoning_content|trim %}\n {%- if loop.index0 > ns.last_query_index %}\n {{- '<|im_start|>' + message.role + '\\n<think>\\n' + reasoning_content + '\\n</think>\\n\\n' + content }}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {%- if loop.first %}\n {%- if content|trim %}\n {{- '\\n\\n<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n {%- else %}\n {{- '<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n {%- endif %}\n {%- else %}\n {{- '\\n<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n {%- endif %}\n {%- if tool_call.arguments is defined %}\n {%- for args_name, args_value in tool_call.arguments|items %}\n {{- '<parameter=' + args_name + '>\\n' }}\n {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}\n {{- args_value }}\n {{- '\\n</parameter>\\n' }}\n {%- endfor %}\n {%- endif %}\n {{- '</function>\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.previtem and loop.previtem.role != \"tool\" %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if not loop.last and loop.nextitem.role != \"tool\" %}\n {{- '<|im_end|>\\n' }}\n {%- elif loop.last %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- else %}\n {{- raise_exception('Unexpected message role.') }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n {%- if enable_thinking is defined and enable_thinking is false %}\n {{- '<think>\\n\\n</think>\\n\\n' }}\n {%- else %}\n {{- '<think>\\n' }}\n {%- endif %}\n{%- endif %}","stop":[],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3.5-35B-A3B","object":"model","created":1772823883,"type":"chat","running":false,"display_name":"Qwen3.5 35B A3b","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3.5-35B-A3B","license":"apache-2.0","context_length":262144,"config":{"chat_template":"{%- set image_count = namespace(value=0) %}\n{%- set video_count = namespace(value=0) %}\n{%- macro render_content(content, do_vision_count, is_system_content=false) %}\n {%- if content is string %}\n {{- content }}\n {%- elif content is iterable and content is not mapping %}\n {%- for item in content %}\n {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}\n {%- if is_system_content %}\n {{- raise_exception('System message cannot contain images.') }}\n {%- endif %}\n {%- if do_vision_count %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- endif %}\n {%- if add_vision_id %}\n {{- 'Picture ' ~ image_count.value ~ ': ' }}\n {%- endif %}\n {{- '<|vision_start|><|image_pad|><|vision_end|>' }}\n {%- elif 'video' in item or item.type == 'video' %}\n {%- if is_system_content %}\n {{- raise_exception('System message cannot contain videos.') }}\n {%- endif %}\n {%- if do_vision_count %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- endif %}\n {%- if add_vision_id %}\n {{- 'Video ' ~ video_count.value ~ ': ' }}\n {%- endif %}\n {{- '<|vision_start|><|video_pad|><|vision_end|>' }}\n {%- elif 'text' in item %}\n {{- item.text }}\n {%- else %}\n {{- raise_exception('Unexpected item type in content.') }}\n {%- endif %}\n {%- endfor %}\n {%- elif content is none or content is undefined %}\n {{- '' }}\n {%- else %}\n {{- raise_exception('Unexpected content type.') }}\n {%- endif %}\n{%- endmacro %}\n{%- if not messages %}\n {{- raise_exception('No messages provided.') }}\n{%- endif %}\n{%- if tools and tools is iterable and tools is not mapping %}\n {{- '<|im_start|>system\\n' }}\n {{- \"# Tools\\n\\nYou have access to the following functions:\\n\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\" }}\n {{- '\\n\\nIf you choose to call a function ONLY reply in the following format with NO suffix:\\n\\n<tool_call>\\n<function=example_function_name>\\n<parameter=example_parameter_1>\\nvalue_1\\n</parameter>\\n<parameter=example_parameter_2>\\nThis is the value for the second parameter\\nthat can span\\nmultiple lines\\n</parameter>\\n</function>\\n</tool_call>\\n\\n<IMPORTANT>\\nReminder:\\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\\n- Required parameters MUST be specified\\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\\n</IMPORTANT>' }}\n {%- if messages[0].role == 'system' %}\n {%- set content = render_content(messages[0].content, false, true)|trim %}\n {%- if content %}\n {{- '\\n\\n' + content }}\n {%- endif %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {%- set content = render_content(messages[0].content, false, true)|trim %}\n {{- '<|im_start|>system\\n' + content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n {%- set index = (messages|length - 1) - loop.index0 %}\n {%- if ns.multi_step_tool and message.role == \"user\" %}\n {%- set content = render_content(message.content, false)|trim %}\n {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}\n {%- set ns.multi_step_tool = false %}\n {%- set ns.last_query_index = index %}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if ns.multi_step_tool %}\n {{- raise_exception('No user query found in messages.') }}\n{%- endif %}\n{%- for message in messages %}\n {%- set content = render_content(message.content, true)|trim %}\n {%- if message.role == \"system\" %}\n {%- if not loop.first %}\n {{- raise_exception('System message must be at the beginning.') }}\n {%- endif %}\n {%- elif message.role == \"user\" %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {%- set reasoning_content = '' %}\n {%- if message.reasoning_content is string %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '</think>' in content %}\n {%- set reasoning_content = content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n {%- set content = content.split('</think>')[-1].lstrip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- set reasoning_content = reasoning_content|trim %}\n {%- if loop.index0 > ns.last_query_index %}\n {{- '<|im_start|>' + message.role + '\\n<think>\\n' + reasoning_content + '\\n</think>\\n\\n' + content }}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {%- if loop.first %}\n {%- if content|trim %}\n {{- '\\n\\n<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n {%- else %}\n {{- '<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n {%- endif %}\n {%- else %}\n {{- '\\n<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n {%- endif %}\n {%- if tool_call.arguments is defined %}\n {%- for args_name, args_value in tool_call.arguments|items %}\n {{- '<parameter=' + args_name + '>\\n' }}\n {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}\n {{- args_value }}\n {{- '\\n</parameter>\\n' }}\n {%- endfor %}\n {%- endif %}\n {{- '</function>\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.previtem and loop.previtem.role != \"tool\" %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if not loop.last and loop.nextitem.role != \"tool\" %}\n {{- '<|im_end|>\\n' }}\n {%- elif loop.last %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- else %}\n {{- raise_exception('Unexpected message role.') }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n {%- if enable_thinking is defined and enable_thinking is false %}\n {{- '<think>\\n\\n</think>\\n\\n' }}\n {%- else %}\n {{- '<think>\\n' }}\n {%- endif %}\n{%- endif %}","stop":[],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepgram/nova-3-en","object":"model","created":0,"type":"transcribe","running":false,"display_name":"Deepgram Nova 3","organization":"Deepgram","context_length":448,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":{"price_per_minute":0.0015},"image":0,"video":0}},{"id":"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8","object":"model","created":1773245220,"type":"chat","running":false,"display_name":"Nvidia Nemotron 3 Super 120B A12b Fp8","organization":"Nvidia","link":"https://huggingface.co/api/models/nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8","license":"other nvidia-open-model-license","context_length":262144,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":"<s>","eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepgram/nova-3-multi","object":"model","created":1773282436,"type":"transcribe","running":false,"display_name":"Deepgram Nova 3 Multilingual","organization":"Deepgram","context_length":448,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":{"price_per_minute":0.0015},"image":0,"video":0}},{"id":"deepgram/aura-2","object":"model","created":1773282872,"type":"audio","running":false,"display_name":"Deepgram Aura 2","organization":"Deepgram","context_length":448,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"deepseek-ai/DeepSeek-OCR-2","object":"model","created":1773431742,"type":"chat","running":false,"display_name":"Deepseek OCR 2","organization":"Deepseek","link":"https://huggingface.co/api/models/deepseek-ai/DeepSeek-OCR-2","license":"apache-2.0","context_length":8192,"config":{"chat_template":null,"stop":["<|end▁of▁sentence|>"],"bos_token":"<|begin▁of▁sentence|>","eos_token":"<|end▁of▁sentence|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3.5-122B-A10B-FP8","object":"model","created":1773680257,"type":"chat","running":false,"display_name":"Qwen3.5 122B A10b Fp8","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3.5-122B-A10B-FP8","license":"apache-2.0","context_length":262144,"config":{"chat_template":"{%- set image_count = namespace(value=0) %}\n{%- set video_count = namespace(value=0) %}\n{%- macro render_content(content, do_vision_count, is_system_content=false) %}\n {%- if content is string %}\n {{- content }}\n {%- elif content is iterable and content is not mapping %}\n {%- for item in content %}\n {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}\n {%- if is_system_content %}\n {{- raise_exception('System message cannot contain images.') }}\n {%- endif %}\n {%- if do_vision_count %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- endif %}\n {%- if add_vision_id %}\n {{- 'Picture ' ~ image_count.value ~ ': ' }}\n {%- endif %}\n {{- '<|vision_start|><|image_pad|><|vision_end|>' }}\n {%- elif 'video' in item or item.type == 'video' %}\n {%- if is_system_content %}\n {{- raise_exception('System message cannot contain videos.') }}\n {%- endif %}\n {%- if do_vision_count %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- endif %}\n {%- if add_vision_id %}\n {{- 'Video ' ~ video_count.value ~ ': ' }}\n {%- endif %}\n {{- '<|vision_start|><|video_pad|><|vision_end|>' }}\n {%- elif 'text' in item %}\n {{- item.text }}\n {%- else %}\n {{- raise_exception('Unexpected item type in content.') }}\n {%- endif %}\n {%- endfor %}\n {%- elif content is none or content is undefined %}\n {{- '' }}\n {%- else %}\n {{- raise_exception('Unexpected content type.') }}\n {%- endif %}\n{%- endmacro %}\n{%- if not messages %}\n {{- raise_exception('No messages provided.') }}\n{%- endif %}\n{%- if tools and tools is iterable and tools is not mapping %}\n {{- '<|im_start|>system\\n' }}\n {{- \"# Tools\\n\\nYou have access to the following functions:\\n\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\" }}\n {{- '\\n\\nIf you choose to call a function ONLY reply in the following format with NO suffix:\\n\\n<tool_call>\\n<function=example_function_name>\\n<parameter=example_parameter_1>\\nvalue_1\\n</parameter>\\n<parameter=example_parameter_2>\\nThis is the value for the second parameter\\nthat can span\\nmultiple lines\\n</parameter>\\n</function>\\n</tool_call>\\n\\n<IMPORTANT>\\nReminder:\\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\\n- Required parameters MUST be specified\\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\\n</IMPORTANT>' }}\n {%- if messages[0].role == 'system' %}\n {%- set content = render_content(messages[0].content, false, true)|trim %}\n {%- if content %}\n {{- '\\n\\n' + content }}\n {%- endif %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {%- set content = render_content(messages[0].content, false, true)|trim %}\n {{- '<|im_start|>system\\n' + content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n {%- set index = (messages|length - 1) - loop.index0 %}\n {%- if ns.multi_step_tool and message.role == \"user\" %}\n {%- set content = render_content(message.content, false)|trim %}\n {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}\n {%- set ns.multi_step_tool = false %}\n {%- set ns.last_query_index = index %}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if ns.multi_step_tool %}\n {{- raise_exception('No user query found in messages.') }}\n{%- endif %}\n{%- for message in messages %}\n {%- set content = render_content(message.content, true)|trim %}\n {%- if message.role == \"system\" %}\n {%- if not loop.first %}\n {{- raise_exception('System message must be at the beginning.') }}\n {%- endif %}\n {%- elif message.role == \"user\" %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {%- set reasoning_content = '' %}\n {%- if message.reasoning_content is string %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '</think>' in content %}\n {%- set reasoning_content = content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n {%- set content = content.split('</think>')[-1].lstrip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- set reasoning_content = reasoning_content|trim %}\n {%- if loop.index0 > ns.last_query_index %}\n {{- '<|im_start|>' + message.role + '\\n<think>\\n' + reasoning_content + '\\n</think>\\n\\n' + content }}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {%- if loop.first %}\n {%- if content|trim %}\n {{- '\\n\\n<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n {%- else %}\n {{- '<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n {%- endif %}\n {%- else %}\n {{- '\\n<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n {%- endif %}\n {%- if tool_call.arguments is defined %}\n {%- for args_name, args_value in tool_call.arguments|items %}\n {{- '<parameter=' + args_name + '>\\n' }}\n {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}\n {{- args_value }}\n {{- '\\n</parameter>\\n' }}\n {%- endfor %}\n {%- endif %}\n {{- '</function>\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.previtem and loop.previtem.role != \"tool\" %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if not loop.last and loop.nextitem.role != \"tool\" %}\n {{- '<|im_end|>\\n' }}\n {%- elif loop.last %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- else %}\n {{- raise_exception('Unexpected message role.') }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n {%- if enable_thinking is defined and enable_thinking is false %}\n {{- '<think>\\n\\n</think>\\n\\n' }}\n {%- else %}\n {{- '<think>\\n' }}\n {%- endif %}\n{%- endif %}","stop":[],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"zai-org/GLM-OCR","object":"model","created":1773697388,"type":"chat","running":false,"display_name":"GLM OCR","organization":"Zai Org","link":"https://huggingface.co/api/models/zai-org/GLM-OCR","license":"mit","context_length":131072,"config":{"chat_template":"[gMASK]<sop>\n{%- if tools -%}\n<|system|>\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{% for tool in tools %}\n{{ tool | tojson(ensure_ascii=False) }}\n{% endfor %}\n</tools>\n\nFor each function call, output the function name and arguments within the following XML format:\n<tool_call>{function-name}\n<arg_key>{arg-key-1}</arg_key>\n<arg_value>{arg-value-1}</arg_value>\n<arg_key>{arg-key-2}</arg_key>\n<arg_value>{arg-value-2}</arg_value>\n...\n</tool_call>{%- endif -%}\n{%- macro visible_text(content) -%}\n {%- if content is string -%}\n {{- content }}\n {%- elif content is iterable and content is not mapping -%}\n {%- for item in content -%}\n {%- if item is mapping and item.type == 'text' -%}\n {{- item.text }}\n {%- elif item is mapping and (item.type == 'image' or 'image' in item) -%}\n <|begin_of_image|><|image|><|end_of_image|>\n {%- elif item is mapping and (item.type == 'video' or 'video' in item) -%}\n <|begin_of_video|><|video|><|end_of_video|>\n {%- elif item is string -%}\n {{- item }}\n {%- endif -%}\n {%- endfor -%}\n {%- else -%}\n {{- content }}\n {%- endif -%}\n{%- endmacro -%}\n{%- set ns = namespace(last_user_index=-1) %}\n{%- for m in messages %}\n {%- if m.role == 'user' %}\n {% set ns.last_user_index = loop.index0 -%}\n {%- endif %}\n{%- endfor %}\n{% for m in messages %}\n{%- if m.role == 'user' -%}<|user|>\n{% if m.content is string %}\n{{ m.content }}\n{%- else %}\n{%- for item in m.content %}\n{% if item.type == 'video' or 'video' in item %}\n<|begin_of_video|><|video|><|end_of_video|>{% elif item.type == 'image' or 'image' in item %}\n<|begin_of_image|><|image|><|end_of_image|>{% elif item.type == 'text' %}\n{{ item.text }}\n{%- endif %}\n{%- endfor %}\n{%- endif %}\n{{- '/nothink' if (enable_thinking is defined and not enable_thinking and not visible_text(m.content).endswith(\"/nothink\")) else '' -}}\n{%- elif m.role == 'assistant' -%}\n<|assistant|>\n{%- set reasoning_content = '' %}\n{%- set content = visible_text(m.content) %}\n{%- if m.reasoning_content is string %}\n {%- set reasoning_content = m.reasoning_content %}\n{%- else %}\n {%- if '</think>' in content %}\n {%- set reasoning_content = content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n {%- set content = content.split('</think>')[-1].lstrip('\\n') %}\n {%- endif %}\n{%- endif %}\n{%- if loop.index0 > ns.last_user_index and reasoning_content -%}\n{{ '\\n<think>' + reasoning_content.strip() + '</think>'}}\n{%- else -%}\n{{ '\\n<think></think>' }}\n{%- endif -%}\n{%- if content.strip() -%}\n{{ '\\n' + content.strip() }}\n{%- endif -%}\n{% if m.tool_calls %}\n{% for tc in m.tool_calls %}\n{%- if tc.function %}\n {%- set tc = tc.function %}\n{%- endif %}\n{{ '\\n<tool_call>' + tc.name }}\n{% set _args = tc.arguments %}\n{% for k, v in _args.items() %}\n<arg_key>{{ k }}</arg_key>\n<arg_value>{{ v | tojson(ensure_ascii=False) if v is not string else v }}</arg_value>\n{% endfor %}\n</tool_call>{% endfor %}\n{% endif %}\n{%- elif m.role == 'tool' -%}\n{%- if m.content is string -%}\n{%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|observation|>' }}\n{%- endif %}\n{{- '\\n<tool_response>\\n' }}\n{{- m.content }}\n{{- '\\n</tool_response>' }}\n{% elif m.content is iterable and m.content is not mapping %}\n{%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n{{- '<|observation|>' }}\n{%- endif %}\n{{- '\\n<tool_response>\\n' }}\n{%- for tr in m.content -%}\n {%- if tr is mapping and tr.type is defined -%}\n {%- set t = tr.type | lower -%}\n {%- if t == 'text' and tr.text is defined -%}\n{{ tr.text }}\n {%- elif t in ['image', 'image_url'] -%}\n<|begin_of_image|><|image|><|end_of_image|>\n {%- elif t in ['video', 'video_url'] -%}\n<|begin_of_video|><|video|><|end_of_video|>\n {%- else -%}\n{{ tr | tojson(ensure_ascii=False) }}\n {%- endif -%}\n {%- else -%}\n{{ tr.output if tr.output is defined else tr }}\n {%- endif -%}\n{%- endfor -%}\n{{- '\\n</tool_response>' }}\n{%- else -%}\n<|observation|>{% for tr in m.content %}\n\n<tool_response>\n{{ tr.output if tr.output is defined else tr }}\n</tool_response>{% endfor -%}\n{% endif -%}\n{%- elif m.role == 'system' -%}\n<|system|>\n{{ visible_text(m.content) }}\n{%- endif -%}\n{%- endfor -%}\n{%- if add_generation_prompt -%}\n<|assistant|>\n{{'<think></think>\\n' if (enable_thinking is defined and not enable_thinking) else ''}}\n{%- endif -%}\n","stop":[],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"rime-labs/rime-mist-v3","object":"model","created":1773804647,"type":"audio","running":false,"display_name":"Rime Labs Mist v3","organization":"Rime Labs","context_length":448,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-8B-Lora","object":"model","created":1773849366,"type":"chat","running":false,"display_name":"Qwen3 8B Lora","organization":"Qwen","context_length":40960,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- messages[0].content + '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0].content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n {%- set index = (messages|length - 1) - loop.index0 %}\n {%- if ns.multi_step_tool and message.role == \"user\" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}\n {%- set ns.multi_step_tool = false %}\n {%- set ns.last_query_index = index %}\n {%- endif %}\n{%- endfor %}\n{%- for message in messages %}\n {%- if message.content is string %}\n {%- set content = message.content %}\n {%- else %}\n {%- set content = '' %}\n {%- endif %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {%- set reasoning_content = '' %}\n {%- if message.reasoning_content is string %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '</think>' in content %}\n {%- set reasoning_content = content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n {%- set content = content.split('</think>')[-1].lstrip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- if loop.index0 > ns.last_query_index %}\n {%- if loop.last or (not loop.last and reasoning_content) %}\n {{- '<|im_start|>' + message.role + '\\n<think>\\n' + reasoning_content.strip('\\n') + '\\n</think>\\n\\n' + content.lstrip('\\n') }}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n {%- if enable_thinking is defined and enable_thinking is false %}\n {{- '<think>\\n\\n</think>\\n\\n' }}\n {%- endif %}\n{%- endif %}","stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507-Lora","object":"model","created":1774476587,"type":"chat","running":false,"display_name":"Qwen3 30B A3B Instruct 2507 Lora","organization":"Qwen","context_length":262144,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- messages[0].content + '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0].content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if message.content is string %}\n {%- set content = message.content %}\n {%- else %}\n {%- set content = '' %}\n {%- endif %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}","stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Hcompany/Holo3-35B-A3B","object":"model","created":1774986932,"type":"chat","running":false,"display_name":"Holo3 35B A3b","organization":"Hcompany","link":"https://huggingface.co/api/models/Hcompany/Holo3-35B-A3B","license":"apache-2.0","context_length":262144,"config":{"chat_template":"{%- set image_count = namespace(value=0) %}\n{%- set video_count = namespace(value=0) %}\n{%- macro render_content(content, do_vision_count, is_system_content=false) %}\n {%- if content is string %}\n {{- content }}\n {%- elif content is iterable and content is not mapping %}\n {%- for item in content %}\n {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}\n {%- if is_system_content %}\n {{- raise_exception('System message cannot contain images.') }}\n {%- endif %}\n {%- if do_vision_count %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- endif %}\n {%- if add_vision_id %}\n {{- 'Picture ' ~ image_count.value ~ ': ' }}\n {%- endif %}\n {{- '<|vision_start|><|image_pad|><|vision_end|>' }}\n {%- elif 'video' in item or item.type == 'video' %}\n {%- if is_system_content %}\n {{- raise_exception('System message cannot contain videos.') }}\n {%- endif %}\n {%- if do_vision_count %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- endif %}\n {%- if add_vision_id %}\n {{- 'Video ' ~ video_count.value ~ ': ' }}\n {%- endif %}\n {{- '<|vision_start|><|video_pad|><|vision_end|>' }}\n {%- elif 'text' in item %}\n {{- item.text }}\n {%- else %}\n {{- raise_exception('Unexpected item type in content.') }}\n {%- endif %}\n {%- endfor %}\n {%- elif content is none or content is undefined %}\n {{- '' }}\n {%- else %}\n {{- raise_exception('Unexpected content type.') }}\n {%- endif %}\n{%- endmacro %}\n{%- if not messages %}\n {{- raise_exception('No messages provided.') }}\n{%- endif %}\n{%- if tools and tools is iterable and tools is not mapping %}\n {{- '<|im_start|>system\\n' }}\n {{- \"# Tools\\n\\nYou have access to the following functions:\\n\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\" }}\n {{- '\\n\\nIf you choose to call a function ONLY reply in the following format with NO suffix:\\n\\n<tool_call>\\n<function=example_function_name>\\n<parameter=example_parameter_1>\\nvalue_1\\n</parameter>\\n<parameter=example_parameter_2>\\nThis is the value for the second parameter\\nthat can span\\nmultiple lines\\n</parameter>\\n</function>\\n</tool_call>\\n\\n<IMPORTANT>\\nReminder:\\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\\n- Required parameters MUST be specified\\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\\n</IMPORTANT>' }}\n {%- if messages[0].role == 'system' %}\n {%- set content = render_content(messages[0].content, false, true)|trim %}\n {%- if content %}\n {{- '\\n\\n' + content }}\n {%- endif %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {%- set content = render_content(messages[0].content, false, true)|trim %}\n {{- '<|im_start|>system\\n' + content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n {%- set index = (messages|length - 1) - loop.index0 %}\n {%- if ns.multi_step_tool and message.role == \"user\" %}\n {%- set content = render_content(message.content, false)|trim %}\n {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}\n {%- set ns.multi_step_tool = false %}\n {%- set ns.last_query_index = index %}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if ns.multi_step_tool %}\n {{- raise_exception('No user query found in messages.') }}\n{%- endif %}\n{%- for message in messages %}\n {%- set content = render_content(message.content, true)|trim %}\n {%- if message.role == \"system\" %}\n {%- if not loop.first %}\n {{- raise_exception('System message must be at the beginning.') }}\n {%- endif %}\n {%- elif message.role == \"user\" %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {%- set reasoning_content = '' %}\n {%- if message.reasoning_content is string %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '</think>' in content %}\n {%- set reasoning_content = content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n {%- set content = content.split('</think>')[-1].lstrip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- set reasoning_content = reasoning_content|trim %}\n {%- if loop.index0 > ns.last_query_index %}\n {{- '<|im_start|>' + message.role + '\\n<think>\\n' + reasoning_content + '\\n</think>\\n\\n' + content }}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {%- if loop.first %}\n {%- if content|trim %}\n {{- '\\n\\n<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n {%- else %}\n {{- '<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n {%- endif %}\n {%- else %}\n {{- '\\n<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n {%- endif %}\n {%- if tool_call.arguments is defined %}\n {%- for args_name, args_value in tool_call.arguments|items %}\n {{- '<parameter=' + args_name + '>\\n' }}\n {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}\n {{- args_value }}\n {{- '\\n</parameter>\\n' }}\n {%- endfor %}\n {%- endif %}\n {{- '</function>\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.previtem and loop.previtem.role != \"tool\" %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if not loop.last and loop.nextitem.role != \"tool\" %}\n {{- '<|im_end|>\\n' }}\n {%- elif loop.last %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- else %}\n {{- raise_exception('Unexpected message role.') }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n {%- if enable_thinking is defined and enable_thinking is false %}\n {{- '<think>\\n\\n</think>\\n\\n' }}\n {%- else %}\n {{- '<think>\\n' }}\n {%- endif %}\n{%- endif %}","stop":[],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"zai-org/GLM-5.1","uuid":"endpoint-b3089874-2df3-45d7-9d76-6a12456411eb","object":"model","created":1782316219,"type":"chat","running":false,"display_name":"GLM 5.1 FP4","organization":"Zai Org","link":"https://huggingface.co/api/models/togethercomputer/GLM-5.1-FP4","context_length":202752,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":null,"eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":1.4,"output":4.4,"base":0,"finetune":0,"cached_input":0.25999999999999995,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16","object":"model","created":1775592211,"type":"chat","running":false,"display_name":"Nvidia Nemotron 3 Super 120B A12b Bf16","organization":"Nvidia","link":"https://huggingface.co/api/models/nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16","license":"other nvidia-nemotron-open-model-license","context_length":262144,"config":{"chat_template":null,"stop":["<|im_end|>"],"bos_token":"<s>","eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-4-E4B-it","uuid":"model-deafc738-770b-4ebe-9051-64a9ea1d7e0b","object":"model","created":1776333729,"type":"chat","running":false,"display_name":"Gemma 4 E4B-it","organization":"Google","link":"https://huggingface.co/google/gemma-4-E4B-it","license":"apache-2.0","context_length":131072,"config":{"chat_template":"{%- macro format_parameters(properties, required) -%}\n {%- set standard_keys = ['description', 'type', 'properties', 'required', 'nullable'] -%}\n {%- set ns = namespace(found_first=false) -%}\n {%- for key, value in properties | dictsort -%}\n {%- set add_comma = false -%}\n {%- if key not in standard_keys -%}\n {%- if ns.found_first %},{% endif -%}\n {%- set ns.found_first = true -%}\n {{ key }}:{\n {%- if value['description'] -%}\n description:<|\"|>{{ value['description'] }}<|\"|>\n {%- set add_comma = true -%}\n {%- endif -%}\n {%- if value['type'] | upper == 'STRING' -%}\n {%- if value['enum'] -%}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n enum:{{ format_argument(value['enum']) }}\n {%- endif -%}\n {%- elif value['type'] | upper == 'ARRAY' -%}\n {%- if value['items'] is mapping and value['items'] -%}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n items:{\n {%- set ns_items = namespace(found_first=false) -%}\n {%- for item_key, item_value in value['items'] | dictsort -%}\n {%- if item_value is not none -%}\n {%- if ns_items.found_first %},{% endif -%}\n {%- set ns_items.found_first = true -%}\n {%- if item_key == 'properties' -%}\n properties:{\n {%- if item_value is mapping -%}\n {{- format_parameters(item_value, value['items']['required'] | default([])) -}}\n {%- endif -%}\n }\n {%- elif item_key == 'required' -%}\n required:[\n {%- for req_item in item_value -%}\n <|\"|>{{- req_item -}}<|\"|>\n {%- if not loop.last %},{% endif -%}\n {%- endfor -%}\n ]\n {%- elif item_key == 'type' -%}\n {%- if item_value is string -%}\n type:{{ format_argument(item_value | upper) }}\n {%- else -%}\n type:{{ format_argument(item_value | map('upper') | list) }}\n {%- endif -%}\n {%- else -%}\n {{ item_key }}:{{ format_argument(item_value) }}\n {%- endif -%}\n {%- endif -%}\n {%- endfor -%}\n }\n {%- endif -%}\n {%- endif -%}\n {%- if value['nullable'] %}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n nullable:true\n {%- endif -%}\n {%- if value['type'] | upper == 'OBJECT' -%}\n {%- if value['properties'] is defined and value['properties'] is mapping -%}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n properties:{\n {{- format_parameters(value['properties'], value['required'] | default([])) -}}\n }\n {%- elif value is mapping -%}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n properties:{\n {{- format_parameters(value, value['required'] | default([])) -}}\n }\n {%- endif -%}\n {%- if value['required'] -%}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n required:[\n {%- for item in value['required'] | default([]) -%}\n <|\"|>{{- item -}}<|\"|>\n {%- if not loop.last %},{% endif -%}\n {%- endfor -%}\n ]\n {%- endif -%}\n {%- endif -%}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n type:<|\"|>{{ value['type'] | upper }}<|\"|>}\n {%- endif -%}\n {%- endfor -%}\n{%- endmacro -%}\n{%- macro format_function_declaration(tool_data) -%}\n declaration:{{- tool_data['function']['name'] -}}{description:<|\"|>{{- tool_data['function']['description'] -}}<|\"|>\n {%- set params = tool_data['function']['parameters'] -%}\n {%- if params -%}\n ,parameters:{\n {%- if params['properties'] -%}\n properties:{ {{- format_parameters(params['properties'], params['required']) -}} },\n {%- endif -%}\n {%- if params['required'] -%}\n required:[\n {%- for item in params['required'] -%}\n <|\"|>{{- item -}}<|\"|>\n {{- ',' if not loop.last -}}\n {%- endfor -%}\n ],\n {%- endif -%}\n {%- if params['type'] -%}\n type:<|\"|>{{- params['type'] | upper -}}<|\"|>}\n {%- endif -%}\n {%- endif -%}\n {%- if 'response' in tool_data['function'] -%}\n {%- set response_declaration = tool_data['function']['response'] -%}\n ,response:{\n {%- if response_declaration['description'] -%}\n description:<|\"|>{{- response_declaration['description'] -}}<|\"|>,\n {%- endif -%}\n {%- if response_declaration['type'] | upper == 'OBJECT' -%}\n type:<|\"|>{{- response_declaration['type'] | upper -}}<|\"|>}\n {%- endif -%}\n {%- endif -%}\n }\n{%- endmacro -%}\n{%- macro format_argument(argument, escape_keys=True) -%}\n {%- if argument is string -%}\n {{- '<|\"|>' + argument + '<|\"|>' -}}\n {%- elif argument is boolean -%}\n {{- 'true' if argument else 'false' -}}\n {%- elif argument is mapping -%}\n {{- '{' -}}\n {%- set ns = namespace(found_first=false) -%}\n {%- for key, value in argument | dictsort -%}\n {%- if ns.found_first %},{% endif -%}\n {%- set ns.found_first = true -%}\n {%- if escape_keys -%}\n {{- '<|\"|>' + key + '<|\"|>' -}}\n {%- else -%}\n {{- key -}}\n {%- endif -%}\n :{{- format_argument(value, escape_keys=escape_keys) -}}\n {%- endfor -%}\n {{- '}' -}}\n {%- elif argument is sequence -%}\n {{- '[' -}}\n {%- for item in argument -%}\n {{- format_argument(item, escape_keys=escape_keys) -}}\n {%- if not loop.last %},{% endif -%}\n {%- endfor -%}\n {{- ']' -}}\n {%- else -%}\n {{- argument -}}\n {%- endif -%}\n{%- endmacro -%}\n{%- macro strip_thinking(text) -%}\n {%- set ns = namespace(result='') -%}\n {%- for part in text.split('<channel|>') -%}\n {%- if '<|channel>' in part -%}\n {%- set ns.result = ns.result + part.split('<|channel>')[0] -%}\n {%- else -%}\n {%- set ns.result = ns.result + part -%}\n {%- endif -%}\n {%- endfor -%}\n {{- ns.result | trim -}}\n{%- endmacro -%}\n\n{%- macro format_tool_response_block(tool_name, response) -%}\n {{- '<|tool_response>' -}}\n {%- if response is mapping -%}\n {{- 'response:' + tool_name + '{' -}}\n {%- for key, value in response | dictsort -%}\n {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n {%- if not loop.last %},{% endif -%}\n {%- endfor -%}\n {{- '}' -}}\n {%- else -%}\n {{- 'response:' + tool_name + '{value:' + format_argument(response, escape_keys=False) + '}' -}}\n {%- endif -%}\n {{- '<tool_response|>' -}}\n{%- endmacro -%}\n\n{%- set ns = namespace(prev_message_type=None) -%}\n{%- set loop_messages = messages -%}\n{{- bos_token -}}\n{#- Handle System/Tool Definitions Block -#}\n{%- if (enable_thinking is defined and enable_thinking) or tools or messages[0]['role'] in ['system', 'developer'] -%}\n {{- '<|turn>system\\n' -}}\n\n {#- Inject Thinking token at the very top of the FIRST system turn -#}\n {%- if enable_thinking is defined and enable_thinking -%}\n {{- '<|think|>\\n' -}}\n {%- set ns.prev_message_type = 'think' -%}\n {%- endif -%}\n\n {%- if messages[0]['role'] in ['system', 'developer'] -%}\n {{- messages[0]['content'] | trim -}}\n {%- set loop_messages = messages[1:] -%}\n {%- endif -%}\n\n {%- if tools -%}\n {%- for tool in tools %}\n {{- '<|tool>' -}}\n {{- format_function_declaration(tool) | trim -}}\n {{- '<tool|>' -}}\n {%- endfor %}\n {%- set ns.prev_message_type = 'tool' -%}\n {%- endif -%}\n\n {{- '<turn|>\\n' -}}\n{%- endif %}\n\n{#- Pre-scan: find last user message index for reasoning guard -#}\n{%- set ns_turn = namespace(last_user_idx=-1) -%}\n{%- for i in range(loop_messages | length) -%}\n {%- if loop_messages[i]['role'] == 'user' -%}\n {%- set ns_turn.last_user_idx = i -%}\n {%- endif -%}\n{%- endfor -%}\n\n{#- Loop through messages -#}\n{%- for message in loop_messages -%}\n {%- if message['role'] != 'tool' -%}\n {%- set ns.prev_message_type = None -%}\n {%- set role = 'model' if message['role'] == 'assistant' else message['role'] -%}\n {#- Detect continuation: suppress duplicate <|turn>model when previous non-tool message was also assistant -#}\n {%- set prev_nt = namespace(role=None, found=false) -%}\n {%- if loop.index0 > 0 -%}\n {%- for j in range(loop.index0 - 1, -1, -1) -%}\n {%- if not prev_nt.found -%}\n {%- if loop_messages[j]['role'] != 'tool' -%}\n {%- set prev_nt.role = loop_messages[j]['role'] -%}\n {%- set prev_nt.found = true -%}\n {%- endif -%}\n {%- endif -%}\n {%- endfor -%}\n {%- endif -%}\n {%- set continue_same_model_turn = (role == 'model' and prev_nt.role == 'assistant') -%}\n {%- if not continue_same_model_turn -%}\n {{- '<|turn>' + role + '\\n' }}\n {%- endif -%}\n\n {#- Render reasoning/reasoning_content as thinking channel -#}\n {%- set thinking_text = message.get('reasoning') or message.get('reasoning_content') -%}\n {%- if thinking_text and loop.index0 > ns_turn.last_user_idx and message.get('tool_calls') -%}\n {{- '<|channel>thought\\n' + thinking_text + '\\n<channel|>' -}}\n {%- endif -%}\n\n {%- if message['tool_calls'] -%}\n {%- for tool_call in message['tool_calls'] -%}\n {%- set function = tool_call['function'] -%}\n {{- '<|tool_call>call:' + function['name'] + '{' -}}\n {%- if function['arguments'] is mapping -%}\n {%- set ns_args = namespace(found_first=false) -%}\n {%- for key, value in function['arguments'] | dictsort -%}\n {%- if ns_args.found_first %},{% endif -%}\n {%- set ns_args.found_first = true -%}\n {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n {%- endfor -%}\n {%- elif function['arguments'] is string -%}\n {{- function['arguments'] -}}\n {%- endif -%}\n {{- '}<tool_call|>' -}}\n {%- endfor -%}\n {%- set ns.prev_message_type = 'tool_call' -%}\n {%- endif -%}\n\n {%- set ns_tr_out = namespace(flag=false) -%}\n {%- if message.get('tool_responses') -%}\n {#- Legacy: tool_responses embedded on the assistant message (Google/Gemma native) -#}\n {%- for tool_response in message['tool_responses'] -%}\n {{- format_tool_response_block(tool_response['name'] | default('unknown'), tool_response['response']) -}}\n {%- set ns_tr_out.flag = true -%}\n {%- set ns.prev_message_type = 'tool_response' -%}\n {%- endfor -%}\n {%- elif message.get('tool_calls') -%}\n {#- OpenAI Chat Completions: forward-scan consecutive role:tool messages -#}\n {%- set ns_tool_scan = namespace(stopped=false) -%}\n {%- for k in range(loop.index0 + 1, loop_messages | length) -%}\n {%- if ns_tool_scan.stopped -%}\n {%- elif loop_messages[k]['role'] != 'tool' -%}\n {%- set ns_tool_scan.stopped = true -%}\n {%- else -%}\n {%- set follow = loop_messages[k] -%}\n {#- Resolve tool_call_id to function name -#}\n {%- set ns_tname = namespace(name=follow.get('name') | default('unknown')) -%}\n {%- for tc in message['tool_calls'] -%}\n {%- if tc.get('id') == follow.get('tool_call_id') -%}\n {%- set ns_tname.name = tc['function']['name'] -%}\n {%- endif -%}\n {%- endfor -%}\n {#- Handle content as string or content-parts array -#}\n {%- set tool_body = follow.get('content') -%}\n {%- if tool_body is string -%}\n {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n {%- elif tool_body is sequence and tool_body is not string -%}\n {%- set ns_txt = namespace(s='') -%}\n {%- for part in tool_body -%}\n {%- if part.get('type') == 'text' -%}\n {%- set ns_txt.s = ns_txt.s + (part.get('text') | default('')) -%}\n {%- endif -%}\n {%- endfor -%}\n {{- format_tool_response_block(ns_tname.name, ns_txt.s) -}}\n {%- else -%}\n {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n {%- endif -%}\n {%- set ns_tr_out.flag = true -%}\n {%- set ns.prev_message_type = 'tool_response' -%}\n {%- endif -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- if message['content'] is string -%}\n {%- if role == 'model' -%}\n {{- strip_thinking(message['content']) -}}\n {%- else -%}\n {{- message['content'] | trim -}}\n {%- endif -%}\n {%- elif message['content'] is sequence -%}\n {%- for item in message['content'] -%}\n {%- if item['type'] == 'text' -%}\n {%- if role == 'model' -%}\n {{- strip_thinking(item['text']) -}}\n {%- else -%}\n {{- item['text'] | trim -}}\n {%- endif -%}\n {%- elif item['type'] == 'image' -%}\n {{- '<|image|>' -}}\n {%- set ns.prev_message_type = 'image' -%}\n {%- elif item['type'] == 'audio' -%}\n {{- '<|audio|>' -}}\n {%- set ns.prev_message_type = 'audio' -%}\n {%- elif item['type'] == 'video' -%}\n {{- '<|video|>' -}}\n {%- set ns.prev_message_type = 'video' -%}\n {%- endif -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- if ns.prev_message_type == 'tool_call' and not ns_tr_out.flag -%}\n {{- '<|tool_response>' -}}\n {%- elif not (ns_tr_out.flag and not message.get('content')) -%}\n {{- '<turn|>\\n' -}}\n {%- endif -%}\n {%- endif -%}\n{%- endfor -%}\n\n{%- if add_generation_prompt -%}\n {%- if ns.prev_message_type != 'tool_response' and ns.prev_message_type != 'tool_call' -%}\n {{- '<|turn>model\\n' -}}\n {%- endif -%}\n{%- endif -%}","stop":["<eos>"],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"cached_input":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-4-26B-A4B-it","object":"model","created":1776343034,"type":"chat","running":false,"display_name":"Gemma 4 26B A4b It","organization":"Google","link":"https://huggingface.co/api/models/google/gemma-4-26B-A4B-it","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":["<eos>"],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"minimax/speech-2.8-turbo","object":"model","created":1777593600,"type":"audio","running":false,"display_name":"Minimax Speech 2.8 Turbo","organization":"MiniMaxAI","context_length":448,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-4-E2B-it","uuid":"endpoint-f418147f-4b62-492f-bf2a-55665dd200fa","object":"model","created":1776814451,"type":"chat","running":false,"display_name":"Gemma 4 E2B-it","organization":"Google","link":"https://huggingface.co/api/models/google/gemma-4-E2B-it","license":"apache-2.0","context_length":131072,"config":{"chat_template":"{%- macro format_parameters(properties, required) -%}\n {%- set standard_keys = ['description', 'type', 'properties', 'required', 'nullable'] -%}\n {%- set ns = namespace(found_first=false) -%}\n {%- for key, value in properties | dictsort -%}\n {%- set add_comma = false -%}\n {%- if key not in standard_keys -%}\n {%- if ns.found_first %},{% endif -%}\n {%- set ns.found_first = true -%}\n {{ key }}:{\n {%- if value['description'] -%}\n description:<|\"|>{{ value['description'] }}<|\"|>\n {%- set add_comma = true -%}\n {%- endif -%}\n {%- if value['type'] | upper == 'STRING' -%}\n {%- if value['enum'] -%}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n enum:{{ format_argument(value['enum']) }}\n {%- endif -%}\n {%- elif value['type'] | upper == 'ARRAY' -%}\n {%- if value['items'] is mapping and value['items'] -%}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n items:{\n {%- set ns_items = namespace(found_first=false) -%}\n {%- for item_key, item_value in value['items'] | dictsort -%}\n {%- if item_value is not none -%}\n {%- if ns_items.found_first %},{% endif -%}\n {%- set ns_items.found_first = true -%}\n {%- if item_key == 'properties' -%}\n properties:{\n {%- if item_value is mapping -%}\n {{- format_parameters(item_value, value['items']['required'] | default([])) -}}\n {%- endif -%}\n }\n {%- elif item_key == 'required' -%}\n required:[\n {%- for req_item in item_value -%}\n <|\"|>{{- req_item -}}<|\"|>\n {%- if not loop.last %},{% endif -%}\n {%- endfor -%}\n ]\n {%- elif item_key == 'type' -%}\n {%- if item_value is string -%}\n type:{{ format_argument(item_value | upper) }}\n {%- else -%}\n type:{{ format_argument(item_value | map('upper') | list) }}\n {%- endif -%}\n {%- else -%}\n {{ item_key }}:{{ format_argument(item_value) }}\n {%- endif -%}\n {%- endif -%}\n {%- endfor -%}\n }\n {%- endif -%}\n {%- endif -%}\n {%- if value['nullable'] %}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n nullable:true\n {%- endif -%}\n {%- if value['type'] | upper == 'OBJECT' -%}\n {%- if value['properties'] is defined and value['properties'] is mapping -%}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n properties:{\n {{- format_parameters(value['properties'], value['required'] | default([])) -}}\n }\n {%- elif value is mapping -%}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n properties:{\n {{- format_parameters(value, value['required'] | default([])) -}}\n }\n {%- endif -%}\n {%- if value['required'] -%}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n required:[\n {%- for item in value['required'] | default([]) -%}\n <|\"|>{{- item -}}<|\"|>\n {%- if not loop.last %},{% endif -%}\n {%- endfor -%}\n ]\n {%- endif -%}\n {%- endif -%}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n type:<|\"|>{{ value['type'] | upper }}<|\"|>}\n {%- endif -%}\n {%- endfor -%}\n{%- endmacro -%}\n{%- macro format_function_declaration(tool_data) -%}\n declaration:{{- tool_data['function']['name'] -}}{description:<|\"|>{{- tool_data['function']['description'] -}}<|\"|>\n {%- set params = tool_data['function']['parameters'] -%}\n {%- if params -%}\n ,parameters:{\n {%- if params['properties'] -%}\n properties:{ {{- format_parameters(params['properties'], params['required']) -}} },\n {%- endif -%}\n {%- if params['required'] -%}\n required:[\n {%- for item in params['required'] -%}\n <|\"|>{{- item -}}<|\"|>\n {{- ',' if not loop.last -}}\n {%- endfor -%}\n ],\n {%- endif -%}\n {%- if params['type'] -%}\n type:<|\"|>{{- params['type'] | upper -}}<|\"|>}\n {%- endif -%}\n {%- endif -%}\n {%- if 'response' in tool_data['function'] -%}\n {%- set response_declaration = tool_data['function']['response'] -%}\n ,response:{\n {%- if response_declaration['description'] -%}\n description:<|\"|>{{- response_declaration['description'] -}}<|\"|>,\n {%- endif -%}\n {%- if response_declaration['type'] | upper == 'OBJECT' -%}\n type:<|\"|>{{- response_declaration['type'] | upper -}}<|\"|>}\n {%- endif -%}\n {%- endif -%}\n }\n{%- endmacro -%}\n{%- macro format_argument(argument, escape_keys=True) -%}\n {%- if argument is string -%}\n {{- '<|\"|>' + argument + '<|\"|>' -}}\n {%- elif argument is boolean -%}\n {{- 'true' if argument else 'false' -}}\n {%- elif argument is mapping -%}\n {{- '{' -}}\n {%- set ns = namespace(found_first=false) -%}\n {%- for key, value in argument | dictsort -%}\n {%- if ns.found_first %},{% endif -%}\n {%- set ns.found_first = true -%}\n {%- if escape_keys -%}\n {{- '<|\"|>' + key + '<|\"|>' -}}\n {%- else -%}\n {{- key -}}\n {%- endif -%}\n :{{- format_argument(value, escape_keys=escape_keys) -}}\n {%- endfor -%}\n {{- '}' -}}\n {%- elif argument is sequence -%}\n {{- '[' -}}\n {%- for item in argument -%}\n {{- format_argument(item, escape_keys=escape_keys) -}}\n {%- if not loop.last %},{% endif -%}\n {%- endfor -%}\n {{- ']' -}}\n {%- else -%}\n {{- argument -}}\n {%- endif -%}\n{%- endmacro -%}\n{%- macro strip_thinking(text) -%}\n {%- set ns = namespace(result='') -%}\n {%- for part in text.split('<channel|>') -%}\n {%- if '<|channel>' in part -%}\n {%- set ns.result = ns.result + part.split('<|channel>')[0] -%}\n {%- else -%}\n {%- set ns.result = ns.result + part -%}\n {%- endif -%}\n {%- endfor -%}\n {{- ns.result | trim -}}\n{%- endmacro -%}\n\n{%- macro format_tool_response_block(tool_name, response) -%}\n {{- '<|tool_response>' -}}\n {%- if response is mapping -%}\n {{- 'response:' + tool_name + '{' -}}\n {%- for key, value in response | dictsort -%}\n {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n {%- if not loop.last %},{% endif -%}\n {%- endfor -%}\n {{- '}' -}}\n {%- else -%}\n {{- 'response:' + tool_name + '{value:' + format_argument(response, escape_keys=False) + '}' -}}\n {%- endif -%}\n {{- '<tool_response|>' -}}\n{%- endmacro -%}\n\n{%- set ns = namespace(prev_message_type=None) -%}\n{%- set loop_messages = messages -%}\n{{- bos_token -}}\n{#- Handle System/Tool Definitions Block -#}\n{%- if (enable_thinking is defined and enable_thinking) or tools or messages[0]['role'] in ['system', 'developer'] -%}\n {{- '<|turn>system\\n' -}}\n\n {#- Inject Thinking token at the very top of the FIRST system turn -#}\n {%- if enable_thinking is defined and enable_thinking -%}\n {{- '<|think|>\\n' -}}\n {%- set ns.prev_message_type = 'think' -%}\n {%- endif -%}\n\n {%- if messages[0]['role'] in ['system', 'developer'] -%}\n {{- messages[0]['content'] | trim -}}\n {%- set loop_messages = messages[1:] -%}\n {%- endif -%}\n\n {%- if tools -%}\n {%- for tool in tools %}\n {{- '<|tool>' -}}\n {{- format_function_declaration(tool) | trim -}}\n {{- '<tool|>' -}}\n {%- endfor %}\n {%- set ns.prev_message_type = 'tool' -%}\n {%- endif -%}\n\n {{- '<turn|>\\n' -}}\n{%- endif %}\n\n{#- Pre-scan: find last user message index for reasoning guard -#}\n{%- set ns_turn = namespace(last_user_idx=-1) -%}\n{%- for i in range(loop_messages | length) -%}\n {%- if loop_messages[i]['role'] == 'user' -%}\n {%- set ns_turn.last_user_idx = i -%}\n {%- endif -%}\n{%- endfor -%}\n\n{#- Loop through messages -#}\n{%- for message in loop_messages -%}\n {%- if message['role'] != 'tool' -%}\n {%- set ns.prev_message_type = None -%}\n {%- set role = 'model' if message['role'] == 'assistant' else message['role'] -%}\n {#- Detect continuation: suppress duplicate <|turn>model when previous non-tool message was also assistant -#}\n {%- set prev_nt = namespace(role=None, found=false) -%}\n {%- if loop.index0 > 0 -%}\n {%- for j in range(loop.index0 - 1, -1, -1) -%}\n {%- if not prev_nt.found -%}\n {%- if loop_messages[j]['role'] != 'tool' -%}\n {%- set prev_nt.role = loop_messages[j]['role'] -%}\n {%- set prev_nt.found = true -%}\n {%- endif -%}\n {%- endif -%}\n {%- endfor -%}\n {%- endif -%}\n {%- set continue_same_model_turn = (role == 'model' and prev_nt.role == 'assistant') -%}\n {%- if not continue_same_model_turn -%}\n {{- '<|turn>' + role + '\\n' }}\n {%- endif -%}\n\n {#- Render reasoning/reasoning_content as thinking channel -#}\n {%- set thinking_text = message.get('reasoning') or message.get('reasoning_content') -%}\n {%- if thinking_text and loop.index0 > ns_turn.last_user_idx and message.get('tool_calls') -%}\n {{- '<|channel>thought\\n' + thinking_text + '\\n<channel|>' -}}\n {%- endif -%}\n\n {%- if message['tool_calls'] -%}\n {%- for tool_call in message['tool_calls'] -%}\n {%- set function = tool_call['function'] -%}\n {{- '<|tool_call>call:' + function['name'] + '{' -}}\n {%- if function['arguments'] is mapping -%}\n {%- set ns_args = namespace(found_first=false) -%}\n {%- for key, value in function['arguments'] | dictsort -%}\n {%- if ns_args.found_first %},{% endif -%}\n {%- set ns_args.found_first = true -%}\n {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n {%- endfor -%}\n {%- elif function['arguments'] is string -%}\n {{- function['arguments'] -}}\n {%- endif -%}\n {{- '}<tool_call|>' -}}\n {%- endfor -%}\n {%- set ns.prev_message_type = 'tool_call' -%}\n {%- endif -%}\n\n {%- set ns_tr_out = namespace(flag=false) -%}\n {%- if message.get('tool_responses') -%}\n {#- Legacy: tool_responses embedded on the assistant message (Google/Gemma native) -#}\n {%- for tool_response in message['tool_responses'] -%}\n {{- format_tool_response_block(tool_response['name'] | default('unknown'), tool_response['response']) -}}\n {%- set ns_tr_out.flag = true -%}\n {%- set ns.prev_message_type = 'tool_response' -%}\n {%- endfor -%}\n {%- elif message.get('tool_calls') -%}\n {#- OpenAI Chat Completions: forward-scan consecutive role:tool messages -#}\n {%- set ns_tool_scan = namespace(stopped=false) -%}\n {%- for k in range(loop.index0 + 1, loop_messages | length) -%}\n {%- if ns_tool_scan.stopped -%}\n {%- elif loop_messages[k]['role'] != 'tool' -%}\n {%- set ns_tool_scan.stopped = true -%}\n {%- else -%}\n {%- set follow = loop_messages[k] -%}\n {#- Resolve tool_call_id to function name -#}\n {%- set ns_tname = namespace(name=follow.get('name') | default('unknown')) -%}\n {%- for tc in message['tool_calls'] -%}\n {%- if tc.get('id') == follow.get('tool_call_id') -%}\n {%- set ns_tname.name = tc['function']['name'] -%}\n {%- endif -%}\n {%- endfor -%}\n {#- Handle content as string or content-parts array -#}\n {%- set tool_body = follow.get('content') -%}\n {%- if tool_body is string -%}\n {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n {%- elif tool_body is sequence and tool_body is not string -%}\n {%- set ns_txt = namespace(s='') -%}\n {%- for part in tool_body -%}\n {%- if part.get('type') == 'text' -%}\n {%- set ns_txt.s = ns_txt.s + (part.get('text') | default('')) -%}\n {%- endif -%}\n {%- endfor -%}\n {{- format_tool_response_block(ns_tname.name, ns_txt.s) -}}\n {%- else -%}\n {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n {%- endif -%}\n {%- set ns_tr_out.flag = true -%}\n {%- set ns.prev_message_type = 'tool_response' -%}\n {%- endif -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- if message['content'] is string -%}\n {%- if role == 'model' -%}\n {{- strip_thinking(message['content']) -}}\n {%- else -%}\n {{- message['content'] | trim -}}\n {%- endif -%}\n {%- elif message['content'] is sequence -%}\n {%- for item in message['content'] -%}\n {%- if item['type'] == 'text' -%}\n {%- if role == 'model' -%}\n {{- strip_thinking(item['text']) -}}\n {%- else -%}\n {{- item['text'] | trim -}}\n {%- endif -%}\n {%- elif item['type'] == 'image' -%}\n {{- '<|image|>' -}}\n {%- set ns.prev_message_type = 'image' -%}\n {%- elif item['type'] == 'audio' -%}\n {{- '<|audio|>' -}}\n {%- set ns.prev_message_type = 'audio' -%}\n {%- elif item['type'] == 'video' -%}\n {{- '<|video|>' -}}\n {%- set ns.prev_message_type = 'video' -%}\n {%- endif -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- if ns.prev_message_type == 'tool_call' and not ns_tr_out.flag -%}\n {{- '<|tool_response>' -}}\n {%- elif not (ns_tr_out.flag and not message.get('content')) -%}\n {{- '<turn|>\\n' -}}\n {%- endif -%}\n {%- endif -%}\n{%- endfor -%}\n\n{%- if add_generation_prompt -%}\n {%- if ns.prev_message_type != 'tool_response' and ns.prev_message_type != 'tool_call' -%}\n {{- '<|turn>model\\n' -}}\n {%- endif -%}\n{%- endif -%}","stop":["<eos>"],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3.6-35B-A3B-FP8","object":"model","created":1776874155,"type":"chat","running":false,"display_name":"Qwen3.6 35B A3b Fp8","organization":"Qwen","link":"https://huggingface.co/api/models/Qwen/Qwen3.6-35B-A3B-FP8","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":[],"bos_token":null,"eos_token":null},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning-fp8","object":"model","created":1777391713,"type":"chat","running":false,"display_name":"Nemotron 3 Nano Omni 30B A3b Reasoning Fp8","organization":"Nvidia","context_length":131072,"config":{"chat_template":"{% macro render_extra_keys(json_dict, handled_keys) %}\n {%- if json_dict is mapping %}\n {%- for json_key in json_dict if json_key not in handled_keys %}\n {%- if json_dict[json_key] is mapping or (json_dict[json_key] is sequence and json_dict[json_key] is not string) %}\n {{- '\\n<' ~ json_key ~ '>' ~ (json_dict[json_key] | tojson | safe) ~ '</' ~ json_key ~ '>' }}\n {%- else %}\n {{-'\\n<' ~ json_key ~ '>' ~ (json_dict[json_key] | string) ~ '</' ~ json_key ~ '>' }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n{% endmacro %}\n{%- set enable_thinking = enable_thinking if enable_thinking is defined else True %}\n{%- set truncate_history_thinking = truncate_history_thinking if truncate_history_thinking is defined else True %}\n\n{%- set ns = namespace(last_user_idx = -1) %}\n{%- set loop_messages = messages %}\n{%- for m in loop_messages %}\n {%- if m[\"role\"] == \"user\" %}\n {%- set ns.last_user_idx = loop.index0 %}\n {%- endif %}\n{%- endfor %}\n\n{%- if messages[0][\"role\"] == \"system\" %}\n {%- set system_message = messages[0][\"content\"] %}\n {%- set loop_messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n {%- set loop_messages = messages %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = [] %}\n{%- endif %}\n{# Recompute last_user_idx relative to loop_messages after handling system #}\n{%- set ns = namespace(last_user_idx = -1) %}\n{%- for m in loop_messages %}\n {%- if m[\"role\"] == \"user\" %}\n {%- set ns.last_user_idx = loop.index0 %}\n {%- endif %}\n{%- endfor %}\n{%- if system_message is defined %}\n {{- \"<|im_start|>system\\n\" + system_message }}\n{%- else %}\n {%- if tools is iterable and tools | length > 0 %}\n {{- \"<|im_start|>system\\n\" }}\n {%- endif %}\n{%- endif %}\n{%- if tools is iterable and tools | length > 0 %}\n {%- if system_message is defined and system_message | length > 0 %}\n {{- \"\\n\\n\" }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou have access to the following functions:\\n\\n\" }}\n {{- \"<tools>\" }}\n {%- for tool in tools %}\n {%- if tool.function is defined %}\n {%- set tool = tool.function %}\n {%- endif %}\n {{- \"\\n<function>\\n<name>\" ~ tool.name ~ \"</name>\" }}\n {%- if tool.description is defined %}\n {{- '\\n<description>' ~ (tool.description | trim) ~ '</description>' }}\n {%- endif %}\n {{- '\\n<parameters>' }}\n {%- if tool.parameters is defined and tool.parameters is mapping and tool.parameters.properties is defined and tool.parameters.properties is mapping %}\n {%- for param_name, param_fields in tool.parameters.properties|items %}\n {{- '\\n<parameter>' }}\n {{- '\\n<name>' ~ param_name ~ '</name>' }}\n {%- if param_fields.type is defined %}\n {{- '\\n<type>' ~ (param_fields.type | string) ~ '</type>' }}\n {%- endif %}\n {%- if param_fields.description is defined %}\n {{- '\\n<description>' ~ (param_fields.description | trim) ~ '</description>' }}\n {%- endif %}\n {%- if param_fields.enum is defined %}\n {{- '\\n<enum>' ~ (param_fields.enum | tojson | safe) ~ '</enum>' }}\n {%- endif %}\n {%- set handled_keys = ['name', 'type', 'description', 'enum'] %}\n {{- render_extra_keys(param_fields, handled_keys) }}\n {{- '\\n</parameter>' }}\n {%- endfor %}\n {%- endif %}\n {% set handled_keys = ['type', 'properties', 'required'] %}\n {{- render_extra_keys(tool.parameters, handled_keys) }}\n {%- if tool.parameters is defined and tool.parameters.required is defined %}\n {{- '\\n<required>' ~ (tool.parameters.required | tojson | safe) ~ '</required>' }}\n {%- endif %}\n {{- '\\n</parameters>' }}\n {%- set handled_keys = ['type', 'name', 'description', 'parameters'] %}\n {{- render_extra_keys(tool, handled_keys) }}\n {{- '\\n</function>' }}\n {%- endfor %}\n {{- \"\\n</tools>\" }}\n\n {{- '\\n\\nIf you choose to call a function ONLY reply in the following format with NO suffix:\\n\\n<tool_call>\\n<function=example_function_name>\\n<parameter=example_parameter_1>\\nvalue_1\\n</parameter>\\n<parameter=example_parameter_2>\\nThis is the value for the second parameter\\nthat can span\\nmultiple lines\\n</parameter>\\n</function>\\n</tool_call>\\n\\n<IMPORTANT>\\nReminder:\\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\\n- Required parameters MUST be specified\\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\\n</IMPORTANT>' }}\n{%- endif %}\n\n\n{%- if system_message is defined %}\n {{- '<|im_end|>\\n' }}\n{%- else %}\n {%- if tools is iterable and tools | length > 0 %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n\n{%- for message in loop_messages %}\n {%- if message.role == \"assistant\" %}\n {# Add reasoning content in to content field for unified processing below. #}\n {%- if message.reasoning_content is defined and message.reasoning_content is string and message.reasoning_content | trim | length > 0 %}\n {%- set content = \"<think>\\n\" ~ message.reasoning_content ~ \"\\n</think>\\n\" ~ (message.content | default('', true)) %}\n {%- else %}\n {%- set content = message.content | default('', true) %}\n {%- if content is string -%}\n {# Allow downstream logic to to take care of broken thought, only handle coherent reasoning here. #}\n {%- if '<think>' not in content and '</think>' not in content -%}\n {%- set content = \"<think></think>\" ~ content -%}\n {%- endif -%}\n {%- else -%}\n {%- set content = content -%}\n {%- endif -%}\n {%- endif %}\n {%- if message.tool_calls is defined and message.tool_calls is iterable and message.tool_calls | length > 0 %}\n {# Assistant message has tool calls. #}\n {{- '<|im_start|>assistant\\n' }}\n {%- set include_content = not (truncate_history_thinking and loop.index0 < ns.last_user_idx) %}\n {%- if content is string and content | trim | length > 0 %}\n {%- if include_content %}\n {{- (content | trim) ~ '\\n' -}}\n {%- else %}\n {%- set c = (content | string) %}\n {%- if '</think>' in c %}\n {# Keep only content after the last closing think. Also generation prompt causes this. #}\n {%- set c = c.split('</think>')[-1] %}\n {%- elif '<think>' in c %}\n {# If <think> was opened but never closed, drop the trailing think segment #}\n {%- set c = c.split('<think>')[0] %}\n {%- endif %}\n {%- set c = \"<think></think>\" ~ c | trim %}\n {%- if c | length > 0 %}\n {{- c ~ '\\n' -}}\n {%- endif %}\n {%- endif %}\n {%- else %}\n {{- \"<think></think>\" -}}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n<function=' ~ tool_call.name ~ '>\\n' -}}\n {%- if tool_call.arguments is defined %}\n {%- for args_name, args_value in tool_call.arguments|items %}\n {{- '<parameter=' ~ args_name ~ '>\\n' -}}\n {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}\n {{- args_value ~ '\\n</parameter>\\n' -}}\n {%- endfor %}\n {%- endif %}\n {{- '</function>\\n</tool_call>\\n' -}}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- else %}\n {# Assistant message doesn't have tool calls. #}\n {%- if not (truncate_history_thinking and loop.index0 < ns.last_user_idx) %}\n {{- '<|im_start|>assistant\\n' ~ (content | default('', true) | string | trim) ~ '<|im_end|>\\n' }}\n {%- else %}\n {%- set c = (content | default('', true) | string) %}\n {%- if '<think>' in c and '</think>' in c %}\n {%- set c = \"<think></think>\" ~ c.split('</think>')[-1] %}\n {%- endif %}\n {%- set c = c | trim %}\n {%- if c | length > 0 %}\n {{- '<|im_start|>assistant\\n' ~ c ~ '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>assistant\\n<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n {%- endif %}\n {%- elif message.role == \"user\" or message.role == \"system\" %}\n {{- '<|im_start|>' + message.role + '\\n' }}\n {%- set content = message.content | string %}\n {{- content }}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.previtem and loop.previtem.role != \"tool\" %}\n {{- '<|im_start|>user\\n' }}\n {%- endif %}\n {{- '<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>\\n' }}\n {%- if not loop.last and loop.nextitem.role != \"tool\" %}\n {{- '<|im_end|>\\n' }}\n {%- elif loop.last %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endfor %}\n\n{%- if add_generation_prompt %}\n {%- if enable_thinking %}\n {{- '<|im_start|>assistant\\n<think>\\n' }}\n {%- else %}\n {{- '<|im_start|>assistant\\n<think></think>' }}\n {%- endif %}\n{%- endif %}\n","stop":["<|im_end|>"],"bos_token":"<s>","eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-3.3-70B-Instruct-FP8-Lora","object":"model","created":1778108492,"type":"chat","running":false,"display_name":"Llama 3.3 70B Instruct FP8 Lora","organization":"Meta","context_length":131072,"config":{"chat_template":"{{- bos_token }}\n{%- if custom_tools is defined %}\n {%- set tools = custom_tools %}\n{%- endif %}\n{%- if not tools_in_user_message is defined %}\n {%- set tools_in_user_message = true %}\n{%- endif %}\n{%- if not date_string is defined %}\n {%- set date_string = \"26 Jul 2024\" %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n{%- endif %}\n\n{#- System message + builtin tools #}\n{{- \"<|start_header_id|>system<|end_header_id|>\\n\\n\" }}\n{%- if builtin_tools is defined or tools is not none %}\n {{- \"Environment: ipython\\n\" }}\n{%- endif %}\n{%- if builtin_tools is defined %}\n {{- \"Tools: \" + builtin_tools | reject('equalto', 'code_interpreter') | join(\", \") + \"\\n\\n\"}}\n{%- endif %}\n{{- \"Cutting Knowledge Date: December 2023\\n\" }}\n{{- \"Today Date: \" + date_string + \"\\n\\n\" }}\n{%- if tools is not none and not tools_in_user_message %}\n {{- \"You have access to the following functions. To call a function, please respond with JSON for a function call.\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n{%- endif %}\n{{- system_message }}\n{{- \"<|eot_id|>\" }}\n\n{#- Custom tools are passed in a user message with some extra guidance #}\n{%- if tools_in_user_message and not tools is none %}\n {#- Extract the first user message so we can plug it in here #}\n {%- if messages | length != 0 %}\n {%- set first_user_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n {%- else %}\n {{- raise_exception(\"Cannot put tools in the first user message when there's no first user message!\") }}\n{%- endif %}\n {{- '<|start_header_id|>user<|end_header_id|>\\n\\n' -}}\n {{- \"Given the following functions, please respond with a JSON for a function call \" }}\n {{- \"with its proper arguments that best answers the given prompt.\\n\\n\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n {{- first_user_message + \"<|eot_id|>\"}}\n{%- endif %}\n\n{%- for message in messages %}\n {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}\n {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n'+ message['content'] | trim + '<|eot_id|>' }}\n {%- elif 'tool_calls' in message %}\n {%- if not message.tool_calls|length == 1 %}\n {{- raise_exception(\"This model only supports single tool-calls at once!\") }}\n {%- endif %}\n {%- set tool_call = message.tool_calls[0].function %}\n {%- if builtin_tools is defined and tool_call.name in builtin_tools %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- \"<|python_tag|>\" + tool_call.name + \".call(\" }}\n {%- for arg_name, arg_val in tool_call.arguments | items %}\n {{- arg_name + '=\"' + arg_val + '\"' }}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- endif %}\n {%- endfor %}\n {{- \")\" }}\n {%- else %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- '{\"name\": \"' + tool_call.name + '\", ' }}\n {{- '\"parameters\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- \"}\" }}\n {%- endif %}\n {%- if builtin_tools is defined %}\n {#- This means we're in ipython mode #}\n {{- \"<|eom_id|>\" }}\n {%- else %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n {{- \"<|start_header_id|>ipython<|end_header_id|>\\n\\n\" }}\n {%- if message.content is mapping or message.content is iterable %}\n {{- message.content | tojson }}\n {%- else %}\n {{- message.content }}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' }}\n{%- endif %}\n","stop":["<|eot_id|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot_id|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"mistralai/Mixtral-8x7B-Instruct-v0.1-FP8-Lora","object":"model","created":1778113354,"type":"chat","running":false,"display_name":"Mixtral 8x7B Instruct V0.1 FP8 Lora","organization":"Mistral AI","context_length":32768,"config":{"chat_template":"{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content'] %}\n {%- set loop_messages = messages[1:] %}\n{%- else %}\n {%- set loop_messages = messages %}\n{%- endif %}\n\n{{- bos_token }}\n{%- for message in loop_messages %}\n {%- if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}\n {{- raise_exception('After the optional system message, conversation roles must alternate user/assistant/user/assistant/...') }}\n {%- endif %}\n {%- if message['role'] == 'user' %}\n {%- if loop.first and system_message is defined %}\n {{- ' [INST] ' + system_message + '\\n\\n' + message['content'] + ' [/INST]' }}\n {%- else %}\n {{- ' [INST] ' + message['content'] + ' [/INST]' }}\n {%- endif %}\n {%- elif message['role'] == 'assistant' %}\n {{- ' ' + message['content'] + eos_token}}\n {%- else %}\n {{- raise_exception('Only user and assistant roles are supported, with the exception of an initial optional system message!') }}\n {%- endif %}\n{%- endfor %}\n","stop":["</s>"],"bos_token":"<s>","eos_token":"</s>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"cartesia/sonic-3.5","object":"model","created":1778025600,"type":"audio","running":false,"display_name":"Cartesia Sonic 3.5","organization":"Cartesia","context_length":448,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-3-270m-it-lora","object":"model","created":1778127957,"type":"chat","running":false,"display_name":"Gemma 3 270M It Lora","organization":"Google","context_length":32768,"config":{"chat_template":null,"stop":["<eos>"],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct-FP8-Lora","object":"model","created":1779220285,"type":"chat","running":false,"display_name":"Llama 4 Scout 17B 16E Instruct Fp8 Lora","organization":"Meta","context_length":10485760,"config":{"chat_template":"{{- bos_token }}\n{%- if custom_tools is defined %}\n {%- set tools = custom_tools %}\n{%- endif %}\n{%- if not tools_in_user_message is defined %}\n {%- set tools_in_user_message = true %}\n{%- endif %}\n{%- if not date_string is defined %}\n {%- if strftime_now is defined %}\n {%- set date_string = strftime_now(\"%d %b %Y\") %}\n {%- else %}\n {%- set date_string = \"26 Jul 2024\" %}\n {%- endif %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %} \n {%- if messages[0]['content'] is string %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- else %}\n {#- FIXME: The processor requires an array, always. #}\n {%- set system_message = messages[0]['content'][0]['text']|trim %}\n {%- endif %}\n {%- set messages = messages[1:] %}\n {%- set user_supplied_system_message = true %}\n{%- else %}\n {%- set system_message = \"\" %}\n {%- set user_supplied_system_message = false %}\n{%- endif %}\n\n{#- System message if the user supplied one #}\n{%- if user_supplied_system_message %}\n {{- \"<|header_start|>system<|header_end|>\\n\\n\" }}\n {%- if tools is not none %}\n {{- \"Environment: ipython\\n\" }}\n {%- endif %}\n {%- if tools is not none and not tools_in_user_message %}\n {{- \"You have access to the following functions. To call a function, please respond with JSON for a function call.\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n {%- endif %}\n {{- system_message }}\n {{- \"<|eot|>\" }}\n{%- endif %}\n\n{#- Custom tools are passed in a user message with some extra guidance #}\n{%- if tools_in_user_message and not tools is none %}\n {#- Extract the first user message so we can plug it in here #}\n {%- if messages | length != 0 %}\n {%- set first_user_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n {%- else %}\n {{- raise_exception(\"Cannot put tools in the first user message when there's no first user message!\") }}\n{%- endif %}\n {{- '<|header_start|>user<|header_end|>\\n\\n' -}}\n {{- \"Given the following functions, please respond with a JSON for a function call \" }}\n {{- \"with its proper arguments that best answers the given prompt.\\n\\n\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n {{- first_user_message + \"<|eot|>\"}}\n{%- endif %}\n\n{%- for message in messages %}\n {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}\n {{- '<|header_start|>' + message['role'] + '<|header_end|>\\n\\n' }}\n {%- if message['content'] is string %}\n {{- message['content'] }}\n {%- else %}\n {%- for content in message['content'] %}\n {%- if content['type'] == 'image' %}\n {{- '<|image|>' }}\n {%- elif content['type'] == 'text' %}\n {{- content['text'] }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- \"<|eot|>\" }}\n {%- elif 'tool_calls' in message and message.tool_calls|length > 0 %}\n {{- '<|header_start|>assistant<|header_end|>\\n\\n' -}}\n {{- '<|python_start|>' }}\n {%- if message['content'] is string %}\n {{- message['content'] }}\n {%- else %}\n {%- for content in message['content'] %}\n {%- if content['type'] == 'image' %}\n {{- '<|image|>' }}\n {%- elif content['type'] == 'text' %}\n {{- content['text'] }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|python_end|>' }}\n {%- for tool_call in message.tool_calls %}\n {{- '{\"name\": \"' + tool_call.function.name + '\", ' }}\n {{- '\"parameters\": ' }}\n {{- tool_call.function.arguments | tojson }}\n {{- \"}\" }}\n {%- endfor %}\n {{- \"<|eot|>\" }}\n {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n {{- \"<|header_start|>ipython<|header_end|>\\n\\n\" }}\n {%- if message.content is mapping or message.content is iterable %}\n {{- message.content | tojson }}\n {%- else %}\n {{- message.content }}\n {%- endif %}\n {{- \"<|eot|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|header_start|>assistant<|header_end|>\\n\\n' }}\n{%- endif %}\n","stop":["<|eot|>"],"bos_token":"<|begin_of_text|>","eos_token":"<|eot|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"rime-labs/rime-mist-v3-omni","object":"model","created":1778112000,"type":"audio","running":false,"display_name":"Rime Labs Mist v3 Omni","organization":"Rime Labs","context_length":448,"config":{"chat_template":null,"stop":["<|endoftext|>"],"bos_token":"<|endoftext|>","eos_token":"<|endoftext|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-3-27b-it-lora","object":"model","created":1778887487,"type":"chat","running":false,"display_name":"Gemma 3 27B It Lora","organization":"Google","config":{"chat_template":"{{ bos_token }}\n{%- if messages[0]['role'] == 'system' -%}\n {%- if messages[0]['content'] is string -%}\n {%- set first_user_prefix = messages[0]['content'] + '\n\n' -%}\n {%- else -%}\n {%- set first_user_prefix = messages[0]['content'][0]['text'] + '\n\n' -%}\n {%- endif -%}\n {%- set loop_messages = messages[1:] -%}\n{%- else -%}\n {%- set first_user_prefix = \"\" -%}\n {%- set loop_messages = messages -%}\n{%- endif -%}\n{%- for message in loop_messages -%}\n {%- if (message['role'] == 'user') != (loop.index0 % 2 == 0) -%}\n {{ raise_exception(\"Conversation roles must alternate user/assistant/user/assistant/...\") }}\n {%- endif -%}\n {%- if (message['role'] == 'assistant') -%}\n {%- set role = \"model\" -%}\n {%- else -%}\n {%- set role = message['role'] -%}\n {%- endif -%}\n {{ '<start_of_turn>' + role + '\n' + (first_user_prefix if loop.first else \"\") }}\n {%- if message['content'] is string -%}\n {{ message['content'] | trim }}\n {%- elif message['content'] is iterable -%}\n {%- for item in message['content'] -%}\n {%- if item['type'] == 'image' -%}\n {{ '<start_of_image>' }}\n {%- elif item['type'] == 'text' -%}\n {{ item['text'] | trim }}\n {%- endif -%}\n {%- endfor -%}\n {%- else -%}\n {{ raise_exception(\"Invalid content type\") }}\n {%- endif -%}\n {{ '<end_of_turn>\n' }}\n{%- endfor -%}\n{%- if add_generation_prompt -%}\n {{'<start_of_turn>model\n'}}\n{%- endif -%}\n","stop":["<eos>"],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-4-31B-it-lora","object":"model","created":1779138130,"type":"chat","running":false,"display_name":"Gemma 4 31B It Lora","organization":"Google","link":"https://huggingface.co/api/models/google/gemma-4-31B-it","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":["<eos>"],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP4","object":"model","created":1780433820,"type":"chat","running":false,"display_name":"Llama 4 Maverick 17B 128E Instruct Nvfp4","organization":"Meta","link":"https://huggingface.co/api/models/RedHatAI/Llama-4-Maverick-17B-128E-Instruct-NVFP4","license":"llama3.1","context_length":1048576,"config":{"chat_template":"{{- bos_token }}\n{%- if custom_tools is defined and custom_tools%}\n {%- set tools = custom_tools %}\n{%- endif %}\n{%- if tools is defined and tools %}\n {%- set tool_definition = tool_definition ~ (tools | tojson(indent=4)) %}\n{%- else %}\n {%- set tools = none %}\n{%- endif %}\n\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set user_provided_system_message = true %}\n {%- if messages[0]['content'] is string %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- else %}\n {%- set system_message = messages[0]['content'][0]['text']|trim %}\n {%- endif %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- if tools is not none %}\n {#- Since not system_message was provided by user, if tool is provided, system_message is now default tool system message #}\n {#- This system message is from llama website:https://www.llama.com/docs/model-cards-and-prompt-formats/llama4/ #}\n {%- set system_message = \"You are a helpful assistant and an expert in function composition. You can answer general questions using your internal knowledge OR invoke functions when necessary. Follow these strict guidelines:\\n\\n1. FUNCTION CALLS:\\n- ONLY use functions that are EXPLICITLY listed in the function list below\\n- If NO functions are listed (empty function list []), respond ONLY with internal knowledge or \\\"I don't have access to [Unavailable service] information\\\"\\n- If a function is not in the list, respond ONLY with internal knowledge or \\\"I don't have access to [Unavailable service] information\\\"\\n- If ALL required parameters are present AND the query EXACTLY matches a listed function's purpose: output ONLY the function call(s)\\n- Use exact format: [func_name1(param1=value1, param2=value2), func_name2(...)]\\nExamples:\\nCORRECT: [get_weather(location=\\\"Vancouver\\\"), calculate_route(start=\\\"Boston\\\", end=\\\"New York\\\")] <- Only if get_weather and calculate_route are in function list\\nINCORRECT: get_weather(location=\\\"New York\\\")\\nINCORRECT: Let me check the weather: [get_weather(location=\\\"New York\\\")]\\nINCORRECT: [get_events(location=\\\"Singapore\\\")] <- If function not in list\\n\\n2. RESPONSE RULES:\\n- For pure function requests matching a listed function: ONLY output the function call(s)\\n- For knowledge questions: ONLY output text\\n- For missing parameters: ONLY request the specific missing parameters\\n- For unavailable services (not in function list): output ONLY with internal knowledge or \\\"I don't have access to [Unavailable service] information\\\". Do NOT execute a function call.\\n- If the query asks for information beyond what a listed function provides: output ONLY with internal knowledge about your limitations\\n- NEVER combine text and function calls in the same response\\n- NEVER suggest alternative functions when the requested service is unavailable\\n- NEVER create or invent new functions not listed below\\n\\n3. STRICT BOUNDARIES:\\n- ONLY use functions from the list below - no exceptions\\n- NEVER use a function as an alternative to unavailable information\\n- NEVER call functions not present in the function list\\n- NEVER add explanatory text to function calls\\n- NEVER respond with empty brackets\\n- Use proper Python/JSON syntax for function calls\\n- Check the function list carefully before responding\\n\\n4. TOOL RESPONSE HANDLING:\\n- When receiving tool responses: provide concise, natural language responses\\n- Don't repeat tool response verbatim\\n- Don't add supplementary information\\n\\nHere is a list of functions in JSON format that you can invoke:\\n\" %}\n {%- else %}\n {%- set system_message = \"\" %}\n {%- endif %}\n{%- endif %}\n{#- Now writing the system message: use the user provided system message if user_provided_system_message, else default tool system message if tools presented #}\n{%- if system_message %}\n {#- always use user provided system message to override default tool system message #}\n {{- \"<|header_start|>system<|header_end|>\\n\\n\" }}\n {{- system_message }}\n {%- if user_provided_system_message and tools %}\n {{- \"\\nHere is a list of functions in JSON format that you can invoke. Use exact format: [func_name1(param1=value1, param2=value2), func_name2(...)]\\n\" }}\n {{- tool_definition -}}\n {%- elif tool_definition %}\n {{- tool_definition -}}\n {%- endif %}\n {{- \"<|eot|>\" }}\n{%- endif %}\n\n{#- Now deal with all other messages #}\n{%- for message in messages %}\n {#- Base case: messages that are not from tool role and has empty tool_call list #}\n {%- if not (message.role == 'ipython' or message.role == 'tool' or ('tool_calls' in message and message.tool_calls|length != 0 )) %}\n {{- '<|header_start|>' + message['role'] + '<|header_end|>\\n\\n' }}\n {%- if message['content'] is string %}\n {{- message['content'] }}\n {%- else %}\n {%- for content in message['content'] %}\n {%- if content['type'] == 'image' %}\n {{- '<|image|>' }}\n {%- elif content['type'] == 'text' %}\n {{- content['text'] | trim }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- \"<|eot|>\" }}\n {#- Tool case: messages has non-empty tool_call list, must from assistant #}\n {%- elif 'tool_calls' in message %}\n {#- assume tool_calls are always coming from assistant #}\n {%- if message.role == 'assistant' %}\n {{- '<|header_start|>assistant<|header_end|>\\n\\n' -}}\n {%- if message['content'] is string %}\n {{- message['content'] }}\n {%- else %}\n {%- for content in message['content'] %}\n {%- if content['type'] == 'image' %}\n {{- '<|image|>' }}\n {%- elif content['type'] == 'text' %}\n {{- content['text'] }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- \"[\" }}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- tool_call.name + '(' -}}\n {%- for param in tool_call.arguments %}\n {{- param + '=\"' -}}\n {{- \"%s\" | format(tool_call.arguments[param]) -}}\n {{- '\"' -}}\n {% if not loop.last %}, {% endif %}\n {%- endfor %}\n {{- ')' -}}\n {% if not loop.last %}, {% endif %}\n {%- endfor %}\n {{- \"]<|eot|>\" }}\n{%- endif %}\n{#- Tool_response case: messages are from tool_response #}\n {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n {{- \"<|header_start|>ipython<|header_end|>\\n\\n\" }}\n {%- if message.content is string %}\n {{- message.content | tojson }}\n {%- else %}\n {%- for content in message['content'] %}\n {%- if content['type'] == 'text' %}\n {{- content['text'] | tojson }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- \"<|eot|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|header_start|>assistant<|header_end|>\\n\\n' }}\n{%- endif %}","stop":[],"bos_token":"<|begin_of_text|>","eos_token":"<|eot|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3.5-35B-A3B-Lora","object":"model","created":0,"type":"chat","running":false,"display_name":"Qwen3.5 35B A3B Lora","organization":"Qwen","context_length":262144,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- messages[0].content + '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0].content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if message.content is string %}\n {%- set content = message.content %}\n {%- else %}\n {%- set content = '' %}\n {%- endif %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}","stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3.5-2B-Lora","object":"model","created":1782724957,"type":"chat","running":false,"display_name":"Qwen3.5 2B Lora","organization":"Qwen","context_length":262144,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- messages[0].content + '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0].content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if message.content is string %}\n {%- set content = message.content %}\n {%- else %}\n {%- set content = '' %}\n {%- endif %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}","stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"Qwen/Qwen3.6-35B-A3B-Lora","object":"model","created":1782725489,"type":"chat","running":false,"display_name":"Qwen3.6 35B A3B Lora","organization":"Qwen","context_length":262144,"config":{"chat_template":"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- messages[0].content + '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0].content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if message.content is string %}\n {%- set content = message.content %}\n {%- else %}\n {%- set content = '' %}\n {%- endif %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}","stop":["<|im_end|>"],"bos_token":null,"eos_token":"<|im_end|>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}},{"id":"google/gemma-4-12B-it","uuid":"model-93aed4bc-2d1c-4bb5-b4dc-c5ef78097d17","object":"model","created":1783909139,"type":"chat","running":false,"display_name":"Gemma 4 12B It","organization":"Google","link":"https://huggingface.co/google/gemma-4-12B-it","license":"apache-2.0","context_length":262144,"config":{"chat_template":null,"stop":["<eos>"],"bos_token":"<bos>","eos_token":"<eos>"},"pricing":{"hourly":0,"input":0,"output":0,"base":0,"finetune":0,"cached_input":0,"image_pixel":0,"transcribe":0,"image":0,"video":0}}]
\ No newline at end of file
added docs/research/probes/xai.json +1 −0
@@ -0,0 +1 @@
1 +{"data":[{"id":"grok-4.20-0309-non-reasoning","aliases":["grok-4.20-non-reasoning","grok-4.20-non-reasoning-latest","grok-4.20-beta-non-reasoning","grok-4.20-beta-latest-non-reasoning","grok-4.20-experimental-beta-0304-non-reasoning","grok-4.20-experimental-beta-non-reasoning-latest","grok-4.20-beta-0309-non-reasoning","grok-4.20-non-reasoning-gv2"],"context_length":1000000,"created":1773014400,"object":"model","owned_by":"xai","prompt_text_token_price":12500,"cached_prompt_text_token_price":2000,"prompt_image_token_price":12500,"completion_text_token_price":25000,"prompt_text_token_price_long_context":25000,"cached_prompt_text_token_price_long_context":4000,"completion_text_token_price_long_context":50000,"long_context_threshold":200000},{"id":"grok-4.20-0309-reasoning","aliases":["grok-4.20-reasoning-latest","grok-4.20","grok-4.20-reasoning","grok-4.20-0309","grok-4.20-beta-0309-reasoning","grok-4.20-beta","grok-4.20-beta-0309","grok-4.20-beta-latest","grok-4.20-beta-latest-reasoning","grok-4.20-beta-reasoning","grok-4.20-experimental-beta-0304-reasoning","grok-4.20-experimental-beta-0304","grok-4.20-experimental-beta-reasoning-latest","grok-4.20-experimental-beta-latest","grok-4.20-reasoning-gv2"],"context_length":1000000,"created":1773014400,"object":"model","owned_by":"xai","prompt_text_token_price":12500,"cached_prompt_text_token_price":2000,"prompt_image_token_price":12500,"completion_text_token_price":25000,"prompt_text_token_price_long_context":25000,"cached_prompt_text_token_price_long_context":4000,"completion_text_token_price_long_context":50000,"long_context_threshold":200000},{"id":"grok-4.20-multi-agent-0309","aliases":["grok-4.20-multi-agent","grok-4.20-multi-agent-latest","grok-4.20-multi-agent-beta-latest","grok-4.20-multi-agent-experimental-beta-0304","grok-4.20-multi-agent-experimental-beta-latest","grok-4.20-multi-agent-beta-0309"],"context_length":1000000,"created":1773014400,"object":"model","owned_by":"xai","prompt_text_token_price":12500,"cached_prompt_text_token_price":2000,"prompt_image_token_price":12500,"completion_text_token_price":25000,"prompt_text_token_price_long_context":25000,"cached_prompt_text_token_price_long_context":4000,"completion_text_token_price_long_context":50000,"long_context_threshold":200000},{"id":"grok-4.3","aliases":["grok-4.3-latest","grok-latest"],"context_length":1000000,"created":1776384000,"object":"model","owned_by":"xai","prompt_text_token_price":12500,"cached_prompt_text_token_price":2000,"prompt_image_token_price":12500,"completion_text_token_price":25000,"prompt_text_token_price_long_context":25000,"cached_prompt_text_token_price_long_context":4000,"completion_text_token_price_long_context":50000,"long_context_threshold":200000},{"id":"grok-4.5","aliases":["grok-4.5-latest","grok-build-latest"],"context_length":500000,"created":1782691200,"object":"model","owned_by":"xai","prompt_text_token_price":20000,"cached_prompt_text_token_price":3000,"prompt_image_token_price":20000,"completion_text_token_price":60000,"prompt_text_token_price_long_context":40000,"cached_prompt_text_token_price_long_context":6000,"completion_text_token_price_long_context":120000,"long_context_threshold":200000},{"id":"grok-build-0.1","aliases":["grok-code-fast-1","grok-code-fast","grok-code-fast-1-0825"],"context_length":256000,"created":1776297600,"object":"model","owned_by":"xai","prompt_text_token_price":10000,"cached_prompt_text_token_price":2000,"prompt_image_token_price":10000,"completion_text_token_price":20000,"prompt_text_token_price_long_context":20000,"cached_prompt_text_token_price_long_context":4000,"completion_text_token_price_long_context":40000,"long_context_threshold":200000},{"id":"grok-imagine-image","aliases":["grok-imagine-image-2026-03-02"],"context_length":8000,"created":1769558400,"object":"model","owned_by":"xai","image_price":200000000},{"id":"grok-imagine-image-quality","aliases":["grok-imagine-image-quality-20260403","grok-imagine-image-quality-latest","grok-imagine-image-pro"],"context_length":8000,"created":1775174400,"object":"model","owned_by":"xai","image_price":500000000},{"id":"grok-imagine-video","aliases":[],"created":1769558400,"object":"model","owned_by":"xai"},{"id":"grok-imagine-video-1.5","aliases":["grok-imagine-video-1.5-preview","grok-imagine-video-1.5-2026-05-30"],"created":1779840000,"object":"model","owned_by":"xai"}],"object":"list"}
\ No newline at end of file
2