diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 08ca8c19e..ba05e9cfe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -57,7 +57,9 @@ jobs: run: pnpm run installRuntime:win:${{ matrix.arch }} - name: Build Windows - run: pnpm run build:win:${{ matrix.arch }} + run: | + pnpm run build + pnpm exec electron-builder --win --${{ matrix.arch }} --publish=never env: VITE_GITHUB_CLIENT_ID: ${{ secrets.DC_GITHUB_CLIENT_ID }} VITE_GITHUB_CLIENT_SECRET: ${{ secrets.DC_GITHUB_CLIENT_SECRET }} @@ -111,7 +113,9 @@ jobs: # run: pnpm run installRuntime:linux:${{ matrix.arch }} - name: Build Linux - run: pnpm run build:linux:${{ matrix.arch }} + run: | + pnpm run build + pnpm exec electron-builder --linux --${{ matrix.arch }} --publish=never env: VITE_GITHUB_CLIENT_ID: ${{ secrets.DC_GITHUB_CLIENT_ID }} VITE_GITHUB_CLIENT_SECRET: ${{ secrets.DC_GITHUB_CLIENT_SECRET }} @@ -166,7 +170,9 @@ jobs: run: pnpm run installRuntime:mac:${{ matrix.arch }} - name: Build Mac - run: pnpm run build:mac:${{ matrix.arch }} + run: | + pnpm run build + pnpm exec electron-builder --mac --${{ matrix.arch }} --publish=never env: CSC_LINK: ${{ secrets.DEEPCHAT_CSC_LINK }} CSC_KEY_PASSWORD: ${{ secrets.DEEPCHAT_CSC_KEY_PASS }} diff --git a/.github/workflows/deploy_canary.yml b/.github/workflows/deploy_canary.yml deleted file mode 100644 index af055a8ca..000000000 --- a/.github/workflows/deploy_canary.yml +++ /dev/null @@ -1,93 +0,0 @@ -name: Deploy canary to Qiniu CDN - -on: - workflow_dispatch: - inputs: - workflow_id: - description: 'Build workflow run ID to use for artifacts' - required: true - type: string - -jobs: - deploy-cdn: - runs-on: self-hosted - steps: - - name: Download artifacts from workflow - uses: dawidd6/action-download-artifact@v6 - with: - workflow_conclusion: success - run_id: ${{ github.event.inputs.workflow_id }} - path: artifacts - - - name: List downloaded artifacts - run: find artifacts -type f | sort - - - name: Prepare CDN upload structure - run: | - mkdir -p canary2/{linuxx64,macarm,macx64,winx64} - - # Process Linux x64 artifacts - if [ -d "artifacts/deepchat-linux-x64" ]; then - echo "Processing Linux x64 artifacts..." - cp -r artifacts/deepchat-linux-x64/* canary2/linuxx64/ 2>/dev/null || true - fi - - # Process Mac arm64 artifacts - if [ -d "artifacts/deepchat-mac-arm64" ]; then - echo "Processing Mac arm64 artifacts..." - cp -r artifacts/deepchat-mac-arm64/* canary2/macarm/ 2>/dev/null || true - fi - - # Process Mac x64 artifacts - if [ -d "artifacts/deepchat-mac-x64" ]; then - echo "Processing Mac x64 artifacts..." - cp -r artifacts/deepchat-mac-x64/* canary2/macx64/ 2>/dev/null || true - fi - - # Process Windows x64 artifacts - if [ -d "artifacts/deepchat-win-x64" ]; then - echo "Processing Windows x64 artifacts..." - cp -r artifacts/deepchat-win-x64/* canary2/winx64/ 2>/dev/null || true - fi - - echo "CDN upload structure prepared:" - find canary2 -type f | sort - - - name: Upload to Qiniu CDN - uses: hujiulong/action-qiniu-upload@master - with: - # Your qiniu access key, required. - access_key: ${{ secrets.QINIU_CDN_AK }} - - # Your qiniu secret key, required. - secret_key: ${{ secrets.QINIU_CDN_SK }} - - # Bucket name, required. - bucket: ${{ secrets.QINIU_BUCKET }} - - # The local directory you want to upload to bucket. - source_dir: 'canary2' - - # The directory inside of the bucket you want to upload to. - dest_dir: '/' - - # Whether to ignore source maps. - ignore_source_map: false - - - name: Upload Summary - run: | - echo "✅ CDN 部署完成!" - echo "📦 版本: v${{ github.event.inputs.version }}" - echo "" - echo "🗂️ CDN 目录结构:" - echo "📁 canary2/ (完整产物)" - echo " - linuxx64/ (所有 Linux x64 文件)" - echo " - macarm/ (所有 Mac ARM64 文件)" - echo " - macx64/ (所有 Mac x64 文件)" - echo " - winx64/ (所有 Windows x64 文件)" - echo "" - echo "📁 download2/v${{ github.event.inputs.version }}/ (仅可执行文件)" - echo " - *.tar.gz (Linux 压缩包)" - echo " - *.AppImage (Linux 可执行文件)" - echo " - *.dmg (Mac 安装包)" - echo " - *.exe (Windows 可执行文件)" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1209a9066..8065fdda9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,45 +1,341 @@ -name: Create Release +name: Release on: workflow_dispatch: inputs: - workflow_id: - description: 'Build workflow run ID to use for artifacts' + tag: + description: 'Release tag (e.g. v0.5.5 v0.5.6-beta.1)' required: true type: string - prerelease: - description: 'Is this a prerelease?' - required: true - type: boolean - default: false + push: + tags: + - v*.*.* + +permissions: + contents: write jobs: - create-release: + resolve-tag: runs-on: ubuntu-latest + outputs: + tag: ${{ steps.resolve.outputs.tag }} + sha: ${{ steps.resolve.outputs.sha }} steps: - - name: Download artifacts from workflow - uses: dawidd6/action-download-artifact@v6 + - name: Resolve tag + id: resolve + uses: actions/github-script@v7 with: - workflow_conclusion: success - run_id: ${{ github.event.inputs.workflow_id }} - path: artifacts + script: | + const isDispatch = context.eventName === 'workflow_dispatch' + const tag = isDispatch + ? context.payload.inputs?.tag + : context.ref.replace('refs/tags/', '') + if (!tag) { + core.setFailed('Tag is required') + return + } + + const owner = context.repo.owner + const repo = context.repo.repo + const refName = `tags/${tag}` + + const resolveTagSha = async (refData) => { + let sha = refData.object.sha + if (refData.object.type === 'tag') { + const tagObj = await github.rest.git.getTag({ + owner, + repo, + tag_sha: sha + }) + sha = tagObj.data.object.sha + } + return sha + } + + if (isDispatch) { + try { + const { data } = await github.rest.git.getRef({ + owner, + repo, + ref: refName + }) + const sha = await resolveTagSha(data) + core.setOutput('sha', sha) + } catch (error) { + const sha = context.sha + await github.rest.git.createRef({ + owner, + repo, + ref: `refs/${refName}`, + sha + }) + core.setOutput('sha', sha) + } + } else { + try { + const { data } = await github.rest.git.getRef({ + owner, + repo, + ref: refName + }) + const sha = await resolveTagSha(data) + core.setOutput('sha', sha) + } catch (error) { + core.setFailed(`Tag ${tag} not found`) + return + } + } + + core.setOutput('tag', tag) + + build-windows: + needs: resolve-tag + runs-on: windows-latest + strategy: + matrix: + arch: [x64] + include: + - arch: x64 + platform: win-x64 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ needs.resolve-tag.outputs.sha }} + fetch-depth: 1 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22.13.1' - - name: List downloaded artifacts - run: find artifacts -type f | sort + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 10.12.1 + + - name: Install dependencies + run: pnpm install + + - name: Configure pnpm workspace for Windows ${{ matrix.arch }} + run: pnpm run install:sharp + env: + TARGET_OS: win32 + TARGET_ARCH: ${{ matrix.arch }} + + - name: Install dependencies + run: pnpm install + env: + npm_config_build_from_source: true + npm_config_platform: win32 + npm_config_arch: ${{ matrix.arch }} + + - name: Install Node Runtime + run: pnpm run installRuntime:win:${{ matrix.arch }} + + - name: Build Windows + run: | + pnpm run build + pnpm exec electron-builder --win --${{ matrix.arch }} --publish=never + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + VITE_GITHUB_CLIENT_ID: ${{ secrets.DC_GITHUB_CLIENT_ID }} + VITE_GITHUB_CLIENT_SECRET: ${{ secrets.DC_GITHUB_CLIENT_SECRET }} + VITE_GITHUB_REDIRECT_URI: ${{ secrets.DC_GITHUB_REDIRECT_URI }} + VITE_PROVIDER_DB_URL: ${{ secrets.CDN_PROVIDER_DB_URL }} + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: deepchat-${{ matrix.platform }} + path: | + dist/* + !dist/win-unpacked + !dist/win-arm64-unpacked + + build-linux: + needs: resolve-tag + runs-on: ubuntu-22.04 + strategy: + matrix: + arch: [x64] + include: + - arch: x64 + platform: linux-x64 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ needs.resolve-tag.outputs.sha }} + fetch-depth: 1 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22.13.1' + + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 10.12.1 + + - name: Install dependencies + run: pnpm install + + - name: Configure pnpm workspace for Linux ${{ matrix.arch }} + run: pnpm run install:sharp + env: + TARGET_OS: linux + TARGET_ARCH: ${{ matrix.arch }} + + - name: Install dependencies + run: pnpm install + + - name: Build Linux + run: | + pnpm run build + pnpm exec electron-builder --linux --${{ matrix.arch }} --publish=never + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + VITE_GITHUB_CLIENT_ID: ${{ secrets.DC_GITHUB_CLIENT_ID }} + VITE_GITHUB_CLIENT_SECRET: ${{ secrets.DC_GITHUB_CLIENT_SECRET }} + VITE_GITHUB_REDIRECT_URI: ${{ secrets.DC_GITHUB_REDIRECT_URI }} + VITE_PROVIDER_DB_URL: ${{ secrets.CDN_PROVIDER_DB_URL }} + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: deepchat-${{ matrix.platform }} + path: | + dist/* + !dist/linux-unpacked + + build-mac: + needs: resolve-tag + runs-on: macos-15 + strategy: + matrix: + arch: [x64, arm64] + include: + - arch: x64 + platform: mac-x64 + - arch: arm64 + platform: mac-arm64 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ needs.resolve-tag.outputs.sha }} + fetch-depth: 1 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22.13.1' + + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 10.12.1 + + - name: Install dependencies + run: pnpm install + + - name: Configure pnpm workspace for macOS ${{ matrix.arch }} + run: pnpm run install:sharp + env: + TARGET_OS: darwin + TARGET_ARCH: ${{ matrix.arch }} + + - name: Install dependencies + run: pnpm install + + - name: Install Node Runtime + run: pnpm run installRuntime:mac:${{ matrix.arch }} + + - name: Build Mac + run: | + pnpm run build + pnpm exec electron-builder --mac --${{ matrix.arch }} --publish=never + env: + CSC_LINK: ${{ secrets.DEEPCHAT_CSC_LINK }} + CSC_KEY_PASSWORD: ${{ secrets.DEEPCHAT_CSC_KEY_PASS }} + DEEPCHAT_APPLE_NOTARY_USERNAME: ${{ secrets.DEEPCHAT_APPLE_NOTARY_USERNAME }} + DEEPCHAT_APPLE_NOTARY_TEAM_ID: ${{ secrets.DEEPCHAT_APPLE_NOTARY_TEAM_ID }} + DEEPCHAT_APPLE_NOTARY_PASSWORD: ${{ secrets.DEEPCHAT_APPLE_NOTARY_PASSWORD }} + build_for_release: '2' + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + VITE_GITHUB_CLIENT_ID: ${{ secrets.DC_GITHUB_CLIENT_ID }} + VITE_GITHUB_CLIENT_SECRET: ${{ secrets.DC_GITHUB_CLIENT_SECRET }} + VITE_GITHUB_REDIRECT_URI: ${{ secrets.DC_GITHUB_REDIRECT_URI }} + NODE_OPTIONS: '--max-old-space-size=4096' + VITE_PROVIDER_DB_URL: ${{ secrets.CDN_PROVIDER_DB_URL }} + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: deepchat-${{ matrix.platform }} + path: | + dist/* + !dist/mac/* + !dist/mac-arm64/* + + release: + needs: + - resolve-tag + - build-windows + - build-linux + - build-mac + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ needs.resolve-tag.outputs.sha }} + fetch-depth: 1 - name: Get version number id: get_version run: | - VERSION_FILE=$(find artifacts/deepchat-linux-x64 -name "DeepChat-*.tar.gz" | head -n 1) - if [ -n "$VERSION_FILE" ]; then - VERSION=$(echo $VERSION_FILE | grep -o 'DeepChat-[0-9]\+\.[0-9]\+\.[0-9]\+' | sed 's/DeepChat-//') - echo "version=$VERSION" >> $GITHUB_OUTPUT - echo "Found version: $VERSION" + VERSION=$(node -p "require('./package.json').version") + TAG="${{ needs.resolve-tag.outputs.tag }}" + if [ "v$VERSION" != "$TAG" ]; then + echo "Error: tag $TAG does not match package.json version v$VERSION" + exit 1 + fi + if echo "$VERSION" | grep -qE '-(beta|alpha)\.[0-9]+$'; then + echo "prerelease=true" >> $GITHUB_OUTPUT else - echo "Error: DeepChat tar.gz file not found" + echo "prerelease=false" >> $GITHUB_OUTPUT + fi + echo "version=$VERSION" >> $GITHUB_OUTPUT + + - name: Build release notes from CHANGELOG + run: | + VERSION="${{ steps.get_version.outputs.version }}" + CHANGELOG="CHANGELOG.md" + if [ ! -f "$CHANGELOG" ]; then + echo "Error: CHANGELOG.md not found" + exit 1 + fi + NORMALIZED_CHANGELOG="$(mktemp)" + perl -pe 's/\x{FF08}/(/g; s/\x{FF09}/)/g; s/\r$//' "$CHANGELOG" > "$NORMALIZED_CHANGELOG" + HEADER_REGEX="^##[[:space:]]+v${VERSION}[[:space:]]*\\([0-9]{4}-[0-9]{2}-[0-9]{2}\\)[[:space:]]*$" + if ! grep -Eq "$HEADER_REGEX" "$NORMALIZED_CHANGELOG"; then + echo "Error: Changelog entry not found for v${VERSION}" + exit 1 + fi + awk -v ver="v${VERSION}" ' + $0 ~ "^##[[:space:]]+" ver "[[:space:]]*\\(" { in_section = 1 } + in_section && $0 ~ "^##[[:space:]]+" && $0 !~ "^##[[:space:]]+" ver "[[:space:]]*\\(" { exit } + in_section { print } + ' "$NORMALIZED_CHANGELOG" > release_notes.md + if [ ! -s release_notes.md ]; then + echo "Error: Release notes are empty for v${VERSION}" exit 1 fi + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + path: artifacts + - name: Prepare release assets run: | mkdir -p release_assets @@ -49,33 +345,67 @@ jobs: cp artifacts/deepchat-win-x64/*.exe release_assets/ 2>/dev/null || true cp artifacts/deepchat-win-x64/*.msi release_assets/ 2>/dev/null || true cp artifacts/deepchat-win-x64/*.zip release_assets/ 2>/dev/null || true + cp artifacts/deepchat-win-x64/*.yml release_assets/ 2>/dev/null || true + cp artifacts/deepchat-win-x64/*.blockmap release_assets/ 2>/dev/null || true fi - # Process Windows arm64 artifacts - #if [ -d "artifacts/deepchat-win-arm64" ]; then - # cp artifacts/deepchat-win-arm64/*.exe release_assets/ 2>/dev/null || true - # cp artifacts/deepchat-win-arm64/*.msi release_assets/ 2>/dev/null || true - # cp artifacts/deepchat-win-arm64/*.zip release_assets/ 2>/dev/null || true - #fi - # Process Linux x64 artifacts if [ -d "artifacts/deepchat-linux-x64" ]; then cp artifacts/deepchat-linux-x64/*.AppImage release_assets/ 2>/dev/null || true cp artifacts/deepchat-linux-x64/*.deb release_assets/ 2>/dev/null || true cp artifacts/deepchat-linux-x64/*.rpm release_assets/ 2>/dev/null || true cp artifacts/deepchat-linux-x64/*.tar.gz release_assets/ 2>/dev/null || true + cp artifacts/deepchat-linux-x64/*.yml release_assets/ 2>/dev/null || true + cp artifacts/deepchat-linux-x64/*.blockmap release_assets/ 2>/dev/null || true fi # Process Mac x64 artifacts if [ -d "artifacts/deepchat-mac-x64" ]; then cp artifacts/deepchat-mac-x64/*.dmg release_assets/ 2>/dev/null || true cp artifacts/deepchat-mac-x64/*.zip release_assets/ 2>/dev/null || true + cp artifacts/deepchat-mac-x64/*.blockmap release_assets/ 2>/dev/null || true fi # Process Mac arm64 artifacts if [ -d "artifacts/deepchat-mac-arm64" ]; then cp artifacts/deepchat-mac-arm64/*.dmg release_assets/ 2>/dev/null || true cp artifacts/deepchat-mac-arm64/*.zip release_assets/ 2>/dev/null || true + cp artifacts/deepchat-mac-arm64/*.blockmap release_assets/ 2>/dev/null || true + fi + + merge_mac_yml() { + local name="$1" + local x64="artifacts/deepchat-mac-x64/$name" + local arm64="artifacts/deepchat-mac-arm64/$name" + if [ -f "$x64" ] && [ -f "$arm64" ]; then + ruby -ryaml -e ' + x64 = YAML.load_file(ARGV[0]) || {} + arm = YAML.load_file(ARGV[1]) || {} + merged = x64.dup + merged["version"] ||= arm["version"] + merged["releaseDate"] ||= arm["releaseDate"] + merged["releaseNotes"] ||= arm["releaseNotes"] + merged["path"] ||= arm["path"] + merged["sha512"] ||= arm["sha512"] + files = [] + files.concat(x64["files"]) if x64["files"].is_a?(Array) + files.concat(arm["files"]) if arm["files"].is_a?(Array) + merged["files"] = files.uniq { |f| f["url"] } + File.write(ARGV[2], merged.to_yaml) + ' "$x64" "$arm64" "release_assets/$name" + elif [ -f "$x64" ]; then + cp "$x64" "release_assets/$name" + elif [ -f "$arm64" ]; then + cp "$arm64" "release_assets/$name" + fi + } + + merge_mac_yml latest-mac.yml + merge_mac_yml beta-mac.yml + + if [ -z "$(ls -A release_assets)" ]; then + echo "Error: No release assets found" + exit 1 fi ls -la release_assets/ @@ -83,51 +413,12 @@ jobs: - name: Create Draft Release uses: softprops/action-gh-release@v1 with: - tag_name: v${{ steps.get_version.outputs.version }} + tag_name: ${{ needs.resolve-tag.outputs.tag }} name: DeepChat V${{ steps.get_version.outputs.version }} draft: true - prerelease: ${{ github.event.inputs.prerelease }} + prerelease: ${{ steps.get_version.outputs.prerelease == 'true' }} files: | release_assets/* - body: | - # 🚀 DeepChat ${{ steps.get_version.outputs.version }} 正式发布 | 重新定义你的 AI 对话体验! - —— 不再是简单的 ChatBot,而是你的自然语言 Agent 工具🌟 - - 🔥 为什么选择 DeepChat? - - ✅ **商业友好**:基于原版 [Apache License 2.0](https://github.com/ThinkInAIXYZ/deepchat/blob/main/LICENSE) 开源,无任何协议外的额外约束,面向开源。 - ✅ **开箱即用**:极简配置,即刻开启你的智能对话之旅。 - ✅ **极致灵活**:自由切换模型,自定义模型源,满足你多样化的对话和探索需求。 - ✅ **体验绝佳**:LaTeX 公式渲染、代码高亮、Markdown 支持,模型对话从未如此顺畅。 - ✅ **持续进化**:我们倾听用户反馈,不断迭代更新,为你带来更卓越的 AI 对话体验。 - - 📥 立即体验未来 - - 💬 反馈有礼:欢迎提交你的宝贵建议,加入 VIP 用户社群,与我们一同塑造 DeepChat 的未来! - - - 🎮 加入 Discord 社区:[https://discord.gg/6RBatENX](https://discord.gg/6RBatENX) - - --- - - # 🚀 DeepChat ${{ steps.get_version.outputs.version }} Official Release | Redefine Your AI Conversation Experience! - —— Not just a simple ChatBot, but your natural language Agent tool 🌟 - - 🔥 Why Choose DeepChat? - - ✅ **Business-Friendly**: Open source under [Apache License 2.0](https://github.com/ThinkInAIXYZ/deepchat/blob/main/LICENSE), with no additional constraints beyond the license, truly open source. - ✅ **Ready to Use**: Minimal configuration, start your intelligent conversation journey immediately. - ✅ **Ultra Flexible**: Freely switch models, customize model sources, meet your diverse conversation and exploration needs. - ✅ **Excellent Experience**: LaTeX formula rendering, code highlighting, Markdown support, model conversations have never been smoother. - ✅ **Continuous Evolution**: We listen to user feedback, continuously iterate and update, bringing you an even better AI conversation experience. - - 📥 Experience the Future Now - - 💬 Feedback Welcome: We welcome your valuable suggestions, join the user community, and shape the future of DeepChat together! - - - - 🎮 Join Discord Community: [https://discord.gg/6RBatENX](https://discord.gg/6RBatENX) - + body_path: release_notes.md env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..c78e51a7a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,28 @@ +# Changelog + +## v0.5.6-beta-3 (2025-12-27) +- 全新 Agent Mode,支持 RipGrep 等数十项新特性 +- 全新子会话概念,随时针对会话中任意消息单独讨论 +- 修复一些已知问题 +- ACP Agent 可以直接使用软件里面配置的 MCP +- All-new Agent Mode with dozens of new features, including RipGrep +- New sub-session concept: discuss any message in a conversation at any time +- Fixed some known issues +- ACP Agent can directly use the MCP configured in the app + +## v0.5.6-beta.1 (2025-12-23) +- Markdown 优化,修复列表元素异常 +- 修复 Ollama 视觉模型图片格式 +- Improved Markdown rendering, fixed list element issues +- Fixed Ollama vision model image format + +## v0.5.5 (2025-12-19) +- 全新 Yo Browser 功能,让你的模型畅游网络 +- All-new Yo Browser lets your model roam the web + +## v0.5.3 (2025-12-13) +- 优化 ACP 体验,增加 ACP 调试能力 +- 增加了自定义软件字体能力 +- add acp process warmup and debug panel +- add font settings +- add Hebrew (he-IL) Translation diff --git a/README.jp.md b/README.jp.md index 53a81ff1e..6c61df69e 100644 --- a/README.jp.md +++ b/README.jp.md @@ -308,12 +308,28 @@ DeepChatは様々なAIアプリケーションシナリオに適しています ### ダウンロードとインストール +以下のいずれかの方法で DeepChat をインストールできます: + +**方法1:GitHub Releases** + [GitHub Releases](https://github.com/ThinkInAIXYZ/deepchat/releases)ページからお使いのシステム用の最新バージョンをダウンロードしてください: - Windows: `.exe`インストールファイル - macOS: `.dmg`インストールファイル - Linux: `.AppImage`または`.deb`インストールファイル +**方法2:公式ウェブサイト** + +[公式ウェブサイト](https://deepchatai.cn/#/download)からダウンロードできます。 + +**方法3:Homebrew(macOS のみ)** + +macOS ユーザーは Homebrew を使用してインストールできます: + +```bash +brew install --cask deepchat +``` + ### モデルの設定 1. DeepChatアプリケーションを起動 diff --git a/README.md b/README.md index 0e6cb19a4..169418b76 100644 --- a/README.md +++ b/README.md @@ -310,12 +310,28 @@ DeepChat is suitable for various AI application scenarios: ### Download and Install +You can install DeepChat using one of the following methods: + +**Option 1: GitHub Releases** + Download the latest version for your system from the [GitHub Releases](https://github.com/ThinkInAIXYZ/deepchat/releases) page: - Windows: `.exe` installation file - macOS: `.dmg` installation file - Linux: `.AppImage` or `.deb` installation file +**Option 2: Official Website** + +Download from the [official website](https://deepchatai.cn/#/download). + +**Option 3: Homebrew (macOS only)** + +For macOS users, you can install DeepChat using Homebrew: + +```bash +brew install --cask deepchat +``` + ### Configure Models 1. Launch the DeepChat application diff --git a/README.zh.md b/README.zh.md index 3e993ce24..9aa79d976 100644 --- a/README.zh.md +++ b/README.zh.md @@ -308,12 +308,28 @@ DeepChat适用于多种AI应用场景: ### 下载安装 +您可以通过以下任一方式安装 DeepChat: + +**方式一:GitHub Releases** + 从[GitHub Releases](https://github.com/ThinkInAIXYZ/deepchat/releases)页面下载适合您系统的最新版本: - Windows: `.exe`安装文件 - macOS: `.dmg`安装文件 - Linux: `.AppImage`或`.deb`安装文件 +**方式二:官网下载** + +从[官网下载页面](https://deepchatai.cn/#/download)获取安装包。 + +**方式三:Homebrew(仅 macOS)** + +macOS 用户可以使用 Homebrew 安装: + +```bash +brew install --cask deepchat +``` + ### 配置模型 1. 启动DeepChat应用 diff --git a/docs/mcp-store-colada-integration.md b/docs/mcp-store-colada-integration.md index a1719f616..3206085fe 100644 --- a/docs/mcp-store-colada-integration.md +++ b/docs/mcp-store-colada-integration.md @@ -664,11 +664,13 @@ const applyToolsSnapshot = (toolDefs: MCPToolDefinition[] = []) => { } // 特殊工具的默认值 - if (tool.function.name === 'search_files') { + if (tool.function.name === 'glob_search') { toolInputs.value[tool.function.name] = { - path: '', - regex: '\\\\.md$', - file_pattern: '*.md' + pattern: '**/*.md', + root: '', + excludePatterns: '', + maxResults: '1000', + sortBy: 'name' } } } @@ -2663,4 +2665,3 @@ const memoryMonitor = { ## 六、迁移指南 > 本节内容将由 Claude Code 完成(如果需要) - diff --git a/docs/rebrand-guide.md b/docs/rebrand-guide.md index eb9f1bc2d..6ac09de52 100644 --- a/docs/rebrand-guide.md +++ b/docs/rebrand-guide.md @@ -86,7 +86,6 @@ This script will automatically replace brand information in the following files: - `package.json` - Package configuration - `electron-builder.yml` - Build configuration -- `electron-builder-macx64.yml` - macOS x64 build configuration - `src/main/index.ts` - Main process configuration - `src/main/presenter/upgradePresenter/index.ts` - Update service configuration - `src/renderer/src/i18n/*/about.json` - Internationalization files @@ -343,7 +342,6 @@ node scripts/rebrand.js - `package.json` - 包配置 - `electron-builder.yml` - 构建配置 -- `electron-builder-macx64.yml` - macOS x64 构建配置 - `src/main/index.ts` - 主进程配置 - `src/main/presenter/upgradePresenter/index.ts` - 更新服务配置 - `src/renderer/src/i18n/*/about.json` - 国际化文件 diff --git a/docs/workspace-agent-refactoring-summary.md b/docs/workspace-agent-refactoring-summary.md new file mode 100644 index 000000000..951d0b800 --- /dev/null +++ b/docs/workspace-agent-refactoring-summary.md @@ -0,0 +1,320 @@ +# 通用 Workspace 和 Agent 能力重构实施总结 + +## 概述 + +本次重构围绕“统一工具路由 + 通用 Workspace 视图 + Mode 化能力开关”推进:工具调用统一经 ToolPresenter/ToolMapper 管控,Agent 工具拆为 Yo Browser + Agent FileSystem(仅 agent 模式启用),ACP agent 仍走 ACP provider 内置工具流;Workspace UI 对 agent/acp agent 通用,路径选择与会话设置同步,并补齐安全边界与文件刷新机制。 + +## 架构概览 + +```mermaid +graph TB + subgraph "Agent Loop" + AL[AgentLoopHandler] + TCP[ToolCallProcessor] + end + + subgraph "统一工具路由" + TP[ToolPresenter] + TM[ToolMapper] + end + + subgraph "工具源" + MCP[MCP Tools] + AGENT[Agent Tools (agent mode)] + end + + subgraph "Agent 工具" + YO[Yo Browser] + FS[Agent FileSystem] + end + + subgraph "Workspace" + WS[WorkspaceView] + FILES[Files Section] + PLAN[Plan Section] + TERM_UI[Terminal Section] + BROWSER_UI[Browser Tabs Section] + end + + AL --> TCP + TCP --> TP + TP --> TM + TM --> MCP + TM --> AGENT + AGENT --> YO + AGENT --> FS + WS --> FILES + WS --> PLAN + WS --> TERM_UI + WS --> BROWSER_UI +``` + +> Browser Tabs 仅在 agent 模式展示;acp agent 模式仍使用 ACP workdir 与 ACP provider 工具流。 + +## 已完成的工作 + +### 1. 统一工具路由架构 ✅ + +**实现文件**: +- `src/main/presenter/toolPresenter/index.ts` +- `src/main/presenter/toolPresenter/toolMapper.ts` + +**功能**: +- `ToolPresenter` 统一汇总 MCP + Agent 工具,输出 MCP 规范 `MCPToolDefinition` +- `ToolMapper` 维护工具名 → 来源映射,冲突时优先 MCP +- 工具调用统一经 `ToolPresenter.callTool()`,参数解析失败时尝试 `jsonrepair` + +### 2. Agent 工具管理 ✅ + +**实现文件**: +- `src/main/presenter/llmProviderPresenter/agent/agentToolManager.ts` + +**功能**: +- Agent 工具包含 Yo Browser + Agent FileSystem +- **仅在 `agent` 模式下注入**(`acp agent` 不注入 Agent 工具) +- Yo Browser 工具根据 `supportsVision` 动态注入 +- 缺省工作目录生成于 `temp/deepchat-agent/workspaces` + +### 3. Agent 文件系统能力 ✅ + +**实现文件**: +- `src/main/presenter/llmProviderPresenter/agent/agentFileSystemHandler.ts` + +**功能**: +- 内置文件工具:`read_file`, `write_file`, `list_directory`, `create_directory`, `move_files`, + `edit_text`, `glob_search`, `grep_search`, `text_replace`, `directory_tree`, `get_file_info` +- 强制路径白名单 + `realpath` 校验,阻断越界与 symlink 绕过 +- 正则工具使用 `validateRegexPattern` 防 ReDoS;`text_replace`/`edit_text` 支持 diff +- 工具以 `agent-filesystem` server 标识返回 + +### 4. Chat Mode Switch 配置 ✅ + +**实现文件**: +- `src/renderer/src/components/chat-input/composables/useChatMode.ts` +- `src/renderer/src/components/chat-input/ChatInput.vue` + +**功能**: +- `chatMode` 存储在 `input_chatMode` +- 无 ACP agents 时隐藏 `acp agent`,并自动回退到 `chat` +- `isAgentMode` 用于统一控制 UI 与工具注入 + +### 5. Workspace 组件通用化 ✅ + +**实现文件**: +- `src/main/presenter/workspacePresenter/index.ts` +- `src/renderer/src/stores/workspace.ts` +- `src/renderer/src/components/workspace/WorkspaceView.vue` +- `src/renderer/src/components/workspace/WorkspaceFiles.vue` +- `src/renderer/src/components/workspace/WorkspaceFileNode.vue` +- `src/renderer/src/components/workspace/WorkspacePlan.vue` +- `src/renderer/src/components/workspace/WorkspaceTerminal.vue` +- `src/renderer/src/components/workspace/WorkspaceBrowserTabs.vue` +- `src/renderer/src/components/ChatView.vue` + +**功能**: +- Workspace UI 对 agent/acp agent 统一开放,Files/Plan/Terminal 共用 +- agent 模式额外展示 Browser Tabs(Yo Browser) +- Store 根据 `chatMode` 选择 `workspacePresenter` 或 `acpWorkspacePresenter` +- 文件树按需展开(lazy loading),支持打开文件/定位路径/插入路径 + +### 6. Workspace 路径选择(统一化)✅ + +**实现文件**: +- `src/renderer/src/components/chat-input/composables/useAgentWorkspace.ts` + +**功能**: +- `agent` 模式通过 `devicePresenter.selectDirectory` 选择目录 +- `acp agent` 模式走 ACP workdir(`useAcpWorkdir`) +- 路径与会话设置同步(会话未创建时暂存并补写) + +### 7. 模型选择逻辑更新 ✅ + +**实现文件**: +- `src/renderer/src/components/ModelChooser.vue` +- `src/renderer/src/components/ModelSelect.vue` + +**功能**: +- `acp agent` 模式仅展示 ACP provider +- 其他模式隐藏 ACP provider + +### 8. Agent Loop / 提示词与工具执行 ✅ + +**实现文件**: +- `src/main/presenter/llmProviderPresenter/managers/agentLoopHandler.ts` +- `src/main/presenter/llmProviderPresenter/managers/toolCallProcessor.ts` +- `src/main/presenter/threadPresenter/utils/promptBuilder.ts` +- `src/main/presenter/threadPresenter/handlers/streamGenerationHandler.ts` + +**功能**: +- `agent` 模式自动补全默认工作区并落库 +- system prompt 在 `agent` 模式追加当前工作目录 +- Yo Browser context 仅在 `agent` 模式下注入 +- ACP provider 的 tool call 由 provider 侧执行,流中直接返回结果 + +### 9. Workspace 文件刷新机制 ✅ + +**实现文件**: +- `src/main/presenter/llmProviderPresenter/managers/agentLoopHandler.ts` +- `src/renderer/src/stores/workspace.ts` + +**功能**: +- `agent-filesystem` 调用完成时触发 `WORKSPACE_EVENTS.FILES_CHANGED` +- Workspace Store 对文件刷新做防抖合并 +- ACP provider 在流结束后触发刷新 + +### 10. 类型定义与 i18n ✅ + +**实现文件**: +- `src/shared/types/presenters/tool.presenter.d.ts` +- `src/shared/types/presenters/workspace.d.ts` +- `src/renderer/src/i18n/*/chat.json` +- `src/renderer/src/i18n/*/toolCall.json` + +**功能**: +- ToolPresenter、Workspace、ChatMode 相关类型补齐 +- 新增模式/Workspace/工具调用相关文案 + +## 关键文件 + +- `src/main/presenter/toolPresenter/index.ts`:统一工具定义与路由 +- `src/main/presenter/llmProviderPresenter/agent/agentToolManager.ts`:Agent 工具装配 +- `src/main/presenter/llmProviderPresenter/agent/agentFileSystemHandler.ts`:文件系统工具实现 +- `src/main/presenter/workspacePresenter/index.ts`:通用 Workspace Presenter +- `src/renderer/src/stores/workspace.ts`:Workspace 状态与事件同步 +- `src/renderer/src/components/workspace/WorkspaceView.vue`:Workspace 入口 UI +- `src/renderer/src/components/chat-input/composables/useChatMode.ts`:Mode 管理 +- `src/renderer/src/components/chat-input/composables/useAgentWorkspace.ts`:Workspace 路径选择 + +## 遗留/兼容 + +- `src/main/presenter/acpWorkspacePresenter/` 仍保留并在 `acp agent` 模式使用 +- Renderer 的 ACP Workspace 旧组件已移除,统一使用通用 Workspace 组件 + +## 关键技术点 + +### 工具命名规范 + +- MCP 工具:保持原始命名 +- Agent FileSystem 工具:不加前缀(`read_file` 等) +- Yo Browser:保留 `browser_` 前缀 + +### 工具路由机制 + +- ToolPresenter 统一输出 MCP 规范 `MCPToolDefinition` +- ToolMapper 维护工具名 → 来源映射,冲突时偏向 MCP +- Agent 工具参数解析失败时尝试 `jsonrepair` + +### Agent 工具注入机制(基于 Mode) + +- `chat`:仅 MCP 工具 +- `agent`:MCP + Yo Browser + Agent FileSystem +- `acp agent`:MCP 工具;ACP provider 自执行工具调用 + +### 配置持久化 + +- `chatMode` 存储为 `input_chatMode` +- `agentWorkspacePath` 持久化到会话 `settings` +- `agent` 模式缺省路径自动写入会话设置 + +### Mode Switch 与 ACP Session Mode 的区别 + +- Chat Mode Switch:全局模式(chat/agent/acp agent) +- ACP Session Mode:ACP agent 内部会话模式,互不干扰 + +### 路径安全 + +- WorkspacePresenter:基于 `allowedWorkspaces` + `realpath` 限制访问 +- AgentFileSystemHandler:路径白名单 + symlink 校验 + regex 安全验证 + +### 默认工作区路径 + +- `agent` 模式缺省使用 `temp/deepchat-agent/workspaces[/conversationId]` +- 路径会持久化到会话设置,供后续恢复 + +### 向后兼容 + +- ACP provider 与 ACP workspace 逻辑保留 +- UI 统一收口到通用 Workspace 组件 + +## 如何测试 + +### Mode Switch + +1. 进入 ChatInput,确认 `acp agent` 仅在配置 ACP agents 时出现 +2. 切换模式,确认 UI 与模型列表同步更新 + +### Agent Workspace + +1. 切换到 `agent` 模式,选择目录 +2. 切换/重启应用后确认路径恢复 +3. 切换到 `acp agent`,确认使用 ACP workdir + +### 工具路由 + +1. `agent` 模式调用 `read_file` 等文件工具,确认走 Agent FileSystem +2. MCP 工具调用仍走 MCP Presenter +3. ACP provider 下 tool call 直接显示执行结果(不再本地执行) + +### Workspace UI + +1. `agent`/`acp agent` 模式下打开 Workspace +2. 文件树可展开并通过右键菜单打开/定位 +3. Browser Tabs 仅在 `agent` 模式显示 +4. 执行文件工具后文件树自动刷新 + +## 架构说明 + +### 数据流 + +``` +ChatMode + ↓ +ChatInput (Mode Switch) + ↓ +AgentLoopHandler (resolve workspace & tools) + ↓ +ToolPresenter → ToolMapper → MCP/Agent tools +``` + +### Workspace 数据流 + +``` +Workspace Path Select + ↓ +useAgentWorkspace / useAcpWorkdir + ↓ +WorkspacePresenter (register) + ↓ +WorkspaceStore + ↓ +WorkspaceView +``` + +### 工具调用流程 + +``` +Agent Loop + ↓ +ToolCallProcessor + ↓ +ToolPresenter.callTool() + ↓ +MCP Presenter / AgentToolManager + ↓ +Tool response → Workspace refresh (agent-filesystem) +``` + +> ACP provider 的 tool call 由 provider 侧执行,流中直接返回结果。 + +## 注意事项 + +1. Agent 工具仅在 `agent` 模式生效,`acp agent` 走 ACP provider 工具流 +2. Workspace 访问必须先注册允许路径 +3. 正则相关工具调用需遵循安全限制(pattern 长度与验证) + +## 未来扩展 + +1. Terminal 工具执行与 Workspace Terminal 的联动 +2. 工具注入更细粒度控制(按需加载) +3. 工具去重策略可配置化 +4. 多 Workspace 支持与模板化配置 diff --git a/electron-builder-macx64.yml b/electron-builder-macx64.yml deleted file mode 100644 index beb6a7b84..000000000 --- a/electron-builder-macx64.yml +++ /dev/null @@ -1,83 +0,0 @@ -appId: com.wefonk.deepchat -productName: DeepChat -directories: - buildResources: build -files: - - '!**/.claude/*' - - '!**/.github/*' - - '!**/.cursor/*' - - '!**/.vscode/*' - - '!src/*' - - '!test/*' - - '!docs/*' - - '!electron.vite.config.{js,ts,mjs,cjs}' - - '!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}' - - '!{.env,.env.*,.npmrc,pnpm-lock.yaml}' - - '!{tsconfig.json,tsconfig.node.json,tsconfig.app.json}' - - '!keys/*' - - '!scripts/*' - - '!.github/*' - - '!electron-builder.yml' - - '!electron-builder-macx64.yml' - - '!test/*' - - '!*.config.ts' - - '!*.config.js' - - '!**/{LICENSE,LICENSE.txt,*.LICENSE.txt,NOTICE.txt,README.md,CHANGELOG.md,CONTRIBUTING.md,CONTRIBUTING.zh.md,README.zh.md,README.jp.md}' - - '!**/{.DS_Store,Thumbs.db}' - - '!*.md' -asarUnpack: - - '**/node_modules/sharp/**/*' - - '**/node_modules/@img/**/*' -extraResources: - - from: ./runtime/ - to: app.asar.unpacked/runtime - filter: ['**/*'] - - from: ./resources/cdn/ - to: app.asar.unpacked/resources/cdn - filter: ['**/*'] -afterSign: scripts/notarize.js -afterPack: scripts/afterPack.js -electronLanguages: - - zh-CN - - zh-TW - - zh-HK - - en-US - - ja-JP - - ko-KR - - fr-FR - - ru-RU - - ja - - ru - - zh_CN - - zh_TW - - zh_HK - - en - - ko - - fr - - fa-IR - - fa - - pt-BR - - pt - - da-DK - - da - - he-IL - - he -mac: - entitlementsInherit: build/entitlements.mac.plist - extendInfo: - - NSCameraUsageDescription: Application requests access to the device's camera. - - NSMicrophoneUsageDescription: Application requests access to the device's microphone. - - NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder. - - NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder. - gatekeeperAssess: false - category: public.app-category.utilities - target: - - target: dmg - arch: x64 - - target: zip - arch: x64 - artifactName: ${name}-${version}-mac-${arch}.${ext} -npmRebuild: true -publish: - provider: generic - url: https://cdn.deepchatai.cn/upgrade/ diff --git a/electron-builder.yml b/electron-builder.yml index 93c31acbb..3b2ace778 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -18,7 +18,6 @@ files: - '!{.env,.env.*,.npmrc,pnpm-lock.yaml}' - '!{tsconfig.json,tsconfig.node.json,tsconfig.app.json}' - '!electron-builder.yml' - - '!electron-builder-macx64.yml' - '!test/*' - '!*.config.ts' - '!*.config.js' @@ -84,9 +83,7 @@ mac: category: public.app-category.utilities target: - target: dmg - arch: arm64 - target: zip - arch: arm64 artifactName: ${name}-${version}-mac-${arch}.${ext} linux: target: @@ -99,5 +96,6 @@ linux: - x-scheme-handler/deepchat npmRebuild: true publish: - provider: generic - url: https://cdn.deepchatai.cn/upgrade/ + provider: github + owner: ThinkInAIXYZ + repo: deepchat diff --git a/electron.vite.config.ts b/electron.vite.config.ts index 95a39ec38..b32eae5f7 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -88,7 +88,12 @@ export default defineConfig({ } }), svgLoader(), - vueDevTools() + vueDevTools( + { + appendTo:'src/renderer/src/main.ts' + // appendTo:'src/renderer/shell/main.ts' + } + ) ], worker: { format: 'es' diff --git a/mise.toml b/mise.toml index 40ca167b6..8b933227e 100644 --- a/mise.toml +++ b/mise.toml @@ -1,3 +1,3 @@ [tools] node = "24" -pnpm = "latest" +pnpm = "10.13.1" diff --git a/package.json b/package.json index c30f031c6..ab9f174d5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "DeepChat", - "version": "0.5.5", + "version": "0.5.6-beta.3", "description": "DeepChat,一个简单易用的AI客户端", "main": "./out/main/index.js", "author": "ThinkInAIXYZ", @@ -38,18 +38,18 @@ "install:sharp": "node scripts/install-sharp-for-platform.js", "build:mac": "pnpm run build && electron-builder --mac", "build:mac:arm64": "pnpm run build && electron-builder --mac --arm64", - "build:mac:x64": "pnpm run build && electron-builder -c electron-builder-macx64.yml --mac --x64 ", + "build:mac:x64": "pnpm run build && electron-builder --mac --x64", "build:linux": "pnpm run build && electron-builder --linux", "build:linux:x64": "pnpm run build && electron-builder --linux --x64", "build:linux:arm64": "pnpm run build && electron-builder --linux --arm64", "afterSign": "scripts/notarize.js", - "installRuntime": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.8.8 && npx -y tiny-runtime-injector --type node --dir ./runtime/node", - "installRuntime:win:x64": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.8.8 -a x64 -p win32 && npx -y tiny-runtime-injector --type node --dir ./runtime/node -a x64 -p win32", - "installRuntime:win:arm64": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.8.8 -a arm64 -p win32 && npx -y tiny-runtime-injector --type node --dir ./runtime/node -a arm64 -p win32", - "installRuntime:mac:arm64": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.8.8 -a arm64 -p darwin && npx -y tiny-runtime-injector --type node --dir ./runtime/node -a arm64 -p darwin", - "installRuntime:mac:x64": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.8.8 -a x64 -p darwin && npx -y tiny-runtime-injector --type node --dir ./runtime/node -a x64 -p darwin", - "installRuntime:linux:x64": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.8.8 -a x64 -p linux && npx -y tiny-runtime-injector --type node --dir ./runtime/node -a x64 -p linux", - "installRuntime:linux:arm64": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.8.8 -a arm64 -p linux && npx -y tiny-runtime-injector --type node --dir ./runtime/node -a arm64 -p linux", + "installRuntime": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.9.18 && npx -y tiny-runtime-injector --type node --dir ./runtime/node && npx -y tiny-runtime-injector --type ripgrep --dir ./runtime/ripgrep", + "installRuntime:win:x64": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.9.18 -a x64 -p win32 && npx -y tiny-runtime-injector --type node --dir ./runtime/node -a x64 -p win32 && npx -y tiny-runtime-injector --type ripgrep --dir ./runtime/ripgrep -a x64 -p win32", + "installRuntime:win:arm64": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.9.18 -a arm64 -p win32 && npx -y tiny-runtime-injector --type node --dir ./runtime/node -a arm64 -p win32 && npx -y tiny-runtime-injector --type ripgrep --dir ./runtime/ripgrep -a arm64 -p win32", + "installRuntime:mac:arm64": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.9.18 -a arm64 -p darwin && npx -y tiny-runtime-injector --type node --dir ./runtime/node -a arm64 -p darwin && npx -y tiny-runtime-injector --type ripgrep --dir ./runtime/ripgrep -a arm64 -p darwin", + "installRuntime:mac:x64": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.9.18 -a x64 -p darwin && npx -y tiny-runtime-injector --type node --dir ./runtime/node -a x64 -p darwin && npx -y tiny-runtime-injector --type ripgrep --dir ./runtime/ripgrep -a x64 -p darwin", + "installRuntime:linux:x64": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.9.18 -a x64 -p linux && npx -y tiny-runtime-injector --type node --dir ./runtime/node -a x64 -p linux && npx -y tiny-runtime-injector --type ripgrep --dir ./runtime/ripgrep -a x64 -p linux", + "installRuntime:linux:arm64": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.9.18 -a arm64 -p linux && npx -y tiny-runtime-injector --type node --dir ./runtime/node -a arm64 -p linux && npx -y tiny-runtime-injector --type ripgrep --dir ./runtime/ripgrep -a arm64 -p linux", "installRuntime:duckdb:vss": "node scripts/installVss.js", "i18n": "i18n-check -s zh-CN -f i18next --locales src/renderer/src/i18n", "i18n:en": "i18n-check -s en-US -f i18next --locales src/renderer/src/i18n", @@ -60,13 +60,13 @@ "dependencies": { "@agentclientprotocol/sdk": "^0.5.1", "@anthropic-ai/sdk": "^0.53.0", - "@aws-sdk/client-bedrock": "^3.929.0", - "@aws-sdk/client-bedrock-runtime": "^3.929.0", + "@aws-sdk/client-bedrock": "^3.958.0", + "@aws-sdk/client-bedrock-runtime": "^3.958.0", "@duckdb/node-api": "1.3.2-alpha.25", "@e2b/code-interpreter": "^1.5.1", "@electron-toolkit/preload": "^3.0.2", "@electron-toolkit/utils": "^4.0.0", - "@google/genai": "^1.30.0", + "@google/genai": "^1.34.0", "@jxa/run": "^1.4.0", "@modelcontextprotocol/sdk": "^1.25.1", "axios": "^1.13.2", @@ -82,16 +82,17 @@ "es-mime-types": "^0.1.4", "fflate": "^0.8.2", "font-list": "^2.0.1", - "glob": "^11.0.3", + "glob": "^13.0.0", "https-proxy-agent": "^7.0.6", "jsonrepair": "^3.13.1", "mammoth": "^1.11.0", "nanoid": "^5.1.6", - "node-pty": "^1.1.0-beta39", + "node-pty": "^1.1.0", "ollama": "^0.5.18", "openai": "^5.23.2", "pdf-parse-new": "^1.4.1", "run-applescript": "^7.1.0", + "safe-regex2": "^5.0.0", "sharp": "^0.33.5", "together-ai": "^0.16.0", "tokenx": "^0.4.1", @@ -104,14 +105,14 @@ "devDependencies": { "@electron-toolkit/tsconfig": "^1.0.1", "@electron/notarize": "^3.1.1", - "@iconify-json/lucide": "^1.2.73", - "@iconify-json/vscode-icons": "^1.2.33", + "@iconify-json/lucide": "^1.2.82", + "@iconify-json/vscode-icons": "^1.2.37", "@iconify/vue": "^5.0.0", "@lingual/i18n-check": "0.8.12", - "@mcp-ui/client": "^5.13.1", - "@pinia/colada": "^0.17.8", + "@mcp-ui/client": "^5.13.3", + "@pinia/colada": "^0.20.0", "@tailwindcss/typography": "^0.5.19", - "@tailwindcss/vite": "^4.1.17", + "@tailwindcss/vite": "^4.1.18", "@tiptap/core": "^2.11.7", "@tiptap/extension-code-block": "^2.11.9", "@tiptap/extension-document": "^2.11.7", @@ -126,41 +127,41 @@ "@tiptap/vue-3": "^2.11.7", "@types/better-sqlite3": "^7.6.13", "@types/mime-types": "^3.0.1", - "@types/node": "^22.14.1", + "@types/node": "^22.19.3", "@types/xlsx": "^0.0.35", "@vee-validate/zod": "^4.15.1", - "@vitejs/plugin-vue": "^6.0.1", + "@vitejs/plugin-vue": "^6.0.3", "@vitest/ui": "^3.2.4", "@vue/test-utils": "^2.4.6", "@vueuse/core": "^12.8.2", "@xterm/addon-fit": "^0.10.0", "@xterm/xterm": "^5.5.0", - "autoprefixer": "^10.4.22", + "autoprefixer": "^10.4.23", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cross-env": "^10.1.0", "dayjs": "^1.11.19", - "electron": "^37.8.0", + "electron": "^37.10.3", "electron-builder": "26.0.12", "electron-vite": "^4.0.1", "jsdom": "^26.1.0", - "katex": "^0.16.25", - "lint-staged": "^16.2.6", + "katex": "^0.16.27", + "lint-staged": "^16.2.7", "lucide-vue-next": "^0.544.0", - "markstream-vue": "0.0.3-beta.5", - "mermaid": "^11.12.1", + "markstream-vue": "0.0.3", + "mermaid": "^11.12.2", "minimatch": "^10.1.1", "monaco-editor": "^0.52.2", - "oxlint": "^1.28.0", + "oxlint": "^1.35.0", "picocolors": "^1.1.1", "pinia": "^3.0.4", - "prettier": "^3.7.1", - "reka-ui": "^2.5.1", + "prettier": "^3.7.4", + "reka-ui": "^2.7.0", "simple-git-hooks": "^2.13.1", "stream-monaco": "^0.0.8", "tailwind-merge": "^3.4.0", "tailwind-scrollbar-hide": "^4.0.0", - "tailwindcss": "^4.1.17", + "tailwindcss": "^4.1.18", "tailwindcss-animate": "^1.0.7", "tippy.js": "^6.3.7", "tw-animate-css": "^1.4.0", @@ -168,18 +169,18 @@ "vee-validate": "^4.15.1", "vite": "^7.1.11", "vite-plugin-monaco-editor-esm": "^2.0.2", - "vite-plugin-vue-devtools": "^8.0.3", + "vite-plugin-vue-devtools": "^8.0.5", "vite-svg-loader": "^5.1.0", "vitest": "^3.2.4", - "vue": "^3.5.24", - "vue-i18n": "^11.1.12", + "vue": "^3.5.26", + "vue-i18n": "^11.2.7", "vue-router": "4", "vue-sonner": "^2.0.9", "vue-tsc": "^2.2.12", "vue-virtual-scroller": "^2.0.0-beta.8", "vuedraggable": "^4.1.0", - "yaml": "^2.8.1", - "zod-to-json-schema": "^3.24.6" + "yaml": "^2.8.2", + "zod-to-json-schema": "^3.25.0" }, "simple-git-hooks": { "pre-commit": "pnpm lint-staged && pnpm typecheck", diff --git a/resources/model-db/providers.json b/resources/model-db/providers.json index bf85d3612..fc093a0c0 100644 --- a/resources/model-db/providers.json +++ b/resources/model-db/providers.json @@ -422,6 +422,40 @@ "api": "https://api.z.ai/api/coding/paas/v4", "doc": "https://docs.z.ai/devpack/overview", "models": [ + { + "id": "glm-4.7", + "name": "GLM-4.7", + "display_name": "GLM-4.7", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 204800, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-12-22", + "last_updated": "2025-12-22", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } + }, { "id": "glm-4.5-flash", "name": "GLM-4.5-Flash", @@ -4091,6 +4125,38 @@ "output": 0 } }, + { + "id": "nvidia/nemotron-3-nano-30b-a3b", + "name": "nemotron-3-nano-30b-a3b", + "display_name": "nemotron-3-nano-30b-a3b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2024-09", + "release_date": "2024-12", + "last_updated": "2024-12", + "cost": { + "input": 0, + "output": 0 + } + }, { "id": "nvidia/parakeet-tdt-0.6b-v2", "name": "Parakeet TDT 0.6B v2", @@ -4153,6 +4219,96 @@ "output": 0 } }, + { + "id": "nvidia/llama-3.3-nemotron-super-49b-v1", + "name": "Llama 3.3 Nemotron Super 49b V1", + "display_name": "Llama 3.3 Nemotron Super 49b V1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-03-16", + "last_updated": "2025-03-16", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "nvidia/llama-3.1-nemotron-51b-instruct", + "name": "Llama 3.1 Nemotron 51b Instruct", + "display_name": "Llama 3.1 Nemotron 51b Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-09-22", + "last_updated": "2024-09-22", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "nvidia/llama3-chatqa-1.5-70b", + "name": "Llama3 Chatqa 1.5 70b", + "display_name": "Llama3 Chatqa 1.5 70b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-04-28", + "last_updated": "2024-04-28", + "cost": { + "input": 0, + "output": 0 + } + }, { "id": "nvidia/llama-3.1-nemotron-ultra-253b-v1", "name": "Llama-3.1-Nemotron-Ultra-253B-v1", @@ -4185,6 +4341,96 @@ "output": 0 } }, + { + "id": "nvidia/llama-3.1-nemotron-70b-instruct", + "name": "Llama 3.1 Nemotron 70b Instruct", + "display_name": "Llama 3.1 Nemotron 70b Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-10-12", + "last_updated": "2024-10-12", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "nvidia/nemotron-4-340b-instruct", + "name": "Nemotron 4 340b Instruct", + "display_name": "Nemotron 4 340b Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-06-13", + "last_updated": "2024-06-13", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "nvidia/llama-3.3-nemotron-super-49b-v1.5", + "name": "Llama 3.3 Nemotron Super 49b V1.5", + "display_name": "Llama 3.3 Nemotron Super 49b V1.5", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-03-16", + "last_updated": "2025-03-16", + "cost": { + "input": 0, + "output": 0 + } + }, { "id": "minimaxai/minimax-m2", "name": "MiniMax-M2", @@ -4217,6 +4463,251 @@ "output": 0 } }, + { + "id": "google/gemma-3n-e2b-it", + "name": "Gemma 3n E2b It", + "display_name": "Gemma 3n E2b It", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": true, + "knowledge": "2024-06", + "release_date": "2025-06-12", + "last_updated": "2025-06-12", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "google/codegemma-1.1-7b", + "name": "Codegemma 1.1 7b", + "display_name": "Codegemma 1.1 7b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "release_date": "2024-04-30", + "last_updated": "2024-04-30", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "google/gemma-3n-e4b-it", + "name": "Gemma 3n E4b It", + "display_name": "Gemma 3n E4b It", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": true, + "knowledge": "2024-06", + "release_date": "2025-06-03", + "last_updated": "2025-06-03", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "google/gemma-2-2b-it", + "name": "Gemma 2 2b It", + "display_name": "Gemma 2 2b It", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "release_date": "2024-07-16", + "last_updated": "2024-07-16", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "google/gemma-3-12b-it", + "name": "Gemma 3 12b It", + "display_name": "Gemma 3 12b It", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "release_date": "2025-03-01", + "last_updated": "2025-03-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "google/codegemma-7b", + "name": "Codegemma 7b", + "display_name": "Codegemma 7b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "release_date": "2024-03-21", + "last_updated": "2024-03-21", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "google/gemma-3-1b-it", + "name": "Gemma 3 1b It", + "display_name": "Gemma 3 1b It", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": true, + "release_date": "2025-03-10", + "last_updated": "2025-03-10", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "google/gemma-2-27b-it", + "name": "Gemma 2 27b It", + "display_name": "Gemma 2 27b It", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "release_date": "2024-06-24", + "last_updated": "2024-06-24", + "cost": { + "input": 0, + "output": 0 + } + }, { "id": "google/gemma-3-27b-it", "name": "Gemma-3-27B-IT", @@ -4250,6 +4741,163 @@ "output": 0 } }, + { + "id": "microsoft/phi-3-medium-128k-instruct", + "name": "Phi 3 Medium 128k Instruct", + "display_name": "Phi 3 Medium 128k Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-05-07", + "last_updated": "2024-05-07", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-3-small-128k-instruct", + "name": "Phi 3 Small 128k Instruct", + "display_name": "Phi 3 Small 128k Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-05-07", + "last_updated": "2024-05-07", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-3.5-vision-instruct", + "name": "Phi 3.5 Vision Instruct", + "display_name": "Phi 3.5 Vision Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "release_date": "2024-08-16", + "last_updated": "2024-08-16", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-3-small-8k-instruct", + "name": "Phi 3 Small 8k Instruct", + "display_name": "Phi 3 Small 8k Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-05-07", + "last_updated": "2024-05-07", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-3.5-moe-instruct", + "name": "Phi 3.5 Moe Instruct", + "display_name": "Phi 3.5 Moe Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "release_date": "2024-08-17", + "last_updated": "2024-08-17", + "cost": { + "input": 0, + "output": 0 + } + }, { "id": "microsoft/phi-4-mini-instruct", "name": "Phi-4-Mini", @@ -4284,6 +4932,69 @@ "output": 0 } }, + { + "id": "microsoft/phi-3-medium-4k-instruct", + "name": "Phi 3 Medium 4k Instruct", + "display_name": "Phi 3 Medium 4k Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-05-07", + "last_updated": "2024-05-07", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-3-vision-128k-instruct", + "name": "Phi 3 Vision 128k Instruct", + "display_name": "Phi 3 Vision 128k Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "release_date": "2024-05-19", + "last_updated": "2024-05-19", + "cost": { + "input": 0, + "output": 0 + } + }, { "id": "openai/whisper-large-v3", "name": "Whisper Large v3", @@ -4378,6 +5089,66 @@ "output": 0 } }, + { + "id": "qwen/qwen2.5-coder-32b-instruct", + "name": "Qwen2.5 Coder 32b Instruct", + "display_name": "Qwen2.5 Coder 32b Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "release_date": "2024-11-06", + "last_updated": "2024-11-06", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen2.5-coder-7b-instruct", + "name": "Qwen2.5 Coder 7b Instruct", + "display_name": "Qwen2.5 Coder 7b Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "release_date": "2024-09-17", + "last_updated": "2024-09-17", + "cost": { + "input": 0, + "output": 0 + } + }, { "id": "qwen/qwen3-235b-a22b", "name": "Qwen3-235B-A22B", @@ -4441,6 +5212,37 @@ "output": 0 } }, + { + "id": "qwen/qwq-32b", + "name": "Qwq 32b", + "display_name": "Qwq 32b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "release_date": "2025-03-05", + "last_updated": "2025-03-05", + "cost": { + "input": 0, + "output": 0 + } + }, { "id": "qwen/qwen3-next-80b-a3b-thinking", "name": "Qwen3-Next-80B-A3B-Thinking", @@ -4570,9 +5372,9 @@ } }, { - "id": "deepseek-ai/deepseek-v3.1-terminus", - "name": "DeepSeek V3.1 Terminus", - "display_name": "DeepSeek V3.1 Terminus", + "id": "mistralai/mamba-codestral-7b-v0.1", + "name": "Mamba Codestral 7b V0.1", + "display_name": "Mamba Codestral 7b V0.1", "modalities": { "input": [ "text" @@ -4583,28 +5385,26 @@ }, "limit": { "context": 128000, - "output": 8192 + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-09-22", - "last_updated": "2025-09-22", + "open_weights": true, + "release_date": "2024-07-16", + "last_updated": "2024-07-16", "cost": { "input": 0, "output": 0 } }, { - "id": "deepseek-ai/deepseek-v3.1", - "name": "DeepSeek V3.1", - "display_name": "DeepSeek V3.1", + "id": "mistralai/mistral-large-2-instruct", + "name": "Mistral Large 2 Instruct", + "display_name": "Mistral Large 2 Instruct", "modalities": { "input": [ "text" @@ -4615,67 +5415,56 @@ }, "limit": { "context": 128000, - "output": 8192 + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-07", - "release_date": "2025-08-20", - "last_updated": "2025-08-26", + "open_weights": true, + "release_date": "2024-07-24", + "last_updated": "2024-07-24", "cost": { "input": 0, "output": 0 } }, { - "id": "black-forest-labs/flux.1-dev", - "name": "FLUX.1-dev", - "display_name": "FLUX.1-dev", + "id": "mistralai/codestral-22b-instruct-v0.1", + "name": "Codestral 22b Instruct V0.1", + "display_name": "Codestral 22b Instruct V0.1", "modalities": { "input": [ "text" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 4096, - "output": 0 + "context": 128000, + "output": 4096 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-08", - "release_date": "2024-08-01", - "last_updated": "2025-09-05", + "open_weights": true, + "release_date": "2024-05-29", + "last_updated": "2024-05-29", "cost": { "input": 0, "output": 0 } - } - ] - }, - "cohere": { - "id": "cohere", - "name": "Cohere", - "display_name": "Cohere", - "doc": "https://docs.cohere.com/docs/models", - "models": [ + }, { - "id": "command-a-translate-08-2025", - "name": "Command A Translate", - "display_name": "Command A Translate", + "id": "mistralai/mistral-small-3.1-24b-instruct-2503", + "name": "Mistral Small 3.1 24b Instruct 2503", + "display_name": "Mistral Small 3.1 24b Instruct 2503", "modalities": { "input": [ "text" @@ -4685,8 +5474,8 @@ ] }, "limit": { - "context": 8000, - "output": 8000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -4695,50 +5484,49 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-06-01", - "release_date": "2025-08-28", - "last_updated": "2025-08-28", + "release_date": "2025-03-11", + "last_updated": "2025-03-11", "cost": { - "input": 2.5, - "output": 10 + "input": 0, + "output": 0 } }, { - "id": "command-a-03-2025", - "name": "Command A", - "display_name": "Command A", + "id": "meta/llama-3.2-11b-vision-instruct", + "name": "Llama 3.2 11b Vision Instruct", + "display_name": "Llama 3.2 11b Vision Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 8000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, - "knowledge": "2024-06-01", - "release_date": "2025-03-13", - "last_updated": "2025-03-13", + "knowledge": "2023-12", + "release_date": "2024-09-18", + "last_updated": "2024-09-18", "cost": { - "input": 2.5, - "output": 10 + "input": 0, + "output": 0 } }, { - "id": "command-r-08-2024", - "name": "Command R", - "display_name": "Command R", + "id": "meta/llama3-70b-instruct", + "name": "Llama3 70b Instruct", + "display_name": "Llama3 70b Instruct", "modalities": { "input": [ "text" @@ -4749,28 +5537,26 @@ }, "limit": { "context": 128000, - "output": 4000 + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2024-06-01", - "release_date": "2024-08-30", - "last_updated": "2024-08-30", + "release_date": "2024-04-17", + "last_updated": "2024-04-17", "cost": { - "input": 0.15, - "output": 0.6 + "input": 0, + "output": 0 } }, { - "id": "command-r-plus-08-2024", - "name": "Command R+", - "display_name": "Command R+", + "id": "meta/llama-3.3-70b-instruct", + "name": "Llama 3.3 70b Instruct", + "display_name": "Llama 3.3 70b Instruct", "modalities": { "input": [ "text" @@ -4781,28 +5567,26 @@ }, "limit": { "context": 128000, - "output": 4000 + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2024-06-01", - "release_date": "2024-08-30", - "last_updated": "2024-08-30", + "release_date": "2024-11-26", + "last_updated": "2024-11-26", "cost": { - "input": 2.5, - "output": 10 + "input": 0, + "output": 0 } }, { - "id": "command-r7b-12-2024", - "name": "Command R7B", - "display_name": "Command R7B", + "id": "meta/llama-3.2-1b-instruct", + "name": "Llama 3.2 1b Instruct", + "display_name": "Llama 3.2 1b Instruct", "modalities": { "input": [ "text" @@ -4813,7 +5597,7 @@ }, "limit": { "context": 128000, - "output": 4000 + "output": 4096 }, "temperature": true, "tool_call": true, @@ -4822,50 +5606,50 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-06-01", - "release_date": "2024-02-27", - "last_updated": "2024-02-27", + "knowledge": "2023-12", + "release_date": "2024-09-18", + "last_updated": "2024-09-18", "cost": { - "input": 0.0375, - "output": 0.15 + "input": 0, + "output": 0 } }, { - "id": "command-a-reasoning-08-2025", - "name": "Command A Reasoning", - "display_name": "Command A Reasoning", + "id": "meta/llama-4-scout-17b-16e-instruct", + "name": "Llama 4 Scout 17b 16e Instruct", + "display_name": "Llama 4 Scout 17b 16e Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 32000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, - "knowledge": "2024-06-01", - "release_date": "2025-08-21", - "last_updated": "2025-08-21", + "knowledge": "2024-02", + "release_date": "2025-04-02", + "last_updated": "2025-04-02", "cost": { - "input": 2.5, - "output": 10 + "input": 0, + "output": 0 } }, { - "id": "command-a-vision-07-2025", - "name": "Command A Vision", - "display_name": "Command A Vision", + "id": "meta/llama-4-maverick-17b-128e-instruct", + "name": "Llama 4 Maverick 17b 128e Instruct", + "display_name": "Llama 4 Maverick 17b 128e Instruct", "modalities": { "input": [ "text", @@ -4877,36 +5661,27 @@ }, "limit": { "context": 128000, - "output": 8000 + "output": 4096 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, - "knowledge": "2024-06-01", - "release_date": "2025-07-31", - "last_updated": "2025-07-31", + "knowledge": "2024-02", + "release_date": "2025-04-01", + "last_updated": "2025-04-01", "cost": { - "input": 2.5, - "output": 10 + "input": 0, + "output": 0 } - } - ] - }, - "upstage": { - "id": "upstage", - "name": "Upstage", - "display_name": "Upstage", - "api": "https://api.upstage.ai", - "doc": "https://developers.upstage.ai/docs/apis/chat", - "models": [ + }, { - "id": "solar-mini", - "name": "solar-mini", - "display_name": "solar-mini", + "id": "meta/codellama-70b", + "name": "Codellama 70b", + "display_name": "Codellama 70b", "modalities": { "input": [ "text" @@ -4916,28 +5691,27 @@ ] }, "limit": { - "context": 32768, + "context": 128000, "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-09", - "release_date": "2024-06-12", - "last_updated": "2025-04-22", + "open_weights": true, + "release_date": "2024-01-29", + "last_updated": "2024-01-29", "cost": { - "input": 0.15, - "output": 0.15 + "input": 0, + "output": 0 } }, { - "id": "solar-pro2", - "name": "solar-pro2", - "display_name": "solar-pro2", + "id": "meta/llama-3.1-405b-instruct", + "name": "Llama 3.1 405b Instruct", + "display_name": "Llama 3.1 405b Instruct", "modalities": { "input": [ "text" @@ -4947,37 +5721,27 @@ ] }, "limit": { - "context": 65536, - "output": 8192 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-03", - "release_date": "2025-05-20", - "last_updated": "2025-05-20", + "open_weights": true, + "release_date": "2024-07-16", + "last_updated": "2024-07-16", "cost": { - "input": 0.25, - "output": 0.25 + "input": 0, + "output": 0 } - } - ] - }, - "groq": { - "id": "groq", - "name": "Groq", - "display_name": "Groq", - "doc": "https://console.groq.com/docs/models", - "models": [ + }, { - "id": "llama-3.1-8b-instant", - "name": "Llama 3.1 8B Instant", - "display_name": "Llama 3.1 8B Instant", + "id": "meta/llama3-8b-instruct", + "name": "Llama3 8b Instruct", + "display_name": "Llama3 8b Instruct", "modalities": { "input": [ "text" @@ -4987,8 +5751,8 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -4997,18 +5761,17 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "release_date": "2024-04-17", + "last_updated": "2024-04-17", "cost": { - "input": 0.05, - "output": 0.08 + "input": 0, + "output": 0 } }, { - "id": "mistral-saba-24b", - "name": "Mistral Saba 24B", - "display_name": "Mistral Saba 24B", + "id": "meta/llama-3.1-70b-instruct", + "name": "Llama 3.1 70b Instruct", + "display_name": "Llama 3.1 70b Instruct", "modalities": { "input": [ "text" @@ -5018,8 +5781,8 @@ ] }, "limit": { - "context": 32768, - "output": 32768 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -5027,19 +5790,18 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-08", - "release_date": "2025-02-06", - "last_updated": "2025-02-06", + "open_weights": true, + "release_date": "2024-07-16", + "last_updated": "2024-07-16", "cost": { - "input": 0.79, - "output": 0.79 + "input": 0, + "output": 0 } }, { - "id": "llama3-8b-8192", - "name": "Llama 3 8B", - "display_name": "Llama 3 8B", + "id": "deepseek-ai/deepseek-r1-0528", + "name": "Deepseek R1 0528", + "display_name": "Deepseek R1 0528", "modalities": { "input": [ "text" @@ -5049,28 +5811,28 @@ ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2023-03", - "release_date": "2024-04-18", - "last_updated": "2024-04-18", + "release_date": "2025-05-28", + "last_updated": "2025-05-28", "cost": { - "input": 0.05, - "output": 0.08 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwq-32b", - "name": "Qwen QwQ 32B", - "display_name": "Qwen QwQ 32B", + "id": "deepseek-ai/deepseek-r1", + "name": "Deepseek R1", + "display_name": "Deepseek R1", "modalities": { "input": [ "text" @@ -5080,29 +5842,28 @@ ] }, "limit": { - "context": 131072, - "output": 16384 + "context": 128000, + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": true, "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2024-09", - "release_date": "2024-11-27", - "last_updated": "2024-11-27", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", "cost": { - "input": 0.29, - "output": 0.39 + "input": 0, + "output": 0 } }, { - "id": "llama3-70b-8192", - "name": "Llama 3 70B", - "display_name": "Llama 3 70B", + "id": "deepseek-ai/deepseek-v3.1-terminus", + "name": "DeepSeek V3.1 Terminus", + "display_name": "DeepSeek V3.1 Terminus", "modalities": { "input": [ "text" @@ -5112,28 +5873,29 @@ ] }, "limit": { - "context": 8192, + "context": 128000, "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2023-03", - "release_date": "2024-04-18", - "last_updated": "2024-04-18", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-09-22", + "last_updated": "2025-09-22", "cost": { - "input": 0.59, - "output": 0.79 + "input": 0, + "output": 0 } }, { - "id": "deepseek-r1-distill-llama-70b", - "name": "DeepSeek R1 Distill Llama 70B", - "display_name": "DeepSeek R1 Distill Llama 70B", + "id": "deepseek-ai/deepseek-v3.1", + "name": "DeepSeek V3.1", + "display_name": "DeepSeek V3.1", "modalities": { "input": [ "text" @@ -5143,7 +5905,7 @@ ] }, "limit": { - "context": 131072, + "context": 128000, "output": 8192 }, "temperature": true, @@ -5153,19 +5915,19 @@ "default": true }, "attachment": false, - "open_weights": true, + "open_weights": false, "knowledge": "2024-07", - "release_date": "2025-01-20", - "last_updated": "2025-01-20", + "release_date": "2025-08-20", + "last_updated": "2025-08-26", "cost": { - "input": 0.75, - "output": 0.99 + "input": 0, + "output": 0 } }, { - "id": "llama-guard-3-8b", - "name": "Llama Guard 3 8B", - "display_name": "Llama Guard 3 8B", + "id": "deepseek-ai/deepseek-coder-6.7b-instruct", + "name": "Deepseek Coder 6.7b Instruct", + "display_name": "Deepseek Coder 6.7b Instruct", "modalities": { "input": [ "text" @@ -5175,58 +5937,66 @@ ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 128000, + "output": 4096 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "release_date": "2023-10-29", + "last_updated": "2023-10-29", "cost": { - "input": 0.2, - "output": 0.2 + "input": 0, + "output": 0 } }, { - "id": "gemma2-9b-it", - "name": "Gemma 2 9B", - "display_name": "Gemma 2 9B", + "id": "black-forest-labs/flux.1-dev", + "name": "FLUX.1-dev", + "display_name": "FLUX.1-dev", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 4096, + "output": 0 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "knowledge": "2024-06", - "release_date": "2024-06-27", - "last_updated": "2024-06-27", + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-08-01", + "last_updated": "2025-09-05", "cost": { - "input": 0.2, - "output": 0.2 + "input": 0, + "output": 0 } - }, + } + ] + }, + "cohere": { + "id": "cohere", + "name": "Cohere", + "display_name": "Cohere", + "doc": "https://docs.cohere.com/docs/models", + "models": [ { - "id": "llama-3.3-70b-versatile", - "name": "Llama 3.3 70B Versatile", - "display_name": "Llama 3.3 70B Versatile", + "id": "command-a-translate-08-2025", + "name": "Command A Translate", + "display_name": "Command A Translate", "modalities": { "input": [ "text" @@ -5236,8 +6006,8 @@ ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 8000, + "output": 8000 }, "temperature": true, "tool_call": true, @@ -5246,18 +6016,18 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-12-06", - "last_updated": "2024-12-06", + "knowledge": "2024-06-01", + "release_date": "2025-08-28", + "last_updated": "2025-08-28", "cost": { - "input": 0.59, - "output": 0.79 + "input": 2.5, + "output": 10 } }, { - "id": "moonshotai/kimi-k2-instruct-0905", - "name": "Kimi K2 Instruct 0905", - "display_name": "Kimi K2 Instruct 0905", + "id": "command-a-03-2025", + "name": "Command A", + "display_name": "Command A", "modalities": { "input": [ "text" @@ -5267,28 +6037,29 @@ ] }, "limit": { - "context": 262144, - "output": 16384 + "context": 256000, + "output": 8000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2024-10", - "release_date": "2025-09-05", - "last_updated": "2025-09-05", + "knowledge": "2024-06-01", + "release_date": "2025-03-13", + "last_updated": "2025-03-13", "cost": { - "input": 1, - "output": 3 + "input": 2.5, + "output": 10 } }, { - "id": "moonshotai/kimi-k2-instruct", - "name": "Kimi K2 Instruct", - "display_name": "Kimi K2 Instruct", + "id": "command-r-08-2024", + "name": "Command R", + "display_name": "Command R", "modalities": { "input": [ "text" @@ -5298,28 +6069,29 @@ ] }, "limit": { - "context": 131072, - "output": 16384 + "context": 128000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2024-10", - "release_date": "2025-07-14", - "last_updated": "2025-07-14", + "knowledge": "2024-06-01", + "release_date": "2024-08-30", + "last_updated": "2024-08-30", "cost": { - "input": 1, - "output": 3 + "input": 0.15, + "output": 0.6 } }, { - "id": "openai/gpt-oss-20b", - "name": "GPT OSS 20B", - "display_name": "GPT OSS 20B", + "id": "command-r-plus-08-2024", + "name": "Command R+", + "display_name": "Command R+", "modalities": { "input": [ "text" @@ -5329,8 +6101,8 @@ ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 128000, + "output": 4000 }, "temperature": true, "tool_call": true, @@ -5340,17 +6112,18 @@ }, "attachment": false, "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2024-06-01", + "release_date": "2024-08-30", + "last_updated": "2024-08-30", "cost": { - "input": 0.1, - "output": 0.5 + "input": 2.5, + "output": 10 } }, { - "id": "openai/gpt-oss-120b", - "name": "GPT OSS 120B", - "display_name": "GPT OSS 120B", + "id": "command-r7b-12-2024", + "name": "Command R7B", + "display_name": "Command R7B", "modalities": { "input": [ "text" @@ -5360,28 +6133,28 @@ ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 128000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2024-06-01", + "release_date": "2024-02-27", + "last_updated": "2024-02-27", "cost": { - "input": 0.15, - "output": 0.75 + "input": 0.0375, + "output": 0.15 } }, { - "id": "qwen/qwen3-32b", - "name": "Qwen3 32B", - "display_name": "Qwen3 32B", + "id": "command-a-reasoning-08-2025", + "name": "Command A Reasoning", + "display_name": "Command A Reasoning", "modalities": { "input": [ "text" @@ -5391,8 +6164,8 @@ ] }, "limit": { - "context": 131072, - "output": 16384 + "context": 256000, + "output": 32000 }, "temperature": true, "tool_call": true, @@ -5402,18 +6175,18 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-11-08", - "release_date": "2024-12-23", - "last_updated": "2024-12-23", + "knowledge": "2024-06-01", + "release_date": "2025-08-21", + "last_updated": "2025-08-21", "cost": { - "input": 0.29, - "output": 0.59 + "input": 2.5, + "output": 10 } }, { - "id": "meta-llama/llama-4-scout-17b-16e-instruct", - "name": "Llama 4 Scout 17B", - "display_name": "Llama 4 Scout 17B", + "id": "command-a-vision-07-2025", + "name": "Command A Vision", + "display_name": "Command A Vision", "modalities": { "input": [ "text", @@ -5424,40 +6197,48 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 128000, + "output": 8000 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2024-08", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "knowledge": "2024-06-01", + "release_date": "2025-07-31", + "last_updated": "2025-07-31", "cost": { - "input": 0.11, - "output": 0.34 + "input": 2.5, + "output": 10 } - }, + } + ] + }, + "upstage": { + "id": "upstage", + "name": "Upstage", + "display_name": "Upstage", + "api": "https://api.upstage.ai", + "doc": "https://developers.upstage.ai/docs/apis/chat", + "models": [ { - "id": "meta-llama/llama-4-maverick-17b-128e-instruct", - "name": "Llama 4 Maverick 17B", - "display_name": "Llama 4 Maverick 17B", + "id": "solar-mini", + "name": "solar-mini", + "display_name": "solar-mini", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 32768, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -5465,72 +6246,69 @@ "supported": false }, "attachment": false, - "open_weights": true, - "knowledge": "2024-08", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "open_weights": false, + "knowledge": "2024-09", + "release_date": "2024-06-12", + "last_updated": "2025-04-22", "cost": { - "input": 0.2, - "output": 0.6 + "input": 0.15, + "output": 0.15 } }, { - "id": "meta-llama/llama-guard-4-12b", - "name": "Llama Guard 4 12B", - "display_name": "Llama Guard 4 12B", + "id": "solar-pro2", + "name": "solar-pro2", + "display_name": "solar-pro2", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 128 + "context": 65536, + "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "open_weights": false, + "knowledge": "2025-03", + "release_date": "2025-05-20", + "last_updated": "2025-05-20", "cost": { - "input": 0.2, - "output": 0.2 + "input": 0.25, + "output": 0.25 } } ] }, - "github-copilot": { - "id": "github-copilot", - "name": "GitHub Copilot", - "display_name": "GitHub Copilot", - "api": "https://api.githubcopilot.com", - "doc": "https://docs.github.com/en/copilot", + "groq": { + "id": "groq", + "name": "Groq", + "display_name": "Groq", + "doc": "https://console.groq.com/docs/models", "models": [ { - "id": "gemini-2.0-flash-001", - "name": "Gemini 2.0 Flash", - "display_name": "Gemini 2.0 Flash", + "id": "llama-3.1-8b-instant", + "name": "Llama 3.1 8B Instant", + "display_name": "Llama 3.1 8B Instant", "modalities": { "input": [ - "text", - "image", - "audio", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1000000, + "context": 131072, "output": 8192 }, "temperature": true, @@ -5538,88 +6316,82 @@ "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 0, - "output": 0 + "input": 0.05, + "output": 0.08 } }, { - "id": "claude-opus-4", - "name": "Claude Opus 4", - "display_name": "Claude Opus 4", + "id": "mistral-saba-24b", + "name": "Mistral Saba 24B", + "display_name": "Mistral Saba 24B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 80000, - "output": 16000 + "context": 32768, + "output": 32768 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "knowledge": "2024-08", + "release_date": "2025-02-06", + "last_updated": "2025-02-06", "cost": { - "input": 0, - "output": 0 + "input": 0.79, + "output": 0.79 } }, { - "id": "gemini-3-flash-preview", - "name": "Gemini 3 Flash", - "display_name": "Gemini 3 Flash", + "id": "llama3-8b-8192", + "name": "Llama 3 8B", + "display_name": "Llama 3 8B", "modalities": { "input": [ - "text", - "image", - "audio", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 64000 + "context": 8192, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-12-17", - "last_updated": "2025-12-17", + "attachment": false, + "open_weights": true, + "knowledge": "2023-03", + "release_date": "2024-04-18", + "last_updated": "2024-04-18", "cost": { - "input": 0, - "output": 0 + "input": 0.05, + "output": 0.08 } }, { - "id": "grok-code-fast-1", - "name": "Grok Code Fast 1", - "display_name": "Grok Code Fast 1", + "id": "qwen-qwq-32b", + "name": "Qwen QwQ 32B", + "display_name": "Qwen QwQ 32B", "modalities": { "input": [ "text" @@ -5629,8 +6401,8 @@ ] }, "limit": { - "context": 128000, - "output": 64000 + "context": 131072, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -5639,64 +6411,61 @@ "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-08", - "release_date": "2025-08-27", - "last_updated": "2025-08-27", + "open_weights": true, + "knowledge": "2024-09", + "release_date": "2024-11-27", + "last_updated": "2024-11-27", "cost": { - "input": 0, - "output": 0 + "input": 0.29, + "output": 0.39 } }, { - "id": "gpt-5.1-codex", - "name": "GPT-5.1-Codex", - "display_name": "GPT-5.1-Codex", + "id": "llama3-70b-8192", + "name": "Llama 3 70B", + "display_name": "Llama 3 70B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 8192, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-13", - "last_updated": "2025-11-13", + "open_weights": true, + "knowledge": "2023-03", + "release_date": "2024-04-18", + "last_updated": "2024-04-18", "cost": { - "input": 0, - "output": 0 + "input": 0.59, + "output": 0.79 } }, { - "id": "claude-haiku-4.5", - "name": "Claude Haiku 4.5", - "display_name": "Claude Haiku 4.5", + "id": "deepseek-r1-distill-llama-70b", + "name": "DeepSeek R1 Distill Llama 70B", + "display_name": "DeepSeek R1 Distill Llama 70B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16000 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -5704,153 +6473,143 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-02-28", - "release_date": "2025-10-15", - "last_updated": "2025-10-15", + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", "cost": { - "input": 0, - "output": 0 + "input": 0.75, + "output": 0.99 } }, { - "id": "gemini-3-pro-preview", - "name": "Gemini 3 Pro Preview", - "display_name": "Gemini 3 Pro Preview", + "id": "llama-guard-3-8b", + "name": "Llama Guard 3 8B", + "display_name": "Llama Guard 3 8B", "modalities": { "input": [ - "text", - "image", - "audio", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 64000 + "context": 8192, + "output": 8192 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", + "attachment": false, + "open_weights": true, + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 0, - "output": 0 + "input": 0.2, + "output": 0.2 } }, { - "id": "oswe-vscode-prime", - "name": "Raptor Mini (Preview)", - "display_name": "Raptor Mini (Preview)", + "id": "gemma2-9b-it", + "name": "Gemma 2 9B", + "display_name": "Gemma 2 9B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 8192, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-10", - "release_date": "2025-11-10", - "last_updated": "2025-11-10", + "attachment": false, + "open_weights": true, + "knowledge": "2024-06", + "release_date": "2024-06-27", + "last_updated": "2024-06-27", "cost": { - "input": 0, - "output": 0 + "input": 0.2, + "output": 0.2 } }, { - "id": "claude-3.5-sonnet", - "name": "Claude Sonnet 3.5", - "display_name": "Claude Sonnet 3.5", + "id": "llama-3.3-70b-versatile", + "name": "Llama 3.3 70B Versatile", + "display_name": "Llama 3.3 70B Versatile", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 90000, - "output": 8192 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", "cost": { - "input": 0, - "output": 0 + "input": 0.59, + "output": 0.79 } }, { - "id": "gpt-5.1-codex-mini", - "name": "GPT-5.1-Codex-mini", - "display_name": "GPT-5.1-Codex-mini", + "id": "moonshotai/kimi-k2-instruct-0905", + "name": "Kimi K2 Instruct 0905", + "display_name": "Kimi K2 Instruct 0905", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 100000 + "context": 262144, + "output": 16384 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-13", - "last_updated": "2025-11-13", + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", "cost": { - "input": 0, - "output": 0 + "input": 1, + "output": 3 } }, { - "id": "o3-mini", - "name": "o3-mini", - "display_name": "o3-mini", + "id": "moonshotai/kimi-k2-instruct", + "name": "Kimi K2 Instruct", + "display_name": "Kimi K2 Instruct", "modalities": { "input": [ "text" @@ -5860,127 +6619,122 @@ ] }, "limit": { - "context": 128000, - "output": 65536 + "context": 131072, + "output": 16384 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, + "open_weights": true, "knowledge": "2024-10", - "release_date": "2024-12-20", - "last_updated": "2025-01-29", + "release_date": "2025-07-14", + "last_updated": "2025-07-14", "cost": { - "input": 0, - "output": 0 + "input": 1, + "output": 3 } }, { - "id": "gpt-5.1", - "name": "GPT-5.1", - "display_name": "GPT-5.1", + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "display_name": "GPT OSS 20B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131072, + "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-13", - "last_updated": "2025-11-13", + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0, - "output": 0 + "input": 0.1, + "output": 0.5 } }, { - "id": "gpt-5-codex", - "name": "GPT-5-Codex", - "display_name": "GPT-5-Codex", + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131072, + "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-09-15", - "last_updated": "2025-09-15", + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0, - "output": 0 + "input": 0.15, + "output": 0.75 } }, { - "id": "gpt-4o", - "name": "GPT-4o", - "display_name": "GPT-4o", + "id": "qwen/qwen3-32b", + "name": "Qwen3 32B", + "display_name": "Qwen3 32B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 64000, + "context": 131072, "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-05-13", - "last_updated": "2024-05-13", + "attachment": false, + "open_weights": true, + "knowledge": "2024-11-08", + "release_date": "2024-12-23", + "last_updated": "2024-12-23", "cost": { - "input": 0, - "output": 0 + "input": 0.29, + "output": 0.59 } }, { - "id": "gpt-4.1", - "name": "GPT-4.1", - "display_name": "GPT-4.1", + "id": "meta-llama/llama-4-scout-17b-16e-instruct", + "name": "Llama 4 Scout 17B", + "display_name": "Llama 4 Scout 17B", "modalities": { "input": [ "text", @@ -5991,60 +6745,60 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "attachment": false, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", "cost": { - "input": 0, - "output": 0 + "input": 0.11, + "output": 0.34 } }, { - "id": "o4-mini", - "name": "o4-mini (Preview)", - "display_name": "o4-mini (Preview)", + "id": "meta-llama/llama-4-maverick-17b-128e-instruct", + "name": "Llama 4 Maverick 17B", + "display_name": "Llama 4 Maverick 17B", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 65536 + "context": 131072, + "output": 8192 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-10", - "release_date": "2025-04-16", - "last_updated": "2025-04-16", + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", "cost": { - "input": 0, - "output": 0 + "input": 0.2, + "output": 0.6 } }, { - "id": "claude-opus-41", - "name": "Claude Opus 4.1", - "display_name": "Claude Opus 4.1", + "id": "meta-llama/llama-guard-4-12b", + "name": "Llama Guard 4 12B", + "display_name": "Llama Guard 4 12B", "modalities": { "input": [ "text", @@ -6055,33 +6809,39 @@ ] }, "limit": { - "context": 80000, - "output": 16000 + "context": 131072, + "output": 128 }, "temperature": true, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "attachment": false, + "open_weights": true, + "release_date": "2025-04-05", + "last_updated": "2025-04-05", "cost": { - "input": 0, - "output": 0 + "input": 0.2, + "output": 0.2 } - }, + } + ] + }, + "bailing": { + "id": "bailing", + "name": "Bailing", + "display_name": "Bailing", + "api": "https://api.tbox.cn/api/llm/v1/chat/completions", + "doc": "https://alipaytbox.yuque.com/sxs0ba/ling/intro", + "models": [ { - "id": "gpt-5-mini", - "name": "GPT-5-mini", - "display_name": "GPT-5-mini", + "id": "Ling-1T", + "name": "Ling-1T", + "display_name": "Ling-1T", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -6089,60 +6849,68 @@ }, "limit": { "context": 128000, - "output": 64000 + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, + "attachment": false, + "open_weights": true, "knowledge": "2024-06", - "release_date": "2025-08-13", - "last_updated": "2025-08-13", + "release_date": "2025-10", + "last_updated": "2025-10", "cost": { - "input": 0, - "output": 0 + "input": 0.57, + "output": 2.29 } }, { - "id": "claude-3.7-sonnet", - "name": "Claude Sonnet 3.7", - "display_name": "Claude Sonnet 3.7", + "id": "Ring-1T", + "name": "Ring-1T", + "display_name": "Ring-1T", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 16384 + "context": 128000, + "output": 32000 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "attachment": false, + "open_weights": true, + "knowledge": "2024-06", + "release_date": "2025-10", + "last_updated": "2025-10", "cost": { - "input": 0, - "output": 0 + "input": 0.57, + "output": 2.29 } - }, + } + ] + }, + "github-copilot": { + "id": "github-copilot", + "name": "GitHub Copilot", + "display_name": "GitHub Copilot", + "api": "https://api.githubcopilot.com", + "doc": "https://docs.github.com/en/copilot", + "models": [ { - "id": "gemini-2.5-pro", - "name": "Gemini 2.5 Pro", - "display_name": "Gemini 2.5 Pro", + "id": "gemini-2.0-flash-001", + "name": "Gemini 2.0 Flash", + "display_name": "Gemini 2.0 Flash", "modalities": { "input": [ "text", @@ -6155,8 +6923,8 @@ ] }, "limit": { - "context": 128000, - "output": 64000 + "context": 1000000, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -6165,18 +6933,18 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-03-20", - "last_updated": "2025-06-05", + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { "input": 0, "output": 0 } }, { - "id": "gpt-5.1-codex-max", - "name": "GPT-5.1-Codex-max", - "display_name": "GPT-5.1-Codex-max", + "id": "claude-opus-4", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", "modalities": { "input": [ "text", @@ -6187,33 +6955,35 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 80000, + "output": 16000 }, "temperature": false, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": true, "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-12-04", - "last_updated": "2025-12-04", + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { "input": 0, "output": 0 } }, { - "id": "o3", - "name": "o3 (Preview)", - "display_name": "o3 (Preview)", + "id": "gemini-3-flash-preview", + "name": "Gemini 3 Flash", + "display_name": "Gemini 3 Flash", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video" ], "output": [ "text" @@ -6221,9 +6991,9 @@ }, "limit": { "context": 128000, - "output": 16384 + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -6231,22 +7001,21 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-16", - "last_updated": "2025-04-16", + "knowledge": "2025-01", + "release_date": "2025-12-17", + "last_updated": "2025-12-17", "cost": { "input": 0, "output": 0 } }, { - "id": "claude-sonnet-4", - "name": "Claude Sonnet 4", - "display_name": "Claude Sonnet 4", + "id": "grok-code-fast-1", + "name": "Grok Code Fast 1", + "display_name": "Grok Code Fast 1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -6254,7 +7023,7 @@ }, "limit": { "context": 128000, - "output": 16000 + "output": 64000 }, "temperature": true, "tool_call": true, @@ -6262,20 +7031,20 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "knowledge": "2025-08", + "release_date": "2025-08-27", + "last_updated": "2025-08-27", "cost": { "input": 0, "output": 0 } }, { - "id": "gpt-5", - "name": "GPT-5", - "display_name": "GPT-5", + "id": "gpt-5.1-codex", + "name": "GPT-5.1-Codex", + "display_name": "GPT-5.1-Codex", "modalities": { "input": [ "text", @@ -6289,26 +7058,26 @@ "context": 128000, "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-10", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "knowledge": "2024-09-30", + "release_date": "2025-11-13", + "last_updated": "2025-11-13", "cost": { "input": 0, "output": 0 } }, { - "id": "claude-3.7-sonnet-thought", - "name": "Claude Sonnet 3.7 Thinking", - "display_name": "Claude Sonnet 3.7 Thinking", + "id": "claude-haiku-4.5", + "name": "Claude Haiku 4.5", + "display_name": "Claude Haiku 4.5", "modalities": { "input": [ "text", @@ -6319,8 +7088,8 @@ ] }, "limit": { - "context": 200000, - "output": 16384 + "context": 128000, + "output": 16000 }, "temperature": true, "tool_call": true, @@ -6330,22 +7099,24 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "knowledge": "2025-02-28", + "release_date": "2025-10-15", + "last_updated": "2025-10-15", "cost": { "input": 0, "output": 0 } }, { - "id": "claude-opus-4.5", - "name": "Claude Opus 4.5", - "display_name": "Claude Opus 4.5", + "id": "gemini-3-pro-preview", + "name": "Gemini 3 Pro Preview", + "display_name": "Gemini 3 Pro Preview", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video" ], "output": [ "text" @@ -6353,7 +7124,7 @@ }, "limit": { "context": 128000, - "output": 16000 + "output": 64000 }, "temperature": true, "tool_call": true, @@ -6363,18 +7134,18 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-11-24", - "last_updated": "2025-08-01", + "knowledge": "2025-01", + "release_date": "2025-11-18", + "last_updated": "2025-11-18", "cost": { "input": 0, "output": 0 } }, { - "id": "gpt-5.2", - "name": "GPT-5.2", - "display_name": "GPT-5.2", + "id": "oswe-vscode-prime", + "name": "Raptor Mini (Preview)", + "display_name": "Raptor Mini (Preview)", "modalities": { "input": [ "text", @@ -6385,10 +7156,10 @@ ] }, "limit": { - "context": 128000, + "context": 200000, "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -6396,18 +7167,18 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-08-31", - "release_date": "2025-12-11", - "last_updated": "2025-12-11", + "knowledge": "2024-10", + "release_date": "2025-11-10", + "last_updated": "2025-11-10", "cost": { "input": 0, "output": 0 } }, { - "id": "claude-sonnet-4.5", - "name": "Claude Sonnet 4.5", - "display_name": "Claude Sonnet 4.5", + "id": "claude-3.5-sonnet", + "name": "Claude Sonnet 3.5", + "display_name": "Claude Sonnet 3.5", "modalities": { "input": [ "text", @@ -6418,40 +7189,32 @@ ] }, "limit": { - "context": 128000, - "output": 16000 + "context": 90000, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "knowledge": "2024-04", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { "input": 0, "output": 0 } - } - ] - }, - "mistral": { - "id": "mistral", - "name": "Mistral", - "display_name": "Mistral", - "doc": "https://docs.mistral.ai/getting-started/models/", - "models": [ + }, { - "id": "devstral-medium-2507", - "name": "Devstral Medium", - "display_name": "Devstral Medium", + "id": "gpt-5.1-codex-mini", + "name": "GPT-5.1-Codex-mini", + "display_name": "GPT-5.1-Codex-mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -6459,93 +7222,97 @@ }, "limit": { "context": 128000, - "output": 128000 + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2025-05", - "release_date": "2025-07-10", - "last_updated": "2025-07-10", + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-11-13", + "last_updated": "2025-11-13", "cost": { - "input": 0.4, - "output": 2 + "input": 0, + "output": 0 } }, { - "id": "mistral-large-2512", - "name": "Mistral Large 3", - "display_name": "Mistral Large 3", + "id": "o3-mini", + "name": "o3-mini", + "display_name": "o3-mini", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 128000, + "output": 65536 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": true, - "knowledge": "2024-11", - "release_date": "2024-11-01", - "last_updated": "2025-12-02", + "attachment": false, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-20", + "last_updated": "2025-01-29", "cost": { - "input": 0.5, - "output": 1.5 + "input": 0, + "output": 0 } }, { - "id": "open-mixtral-8x22b", - "name": "Mixtral 8x22B", - "display_name": "Mixtral 8x22B", + "id": "gpt-5.1", + "name": "GPT-5.1", + "display_name": "GPT-5.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 64000, - "output": 64000 + "context": 128000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-04", - "release_date": "2024-04-17", - "last_updated": "2024-04-17", + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-11-13", + "last_updated": "2025-11-13", "cost": { - "input": 2, - "output": 6 + "input": 0, + "output": 0 } }, { - "id": "ministral-8b-latest", - "name": "Ministral 8B", - "display_name": "Ministral 8B", + "id": "gpt-5-codex", + "name": "GPT-5-Codex", + "display_name": "GPT-5-Codex", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -6555,25 +7322,26 @@ "context": 128000, "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2024-10", - "release_date": "2024-10-01", - "last_updated": "2024-10-04", + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-09-15", + "last_updated": "2025-09-15", "cost": { - "input": 0.1, - "output": 0.1 + "input": 0, + "output": 0 } }, { - "id": "pixtral-large-latest", - "name": "Pixtral Large", - "display_name": "Pixtral Large", + "id": "gpt-4o", + "name": "GPT-4o", + "display_name": "GPT-4o", "modalities": { "input": [ "text", @@ -6584,8 +7352,8 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 64000, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -6593,19 +7361,19 @@ "supported": false }, "attachment": true, - "open_weights": true, - "knowledge": "2024-11", - "release_date": "2024-11-01", - "last_updated": "2024-11-04", + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-05-13", + "last_updated": "2024-05-13", "cost": { - "input": 2, - "output": 6 + "input": 0, + "output": 0 } }, { - "id": "mistral-small-2506", - "name": "Mistral Small 3.2", - "display_name": "Mistral Small 3.2", + "id": "gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", "modalities": { "input": [ "text", @@ -6624,20 +7392,20 @@ "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-03", - "release_date": "2025-06-20", - "last_updated": "2025-06-20", + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0.1, - "output": 0.3 + "input": 0, + "output": 0 } }, { - "id": "devstral-2512", - "name": "Devstral 2", - "display_name": "Devstral 2", + "id": "o4-mini", + "name": "o4-mini (Preview)", + "display_name": "o4-mini (Preview)", "modalities": { "input": [ "text" @@ -6647,59 +7415,62 @@ ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 128000, + "output": 65536 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2025-12", - "release_date": "2025-12-09", - "last_updated": "2025-12-09", + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", "cost": { "input": 0, "output": 0 } }, { - "id": "ministral-3b-latest", - "name": "Ministral 3B", - "display_name": "Ministral 3B", + "id": "claude-opus-41", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 80000, + "output": 16000 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-10", - "release_date": "2024-10-01", - "last_updated": "2024-10-04", + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0.04, - "output": 0.04 + "input": 0, + "output": 0 } }, { - "id": "pixtral-12b", - "name": "Pixtral 12B", - "display_name": "Pixtral 12B", + "id": "gpt-5-mini", + "name": "GPT-5-mini", + "display_name": "GPT-5-mini", "modalities": { "input": [ "text", @@ -6711,27 +7482,28 @@ }, "limit": { "context": 128000, - "output": 128000 + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, - "open_weights": true, - "knowledge": "2024-09", - "release_date": "2024-09-01", - "last_updated": "2024-09-01", + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2025-08-13", + "last_updated": "2025-08-13", "cost": { - "input": 0.15, - "output": 0.15 + "input": 0, + "output": 0 } }, { - "id": "mistral-medium-2505", - "name": "Mistral Medium 3", - "display_name": "Mistral Medium 3", + "id": "claude-3.7-sonnet", + "name": "Claude Sonnet 3.7", + "display_name": "Claude Sonnet 3.7", "modalities": { "input": [ "text", @@ -6742,8 +7514,8 @@ ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 200000, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -6752,84 +7524,89 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-05", - "release_date": "2025-05-07", - "last_updated": "2025-05-07", + "knowledge": "2024-04", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", "cost": { - "input": 0.4, - "output": 2 + "input": 0, + "output": 0 } }, { - "id": "labs-devstral-small-2512", - "name": "Devstral Small 2", - "display_name": "Devstral Small 2", + "id": "gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 128000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-12", - "release_date": "2025-12-09", - "last_updated": "2025-12-09", + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05", "cost": { "input": 0, "output": 0 } }, { - "id": "devstral-medium-latest", - "name": "Devstral 2", - "display_name": "Devstral 2", + "id": "gpt-5.1-codex-max", + "name": "GPT-5.1-Codex-max", + "display_name": "GPT-5.1-Codex-max", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 128000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-12", - "release_date": "2025-12-02", - "last_updated": "2025-12-02", + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-12-04", + "last_updated": "2025-12-04", "cost": { - "input": 0.4, - "output": 2 + "input": 0, + "output": 0 } }, { - "id": "devstral-small-2505", - "name": "Devstral Small 2505", - "display_name": "Devstral Small 2505", + "id": "o3", + "name": "o3 (Preview)", + "display_name": "o3 (Preview)", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -6837,27 +7614,28 @@ }, "limit": { "context": 128000, - "output": 128000 + "output": 16384 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-05", - "release_date": "2025-05-07", - "last_updated": "2025-05-07", + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", "cost": { - "input": 0.1, - "output": 0.3 + "input": 0, + "output": 0 } }, { - "id": "mistral-medium-2508", - "name": "Mistral Medium 3.1", - "display_name": "Mistral Medium 3.1", + "id": "claude-sonnet-4", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", "modalities": { "input": [ "text", @@ -6868,58 +7646,62 @@ ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 128000, + "output": 16000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2025-05", - "release_date": "2025-08-12", - "last_updated": "2025-08-12", + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { - "input": 0.4, - "output": 2 + "input": 0, + "output": 0 } }, { - "id": "mistral-embed", - "name": "Mistral Embed", - "display_name": "Mistral Embed", + "id": "gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 8000, - "output": 3072 + "context": 128000, + "output": 128000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2023-12-11", - "last_updated": "2023-12-11", + "knowledge": "2024-10", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 0.1, + "input": 0, "output": 0 } }, { - "id": "mistral-small-latest", - "name": "Mistral Small", - "display_name": "Mistral Small", + "id": "claude-3.7-sonnet-thought", + "name": "Claude Sonnet 3.7 Thinking", + "display_name": "Claude Sonnet 3.7 Thinking", "modalities": { "input": [ "text", @@ -6930,31 +7712,33 @@ ] }, "limit": { - "context": 128000, + "context": 200000, "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-03", - "release_date": "2024-09-01", - "last_updated": "2024-09-04", - "cost": { - "input": 0.1, - "output": 0.3 + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", + "cost": { + "input": 0, + "output": 0 } }, { - "id": "magistral-small", - "name": "Magistral Small", - "display_name": "Magistral Small", + "id": "claude-opus-4.5", + "name": "Claude Opus 4.5", + "display_name": "Claude Opus 4.5", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -6962,7 +7746,7 @@ }, "limit": { "context": 128000, - "output": 128000 + "output": 16000 }, "temperature": true, "tool_call": true, @@ -6970,23 +7754,24 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-06", - "release_date": "2025-03-17", - "last_updated": "2025-03-17", + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-11-24", + "last_updated": "2025-08-01", "cost": { - "input": 0.5, - "output": 1.5 + "input": 0, + "output": 0 } }, { - "id": "devstral-small-2507", - "name": "Devstral Small", - "display_name": "Devstral Small", + "id": "gpt-5.2", + "name": "GPT-5.2", + "display_name": "GPT-5.2", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -6994,58 +7779,69 @@ }, "limit": { "context": 128000, - "output": 128000 + "output": 64000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-05", - "release_date": "2025-07-10", - "last_updated": "2025-07-10", + "attachment": true, + "open_weights": false, + "knowledge": "2025-08-31", + "release_date": "2025-12-11", + "last_updated": "2025-12-11", "cost": { - "input": 0.1, - "output": 0.3 + "input": 0, + "output": 0 } }, { - "id": "codestral-latest", - "name": "Codestral", - "display_name": "Codestral", + "id": "claude-sonnet-4.5", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 4096 + "context": 128000, + "output": 16000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-10", - "release_date": "2024-05-29", - "last_updated": "2025-01-04", + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "cost": { - "input": 0.3, - "output": 0.9 + "input": 0, + "output": 0 } - }, + } + ] + }, + "mistral": { + "id": "mistral", + "name": "Mistral", + "display_name": "Mistral", + "doc": "https://docs.mistral.ai/getting-started/models/", + "models": [ { - "id": "open-mixtral-8x7b", - "name": "Mixtral 8x7B", - "display_name": "Mixtral 8x7B", + "id": "devstral-medium-2507", + "name": "Devstral Medium", + "display_name": "Devstral Medium", "modalities": { "input": [ "text" @@ -7055,8 +7851,8 @@ ] }, "limit": { - "context": 32000, - "output": 32000 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -7065,49 +7861,50 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-01", - "release_date": "2023-12-11", - "last_updated": "2023-12-11", + "knowledge": "2025-05", + "release_date": "2025-07-10", + "last_updated": "2025-07-10", "cost": { - "input": 0.7, - "output": 0.7 + "input": 0.4, + "output": 2 } }, { - "id": "mistral-nemo", - "name": "Mistral Nemo", - "display_name": "Mistral Nemo", + "id": "mistral-large-2512", + "name": "Mistral Large 3", + "display_name": "Mistral Large 3", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 262144, + "output": 262144 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, - "knowledge": "2024-07", - "release_date": "2024-07-01", - "last_updated": "2024-07-01", + "knowledge": "2024-11", + "release_date": "2024-11-01", + "last_updated": "2025-12-02", "cost": { - "input": 0.15, - "output": 0.15 + "input": 0.5, + "output": 1.5 } }, { - "id": "open-mistral-7b", - "name": "Mistral 7B", - "display_name": "Mistral 7B", + "id": "open-mixtral-8x22b", + "name": "Mixtral 8x22B", + "display_name": "Mixtral 8x22B", "modalities": { "input": [ "text" @@ -7117,8 +7914,8 @@ ] }, "limit": { - "context": 8000, - "output": 8000 + "context": 64000, + "output": 64000 }, "temperature": true, "tool_call": true, @@ -7127,50 +7924,49 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2023-09-27", - "last_updated": "2023-09-27", + "knowledge": "2024-04", + "release_date": "2024-04-17", + "last_updated": "2024-04-17", "cost": { - "input": 0.25, - "output": 0.25 + "input": 2, + "output": 6 } }, { - "id": "mistral-large-latest", - "name": "Mistral Large", - "display_name": "Mistral Large", + "id": "ministral-8b-latest", + "name": "Ministral 8B", + "display_name": "Ministral 8B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2024-11", - "release_date": "2024-11-01", - "last_updated": "2025-12-02", + "knowledge": "2024-10", + "release_date": "2024-10-01", + "last_updated": "2024-10-04", "cost": { - "input": 0.5, - "output": 1.5 + "input": 0.1, + "output": 0.1 } }, { - "id": "mistral-medium-latest", - "name": "Mistral Medium", - "display_name": "Mistral Medium", + "id": "pixtral-large-latest", + "name": "Pixtral Large", + "display_name": "Pixtral Large", "modalities": { "input": [ "text", @@ -7182,37 +7978,38 @@ }, "limit": { "context": 128000, - "output": 16384 + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, - "knowledge": "2025-05", - "release_date": "2025-05-07", - "last_updated": "2025-05-10", + "knowledge": "2024-11", + "release_date": "2024-11-01", + "last_updated": "2024-11-04", "cost": { - "input": 0.4, - "output": 2 + "input": 2, + "output": 6 } }, { - "id": "mistral-large-2411", - "name": "Mistral Large 2.1", - "display_name": "Mistral Large 2.1", + "id": "mistral-small-2506", + "name": "Mistral Small 3.2", + "display_name": "Mistral Small 3.2", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, + "context": 128000, "output": 16384 }, "temperature": true, @@ -7222,18 +8019,18 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-11", - "release_date": "2024-11-01", - "last_updated": "2024-11-04", + "knowledge": "2025-03", + "release_date": "2025-06-20", + "last_updated": "2025-06-20", "cost": { - "input": 2, - "output": 6 + "input": 0.1, + "output": 0.3 } }, { - "id": "magistral-medium-latest", - "name": "Magistral Medium", - "display_name": "Magistral Medium", + "id": "devstral-2512", + "name": "Devstral 2", + "display_name": "Devstral 2", "modalities": { "input": [ "text" @@ -7243,37 +8040,28 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 262144, + "output": 262144 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2025-06", - "release_date": "2025-03-17", - "last_updated": "2025-03-20", + "knowledge": "2025-12", + "release_date": "2025-12-09", + "last_updated": "2025-12-09", "cost": { - "input": 2, - "output": 5 + "input": 0, + "output": 0 } - } - ] - }, - "vercel": { - "id": "vercel", - "name": "Vercel AI Gateway", - "display_name": "Vercel AI Gateway", - "doc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", - "models": [ + }, { - "id": "moonshotai/kimi-k2", - "name": "Kimi K2 Instruct", - "display_name": "Kimi K2 Instruct", + "id": "ministral-3b-latest", + "name": "Ministral 3B", + "display_name": "Ministral 3B", "modalities": { "input": [ "text" @@ -7283,8 +8071,8 @@ ] }, "limit": { - "context": 131072, - "output": 16384 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -7294,48 +8082,49 @@ "attachment": false, "open_weights": true, "knowledge": "2024-10", - "release_date": "2025-07-14", - "last_updated": "2025-07-14", + "release_date": "2024-10-01", + "last_updated": "2024-10-04", "cost": { - "input": 1, - "output": 3 + "input": 0.04, + "output": 0.04 } }, { - "id": "alibaba/qwen3-next-80b-a3b-instruct", - "name": "Qwen3 Next 80B A3B Instruct", - "display_name": "Qwen3 Next 80B A3B Instruct", + "id": "pixtral-12b", + "name": "Pixtral 12B", + "display_name": "Pixtral 12B", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-09-12", - "last_updated": "2025-09-12", + "knowledge": "2024-09", + "release_date": "2024-09-01", + "last_updated": "2024-09-01", "cost": { - "input": 0.5, - "output": 2 + "input": 0.15, + "output": 0.15 } }, { - "id": "alibaba/qwen3-vl-instruct", - "name": "Qwen3 VL Instruct", - "display_name": "Qwen3 VL Instruct", + "id": "mistral-medium-2505", + "name": "Mistral Medium 3", + "display_name": "Mistral Medium 3", "modalities": { "input": [ "text", @@ -7347,7 +8136,7 @@ }, "limit": { "context": 131072, - "output": 129024 + "output": 131072 }, "temperature": true, "tool_call": true, @@ -7355,19 +8144,19 @@ "supported": false }, "attachment": true, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-09-24", - "last_updated": "2025-09-24", + "open_weights": false, + "knowledge": "2025-05", + "release_date": "2025-05-07", + "last_updated": "2025-05-07", "cost": { - "input": 0.7, - "output": 2.8 + "input": 0.4, + "output": 2 } }, { - "id": "alibaba/qwen3-vl-thinking", - "name": "Qwen3 VL Thinking", - "display_name": "Qwen3 VL Thinking", + "id": "labs-devstral-small-2512", + "name": "Devstral Small 2", + "display_name": "Devstral Small 2", "modalities": { "input": [ "text", @@ -7378,29 +8167,28 @@ ] }, "limit": { - "context": 131072, - "output": 129024 + "context": 256000, + "output": 256000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2025-09", - "release_date": "2025-09-24", - "last_updated": "2025-09-24", + "knowledge": "2025-12", + "release_date": "2025-12-09", + "last_updated": "2025-12-09", "cost": { - "input": 0.7, - "output": 8.4 + "input": 0, + "output": 0 } }, { - "id": "alibaba/qwen3-max", - "name": "Qwen3 Max", - "display_name": "Qwen3 Max", + "id": "devstral-medium-latest", + "name": "Devstral 2", + "display_name": "Devstral 2", "modalities": { "input": [ "text" @@ -7411,7 +8199,7 @@ }, "limit": { "context": 262144, - "output": 32768 + "output": 262144 }, "temperature": true, "tool_call": true, @@ -7419,19 +8207,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-04", - "release_date": "2025-09-23", - "last_updated": "2025-09-23", + "open_weights": true, + "knowledge": "2025-12", + "release_date": "2025-12-02", + "last_updated": "2025-12-02", "cost": { - "input": 1.2, - "output": 6 + "input": 0.4, + "output": 2 } }, { - "id": "alibaba/qwen3-coder-plus", - "name": "Qwen3 Coder Plus", - "display_name": "Qwen3 Coder Plus", + "id": "devstral-small-2505", + "name": "Devstral Small 2505", + "display_name": "Devstral Small 2505", "modalities": { "input": [ "text" @@ -7441,8 +8229,8 @@ ] }, "limit": { - "context": 1000000, - "output": 1000000 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -7451,50 +8239,50 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-23", - "last_updated": "2025-07-23", + "knowledge": "2025-05", + "release_date": "2025-05-07", + "last_updated": "2025-05-07", "cost": { - "input": 1, - "output": 5 + "input": 0.1, + "output": 0.3 } }, { - "id": "alibaba/qwen3-next-80b-a3b-thinking", - "name": "Qwen3 Next 80B A3B Thinking", - "display_name": "Qwen3 Next 80B A3B Thinking", + "id": "mistral-medium-2508", + "name": "Mistral Medium 3.1", + "display_name": "Mistral Medium 3.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 262144, + "output": 262144 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-09", - "release_date": "2025-09-12", - "last_updated": "2025-09-12", + "attachment": true, + "open_weights": false, + "knowledge": "2025-05", + "release_date": "2025-08-12", + "last_updated": "2025-08-12", "cost": { - "input": 0.5, - "output": 6 + "input": 0.4, + "output": 2 } }, { - "id": "xai/grok-3-mini-fast", - "name": "Grok 3 Mini Fast", - "display_name": "Grok 3 Mini Fast", + "id": "mistral-embed", + "name": "Mistral Embed", + "display_name": "Mistral Embed", "modalities": { "input": [ "text" @@ -7504,77 +8292,70 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 8000, + "output": 3072 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2024-11", - "release_date": "2025-02-17", - "last_updated": "2025-02-17", + "release_date": "2023-12-11", + "last_updated": "2023-12-11", "cost": { - "input": 0.6, - "output": 4, - "reasoning": 4, - "cache_read": 0.15 + "input": 0.1, + "output": 0 } }, { - "id": "xai/grok-3-mini", - "name": "Grok 3 Mini", - "display_name": "Grok 3 Mini", + "id": "mistral-small-latest", + "name": "Mistral Small", + "display_name": "Mistral Small", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-11", - "release_date": "2025-02-17", - "last_updated": "2025-02-17", + "open_weights": true, + "knowledge": "2025-03", + "release_date": "2024-09-01", + "last_updated": "2024-09-04", "cost": { - "input": 0.3, - "output": 0.5, - "reasoning": 0.5, - "cache_read": 0.075 + "input": 0.1, + "output": 0.3 } }, { - "id": "xai/grok-4-fast", - "name": "Grok 4 Fast", - "display_name": "Grok 4 Fast", + "id": "magistral-small", + "name": "Magistral Small", + "display_name": "Magistral Small", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 2000000, - "output": 30000 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -7582,21 +8363,20 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-09-19", - "last_updated": "2025-09-19", + "attachment": false, + "open_weights": true, + "knowledge": "2025-06", + "release_date": "2025-03-17", + "last_updated": "2025-03-17", "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05 + "input": 0.5, + "output": 1.5 } }, { - "id": "xai/grok-3", - "name": "Grok 3", - "display_name": "Grok 3", + "id": "devstral-small-2507", + "name": "Devstral Small", + "display_name": "Devstral Small", "modalities": { "input": [ "text" @@ -7606,8 +8386,8 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -7615,20 +8395,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-11", - "release_date": "2025-02-17", - "last_updated": "2025-02-17", + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-07-10", + "last_updated": "2025-07-10", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.75 + "input": 0.1, + "output": 0.3 } }, { - "id": "xai/grok-2", - "name": "Grok 2", - "display_name": "Grok 2", + "id": "codestral-latest", + "name": "Codestral", + "display_name": "Codestral", "modalities": { "input": [ "text" @@ -7638,8 +8417,8 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 256000, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -7647,20 +8426,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-08", - "release_date": "2024-08-20", - "last_updated": "2024-08-20", + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2024-05-29", + "last_updated": "2025-01-04", "cost": { - "input": 2, - "output": 10, - "cache_read": 2 + "input": 0.3, + "output": 0.9 } }, { - "id": "xai/grok-code-fast-1", - "name": "Grok Code Fast 1", - "display_name": "Grok Code Fast 1", + "id": "open-mixtral-8x7b", + "name": "Mixtral 8x7B", + "display_name": "Mixtral 8x7B", "modalities": { "input": [ "text" @@ -7670,63 +8448,59 @@ ] }, "limit": { - "context": 256000, - "output": 10000 + "context": 32000, + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2023-10", - "release_date": "2025-08-28", - "last_updated": "2025-08-28", + "open_weights": true, + "knowledge": "2024-01", + "release_date": "2023-12-11", + "last_updated": "2023-12-11", "cost": { - "input": 0.2, - "output": 1.5, - "cache_read": 0.02 + "input": 0.7, + "output": 0.7 } }, { - "id": "xai/grok-2-vision", - "name": "Grok 2 Vision", - "display_name": "Grok 2 Vision", + "id": "mistral-nemo", + "name": "Mistral Nemo", + "display_name": "Mistral Nemo", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 4096 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-08", - "release_date": "2024-08-20", - "last_updated": "2024-08-20", + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2024-07-01", + "last_updated": "2024-07-01", "cost": { - "input": 2, - "output": 10, - "cache_read": 2 + "input": 0.15, + "output": 0.15 } }, { - "id": "xai/grok-4", - "name": "Grok 4", - "display_name": "Grok 4", + "id": "open-mistral-7b", + "name": "Mistral 7B", + "display_name": "Mistral 7B", "modalities": { "input": [ "text" @@ -7736,63 +8510,60 @@ ] }, "limit": { - "context": 256000, - "output": 64000 + "context": 8000, + "output": 8000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-07-09", - "last_updated": "2025-07-09", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2023-09-27", + "last_updated": "2023-09-27", "cost": { - "input": 3, - "output": 15, - "reasoning": 15, - "cache_read": 0.75 + "input": 0.25, + "output": 0.25 } }, { - "id": "xai/grok-3-fast", - "name": "Grok 3 Fast", - "display_name": "Grok 3 Fast", + "id": "mistral-large-latest", + "name": "Mistral Large", + "display_name": "Mistral Large", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 262144, + "output": 262144 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false, + "attachment": true, + "open_weights": true, "knowledge": "2024-11", - "release_date": "2025-02-17", - "last_updated": "2025-02-17", + "release_date": "2024-11-01", + "last_updated": "2025-12-02", "cost": { - "input": 5, - "output": 25, - "cache_read": 1.25 + "input": 0.5, + "output": 1.5 } }, { - "id": "xai/grok-4-fast-non-reasoning", - "name": "Grok 4 Fast (Non-Reasoning)", - "display_name": "Grok 4 Fast (Non-Reasoning)", + "id": "mistral-medium-latest", + "name": "Mistral Medium", + "display_name": "Mistral Medium", "modalities": { "input": [ "text", @@ -7803,29 +8574,28 @@ ] }, "limit": { - "context": 2000000, - "output": 30000 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-09-19", - "last_updated": "2025-09-19", + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-05-07", + "last_updated": "2025-05-10", "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05 + "input": 0.4, + "output": 2 } }, { - "id": "mistral/codestral", - "name": "Codestral", - "display_name": "Codestral", + "id": "mistral-large-2411", + "name": "Mistral Large 2.1", + "display_name": "Mistral Large 2.1", "modalities": { "input": [ "text" @@ -7835,8 +8605,8 @@ ] }, "limit": { - "context": 256000, - "output": 4096 + "context": 131072, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -7845,16 +8615,16 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-10", - "release_date": "2024-05-29", - "last_updated": "2025-01-04", + "knowledge": "2024-11", + "release_date": "2024-11-01", + "last_updated": "2024-11-04", "cost": { - "input": 0.3, - "output": 0.9 + "input": 2, + "output": 6 } }, { - "id": "mistral/magistral-medium", + "id": "magistral-medium-latest", "name": "Magistral Medium", "display_name": "Magistral Medium", "modalities": { @@ -7884,137 +8654,146 @@ "input": 2, "output": 5 } - }, + } + ] + }, + "vercel": { + "id": "vercel", + "name": "Vercel AI Gateway", + "display_name": "Vercel AI Gateway", + "doc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", + "models": [ { - "id": "mistral/mistral-large", - "name": "Mistral Large", - "display_name": "Mistral Large", + "id": "moonshotai/kimi-k2", + "name": "Kimi K2 Instruct", + "display_name": "Kimi K2 Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 131072, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2024-11", - "release_date": "2024-11-01", - "last_updated": "2025-12-02", + "knowledge": "2024-10", + "release_date": "2025-07-14", + "last_updated": "2025-07-14", "cost": { - "input": 0.5, - "output": 1.5 + "input": 1, + "output": 3 } }, { - "id": "mistral/pixtral-large", - "name": "Pixtral Large", - "display_name": "Pixtral Large", + "id": "alibaba/qwen3-next-80b-a3b-instruct", + "name": "Qwen3 Next 80B A3B Instruct", + "display_name": "Qwen3 Next 80B A3B Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2024-11", - "release_date": "2024-11-01", - "last_updated": "2024-11-04", + "knowledge": "2025-04", + "release_date": "2025-09-12", + "last_updated": "2025-09-12", "cost": { - "input": 2, - "output": 6 + "input": 0.5, + "output": 2 } }, { - "id": "mistral/ministral-8b", - "name": "Ministral 8B", - "display_name": "Ministral 8B", + "id": "alibaba/qwen3-vl-instruct", + "name": "Qwen3 VL Instruct", + "display_name": "Qwen3 VL Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131072, + "output": 129024 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, - "knowledge": "2024-10", - "release_date": "2024-10-01", - "last_updated": "2024-10-04", + "knowledge": "2025-04", + "release_date": "2025-09-24", + "last_updated": "2025-09-24", "cost": { - "input": 0.1, - "output": 0.1 + "input": 0.7, + "output": 2.8 } }, { - "id": "mistral/ministral-3b", - "name": "Ministral 3B", - "display_name": "Ministral 3B", + "id": "alibaba/qwen3-vl-thinking", + "name": "Qwen3 VL Thinking", + "display_name": "Qwen3 VL Thinking", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131072, + "output": 129024 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": true, - "knowledge": "2024-10", - "release_date": "2024-10-01", - "last_updated": "2024-10-04", + "knowledge": "2025-09", + "release_date": "2025-09-24", + "last_updated": "2025-09-24", "cost": { - "input": 0.04, - "output": 0.04 + "input": 0.7, + "output": 8.4 } }, { - "id": "mistral/magistral-small", - "name": "Magistral Small", - "display_name": "Magistral Small", + "id": "alibaba/qwen3-max", + "name": "Qwen3 Max", + "display_name": "Qwen3 Max", "modalities": { "input": [ "text" @@ -8024,41 +8803,39 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 262144, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, - "knowledge": "2025-06", - "release_date": "2025-03-17", - "last_updated": "2025-03-17", + "open_weights": false, + "knowledge": "2025-04", + "release_date": "2025-09-23", + "last_updated": "2025-09-23", "cost": { - "input": 0.5, - "output": 1.5 + "input": 1.2, + "output": 6 } }, { - "id": "mistral/mistral-small", - "name": "Mistral Small", - "display_name": "Mistral Small", + "id": "alibaba/qwen3-coder-plus", + "name": "Qwen3 Coder Plus", + "display_name": "Qwen3 Coder Plus", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 1000000, + "output": 1000000 }, "temperature": true, "tool_call": true, @@ -8067,50 +8844,50 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2025-03", - "release_date": "2024-09-01", - "last_updated": "2024-09-04", + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", "cost": { - "input": 0.1, - "output": 0.3 + "input": 1, + "output": 5 } }, { - "id": "mistral/pixtral-12b", - "name": "Pixtral 12B", - "display_name": "Pixtral 12B", + "id": "alibaba/qwen3-next-80b-a3b-thinking", + "name": "Qwen3 Next 80B A3B Thinking", + "display_name": "Qwen3 Next 80B A3B Thinking", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2024-09", - "release_date": "2024-09-01", - "last_updated": "2024-09-01", + "knowledge": "2025-09", + "release_date": "2025-09-12", + "last_updated": "2025-09-12", "cost": { - "input": 0.15, - "output": 0.15 + "input": 0.5, + "output": 6 } }, { - "id": "mistral/mixtral-8x22b-instruct", - "name": "Mixtral 8x22B", - "display_name": "Mixtral 8x22B", + "id": "xai/grok-3-mini-fast", + "name": "Grok 3 Mini Fast", + "display_name": "Grok 3 Mini Fast", "modalities": { "input": [ "text" @@ -8120,40 +8897,42 @@ ] }, "limit": { - "context": 64000, - "output": 64000 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2024-04", - "release_date": "2024-04-17", - "last_updated": "2024-04-17", + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", "cost": { - "input": 2, - "output": 6 + "input": 0.6, + "output": 4, + "reasoning": 4, + "cache_read": 0.15 } }, { - "id": "vercel/v0-1.0-md", - "name": "v0-1.0-md", - "display_name": "v0-1.0-md", + "id": "xai/grok-3-mini", + "name": "Grok 3 Mini", + "display_name": "Grok 3 Mini", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32000 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -8161,19 +8940,22 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", "cost": { - "input": 3, - "output": 15 + "input": 0.3, + "output": 0.5, + "reasoning": 0.5, + "cache_read": 0.075 } }, { - "id": "vercel/v0-1.5-md", - "name": "v0-1.5-md", - "display_name": "v0-1.5-md", + "id": "xai/grok-4-fast", + "name": "Grok 4 Fast", + "display_name": "Grok 4 Fast", "modalities": { "input": [ "text", @@ -8184,8 +8966,8 @@ ] }, "limit": { - "context": 128000, - "output": 32000 + "context": 2000000, + "output": 30000 }, "temperature": true, "tool_call": true, @@ -8195,17 +8977,19 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-06-09", - "last_updated": "2025-06-09", + "knowledge": "2025-07", + "release_date": "2025-09-19", + "last_updated": "2025-09-19", "cost": { - "input": 3, - "output": 15 + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 } }, { - "id": "deepseek/deepseek-v3.2-exp-thinking", - "name": "DeepSeek V3.2 Exp Thinking", - "display_name": "DeepSeek V3.2 Exp Thinking", + "id": "xai/grok-3", + "name": "Grok 3", + "display_name": "Grok 3", "modalities": { "input": [ "text" @@ -8215,29 +8999,29 @@ ] }, "limit": { - "context": 163840, + "context": 131072, "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2025-09", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", "cost": { - "input": 0.28, - "output": 0.42 + "input": 3, + "output": 15, + "cache_read": 0.75 } }, { - "id": "deepseek/deepseek-v3.1-terminus", - "name": "DeepSeek V3.1 Terminus", - "display_name": "DeepSeek V3.1 Terminus", + "id": "xai/grok-2", + "name": "Grok 2", + "display_name": "Grok 2", "modalities": { "input": [ "text" @@ -8247,30 +9031,30 @@ ] }, "limit": { - "context": 128000, + "context": 131072, "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, - "knowledge": "2025-07", - "release_date": "2025-09-22", - "last_updated": "2025-09-22", + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", "cost": { - "input": 0.27, - "output": 1 + "input": 2, + "output": 10, + "cache_read": 2 } }, { - "id": "deepseek/deepseek-v3.2-exp", - "name": "DeepSeek V3.2 Exp", - "display_name": "DeepSeek V3.2 Exp", - "modalities": { + "id": "xai/grok-code-fast-1", + "name": "Grok Code Fast 1", + "display_name": "Grok Code Fast 1", + "modalities": { "input": [ "text" ], @@ -8279,60 +9063,63 @@ ] }, "limit": { - "context": 163840, - "output": 8192 + "context": 256000, + "output": 10000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2025-09", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "knowledge": "2023-10", + "release_date": "2025-08-28", + "last_updated": "2025-08-28", "cost": { - "input": 0.28, - "output": 0.42 + "input": 0.2, + "output": 1.5, + "cache_read": 0.02 } }, { - "id": "deepseek/deepseek-r1-distill-llama-70b", - "name": "DeepSeek R1 Distill Llama 70B", - "display_name": "DeepSeek R1 Distill Llama 70B", + "id": "xai/grok-2-vision", + "name": "Grok 2 Vision", + "display_name": "Grok 2 Vision", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 8192, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-01-20", - "last_updated": "2025-01-20", + "attachment": true, + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", "cost": { - "input": 0.75, - "output": 0.99 + "input": 2, + "output": 10, + "cache_read": 2 } }, { - "id": "deepseek/deepseek-r1", - "name": "DeepSeek-R1", - "display_name": "DeepSeek-R1", + "id": "xai/grok-4", + "name": "Grok 4", + "display_name": "Grok 4", "modalities": { "input": [ "text" @@ -8342,8 +9129,8 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 256000, + "output": 64000 }, "temperature": true, "tool_call": true, @@ -8353,18 +9140,20 @@ }, "attachment": false, "open_weights": false, - "knowledge": "2024-07", - "release_date": "2025-01-20", - "last_updated": "2025-05-29", + "knowledge": "2025-07", + "release_date": "2025-07-09", + "last_updated": "2025-07-09", "cost": { - "input": 1.35, - "output": 5.4 + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.75 } }, { - "id": "minimax/minimax-m2", - "name": "MiniMax M2", - "display_name": "MiniMax M2", + "id": "xai/grok-3-fast", + "name": "Grok 3 Fast", + "display_name": "Grok 3 Fast", "modalities": { "input": [ "text" @@ -8374,125 +9163,104 @@ ] }, "limit": { - "context": 205000, - "output": 131072 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, - "knowledge": "2024-10", - "release_date": "2025-10-27", - "last_updated": "2025-10-27", + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", "cost": { - "input": 0.3, - "output": 1.2, - "cache_read": 0.03, - "cache_write": 0.38 + "input": 5, + "output": 25, + "cache_read": 1.25 } }, { - "id": "google/gemini-3-pro-preview", - "name": "Gemini 3 Pro Preview", - "display_name": "Gemini 3 Pro Preview", + "id": "xai/grok-4-fast-non-reasoning", + "name": "Grok 4 Fast (Non-Reasoning)", + "display_name": "Grok 4 Fast (Non-Reasoning)", "modalities": { "input": [ "text", - "image", - "video", - "audio", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 64000 + "context": 2000000, + "output": 30000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", + "knowledge": "2025-07", + "release_date": "2025-09-19", + "last_updated": "2025-09-19", "cost": { - "input": 2, - "output": 12, - "cache_read": 0.2, - "context_over_200k": { - "input": 4, - "output": 18, - "cache_read": 0.4 - } + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 } }, { - "id": "google/gemini-2.5-flash-lite", - "name": "Gemini 2.5 Flash Lite", - "display_name": "Gemini 2.5 Flash Lite", + "id": "mistral/codestral", + "name": "Codestral", + "display_name": "Codestral", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 256000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-06-17", - "last_updated": "2025-06-17", + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2024-05-29", + "last_updated": "2025-01-04", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "input": 0.3, + "output": 0.9 } }, { - "id": "google/gemini-2.5-flash-preview-09-2025", - "name": "Gemini 2.5 Flash Preview 09-25", - "display_name": "Gemini 2.5 Flash Preview 09-25", + "id": "mistral/magistral-medium", + "name": "Magistral Medium", + "display_name": "Magistral Medium", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -8500,182 +9268,157 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-09-25", - "last_updated": "2025-09-25", + "attachment": false, + "open_weights": true, + "knowledge": "2025-06", + "release_date": "2025-03-17", + "last_updated": "2025-03-20", "cost": { - "input": 0.3, - "output": 2.5, - "cache_read": 0.075, - "cache_write": 0.383 + "input": 2, + "output": 5 } }, { - "id": "google/gemini-2.5-flash-lite-preview-09-2025", - "name": "Gemini 2.5 Flash Lite Preview 09-25", - "display_name": "Gemini 2.5 Flash Lite Preview 09-25", + "id": "mistral/mistral-large", + "name": "Mistral Large", + "display_name": "Mistral Large", "modalities": { "input": [ "text", - "image", - "audio", - "video", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 262144, + "output": 262144 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-09-25", - "last_updated": "2025-09-25", + "open_weights": true, + "knowledge": "2024-11", + "release_date": "2024-11-01", + "last_updated": "2025-12-02", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "input": 0.5, + "output": 1.5 } }, { - "id": "google/gemini-2.5-pro", - "name": "Gemini 2.5 Pro", - "display_name": "Gemini 2.5 Pro", + "id": "mistral/pixtral-large", + "name": "Pixtral Large", + "display_name": "Pixtral Large", "modalities": { "input": [ "text", - "image", - "audio", - "video", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-03-20", - "last_updated": "2025-06-05", + "open_weights": true, + "knowledge": "2024-11", + "release_date": "2024-11-01", + "last_updated": "2024-11-04", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 2, + "output": 6 } }, { - "id": "google/gemini-2.0-flash", - "name": "Gemini 2.0 Flash", - "display_name": "Gemini 2.0 Flash", + "id": "mistral/ministral-8b", + "name": "Ministral 8B", + "display_name": "Ministral 8B", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 8192 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2024-10-01", + "last_updated": "2024-10-04", "cost": { "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "output": 0.1 } }, { - "id": "google/gemini-2.0-flash-lite", - "name": "Gemini 2.0 Flash Lite", - "display_name": "Gemini 2.0 Flash Lite", + "id": "mistral/ministral-3b", + "name": "Ministral 3B", + "display_name": "Ministral 3B", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 8192 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2024-10-01", + "last_updated": "2024-10-04", "cost": { - "input": 0.075, - "output": 0.3 + "input": 0.04, + "output": 0.04 } }, { - "id": "google/gemini-2.5-flash", - "name": "Gemini 2.5 Flash", - "display_name": "Gemini 2.5 Flash", + "id": "mistral/magistral-small", + "name": "Magistral Small", + "display_name": "Magistral Small", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -8683,118 +9426,115 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-03-20", - "last_updated": "2025-06-05", + "attachment": false, + "open_weights": true, + "knowledge": "2025-06", + "release_date": "2025-03-17", + "last_updated": "2025-03-17", "cost": { - "input": 0.3, - "output": 2.5, - "cache_read": 0.075, - "input_audio": 1 + "input": 0.5, + "output": 1.5 } }, { - "id": "openai/gpt-oss-20b", - "name": "GPT OSS 20B", - "display_name": "GPT OSS 20B", + "id": "mistral/mistral-small", + "name": "Mistral Small", + "display_name": "Mistral Small", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2025-03", + "release_date": "2024-09-01", + "last_updated": "2024-09-04", "cost": { - "input": 0.07, + "input": 0.1, "output": 0.3 } }, { - "id": "openai/gpt-oss-120b", - "name": "GPT OSS 120B", - "display_name": "GPT OSS 120B", + "id": "mistral/pixtral-12b", + "name": "Pixtral 12B", + "display_name": "Pixtral 12B", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2024-09", + "release_date": "2024-09-01", + "last_updated": "2024-09-01", "cost": { - "input": 0.1, - "output": 0.5 + "input": 0.15, + "output": 0.15 } }, { - "id": "openai/gpt-5", - "name": "GPT-5", - "display_name": "GPT-5", + "id": "mistral/mixtral-8x22b-instruct", + "name": "Mixtral 8x22B", + "display_name": "Mixtral 8x22B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 64000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-04-17", + "last_updated": "2024-04-17", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.13 + "input": 2, + "output": 6 } }, { - "id": "openai/gpt-4o-mini", - "name": "GPT-4o mini", - "display_name": "GPT-4o mini", + "id": "vercel/v0-1.0-md", + "name": "v0-1.0-md", + "display_name": "v0-1.0-md", "modalities": { "input": [ "text", @@ -8806,28 +9546,27 @@ }, "limit": { "context": 128000, - "output": 16384 + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-07-18", - "last_updated": "2024-07-18", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.08 + "input": 3, + "output": 15 } }, { - "id": "openai/o3", - "name": "o3", - "display_name": "o3", + "id": "vercel/v0-1.5-md", + "name": "v0-1.5-md", + "display_name": "v0-1.5-md", "modalities": { "input": [ "text", @@ -8838,10 +9577,10 @@ ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 128000, + "output": 32000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -8849,158 +9588,147 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-16", - "last_updated": "2025-04-16", + "release_date": "2025-06-09", + "last_updated": "2025-06-09", "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 3, + "output": 15 } }, { - "id": "openai/gpt-5-mini", - "name": "GPT-5 Mini", - "display_name": "GPT-5 Mini", + "id": "deepseek/deepseek-v3.2-exp-thinking", + "name": "DeepSeek V3.2 Exp Thinking", + "display_name": "DeepSeek V3.2 Exp Thinking", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 163840, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-05-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "knowledge": "2025-09", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.03 + "input": 0.28, + "output": 0.42 } }, { - "id": "openai/o1", - "name": "o1", - "display_name": "o1", + "id": "deepseek/deepseek-v3.1-terminus", + "name": "DeepSeek V3.1 Terminus", + "display_name": "DeepSeek V3.1 Terminus", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 128000, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-12-05", - "last_updated": "2024-12-05", + "attachment": false, + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-09-22", + "last_updated": "2025-09-22", "cost": { - "input": 15, - "output": 60, - "cache_read": 7.5 + "input": 0.27, + "output": 1 } }, { - "id": "openai/o4-mini", - "name": "o4-mini", - "display_name": "o4-mini", + "id": "deepseek/deepseek-v3.2-exp", + "name": "DeepSeek V3.2 Exp", + "display_name": "DeepSeek V3.2 Exp", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 163840, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-16", - "last_updated": "2025-04-16", + "knowledge": "2025-09", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.28 + "input": 0.28, + "output": 0.42 } }, { - "id": "openai/gpt-4.1", - "name": "GPT-4.1", - "display_name": "GPT-4.1", + "id": "deepseek/deepseek-r1-distill-llama-70b", + "name": "DeepSeek R1 Distill Llama 70B", + "display_name": "DeepSeek R1 Distill Llama 70B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 0.75, + "output": 0.99 } }, { - "id": "openai/gpt-4o", - "name": "GPT-4o", - "display_name": "GPT-4o", + "id": "deepseek/deepseek-r1", + "name": "DeepSeek-R1", + "display_name": "DeepSeek-R1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -9008,76 +9736,79 @@ }, "limit": { "context": 128000, - "output": 16384 + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-05-13", - "last_updated": "2024-08-06", + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-05-29", "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 + "input": 1.35, + "output": 5.4 } }, { - "id": "openai/gpt-5-codex", - "name": "GPT-5-Codex", - "display_name": "GPT-5-Codex", + "id": "minimax/minimax-m2", + "name": "MiniMax M2", + "display_name": "MiniMax M2", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 205000, + "output": 131072 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-09-15", - "last_updated": "2025-09-15", + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-10-27", + "last_updated": "2025-10-27", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.38 } }, { - "id": "openai/gpt-5-nano", - "name": "GPT-5 Nano", - "display_name": "GPT-5 Nano", + "id": "google/gemini-3-pro-preview", + "name": "Gemini 3 Pro Preview", + "display_name": "Gemini 3 Pro Preview", "modalities": { "input": [ "text", - "image" + "image", + "video", + "audio", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 1000000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -9085,246 +9816,282 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-05-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "knowledge": "2025-01", + "release_date": "2025-11-18", + "last_updated": "2025-11-18", "cost": { - "input": 0.05, - "output": 0.4, - "cache_read": 0.01 + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { + "input": 4, + "output": 18, + "cache_read": 0.4 + } } }, { - "id": "openai/o3-mini", - "name": "o3-mini", - "display_name": "o3-mini", + "id": "google/gemini-2.5-flash-lite", + "name": "Gemini 2.5 Flash Lite", + "display_name": "Gemini 2.5 Flash Lite", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 1048576, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-05", - "release_date": "2024-12-20", - "last_updated": "2025-01-29", + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.55 + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 } }, { - "id": "openai/gpt-4-turbo", - "name": "GPT-4 Turbo", - "display_name": "GPT-4 Turbo", + "id": "google/gemini-2.5-flash-preview-09-2025", + "name": "Gemini 2.5 Flash Preview 09-25", + "display_name": "Gemini 2.5 Flash Preview 09-25", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2023-12", - "release_date": "2023-11-06", - "last_updated": "2024-04-09", + "knowledge": "2025-01", + "release_date": "2025-09-25", + "last_updated": "2025-09-25", "cost": { - "input": 10, - "output": 30 + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.383 } }, { - "id": "openai/gpt-4.1-mini", - "name": "GPT-4.1 mini", - "display_name": "GPT-4.1 mini", + "id": "google/gemini-2.5-flash-lite-preview-09-2025", + "name": "Gemini 2.5 Flash Lite Preview 09-25", + "display_name": "Gemini 2.5 Flash Lite Preview 09-25", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "knowledge": "2025-01", + "release_date": "2025-09-25", + "last_updated": "2025-09-25", "cost": { - "input": 0.4, - "output": 1.6, - "cache_read": 0.1 + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 } }, { - "id": "openai/gpt-4.1-nano", - "name": "GPT-4.1 nano", - "display_name": "GPT-4.1 nano", + "id": "google/gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.03 + "input": 1.25, + "output": 10, + "cache_read": 0.31 } }, { - "id": "perplexity/sonar-reasoning", - "name": "Sonar Reasoning", - "display_name": "Sonar Reasoning", + "id": "google/gemini-2.0-flash", + "name": "Gemini 2.0 Flash", + "display_name": "Gemini 2.0 Flash", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 127000, - "output": 8000 + "context": 1048576, + "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-09", - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 1, - "output": 5 + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 } }, { - "id": "perplexity/sonar", - "name": "Sonar", - "display_name": "Sonar", + "id": "google/gemini-2.0-flash-lite", + "name": "Gemini 2.0 Flash Lite", + "display_name": "Gemini 2.0 Flash Lite", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 127000, - "output": 8000 + "context": 1048576, + "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-02", - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 1, - "output": 1 + "input": 0.075, + "output": 0.3 } }, { - "id": "perplexity/sonar-pro", - "name": "Sonar Pro", - "display_name": "Sonar Pro", + "id": "google/gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "display_name": "Gemini 2.5 Flash", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 8000 + "context": 1048576, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-09", - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05", "cost": { - "input": 3, - "output": 15 + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "input_audio": 1 } }, { - "id": "perplexity/sonar-reasoning-pro", - "name": "Sonar Reasoning Pro", - "display_name": "Sonar Reasoning Pro", + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "display_name": "GPT OSS 20B", "modalities": { "input": [ "text" @@ -9334,29 +10101,28 @@ ] }, "limit": { - "context": 127000, - "output": 8000 + "context": 131072, + "output": 32768 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-09", - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 2, - "output": 8 + "input": 0.07, + "output": 0.3 } }, { - "id": "zai/glm-4.5", - "name": "GLM 4.5", - "display_name": "GLM 4.5", + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", "modalities": { "input": [ "text" @@ -9366,8 +10132,8 @@ ] }, "limit": { - "context": 128000, - "output": 96000 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -9377,50 +10143,51 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2025-07", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0.6, - "output": 2.2 + "input": 0.1, + "output": 0.5 } }, { - "id": "zai/glm-4.5-air", - "name": "GLM 4.5 Air", - "display_name": "GLM 4.5 Air", + "id": "openai/gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 96000 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 0.2, - "output": 1.1 + "input": 1.25, + "output": 10, + "cache_read": 0.13 } }, { - "id": "zai/glm-4.5v", - "name": "GLM 4.5V", - "display_name": "GLM 4.5V", + "id": "openai/gpt-4o-mini", + "name": "GPT-4o mini", + "display_name": "GPT-4o mini", "modalities": { "input": [ "text", @@ -9431,32 +10198,33 @@ ] }, "limit": { - "context": 66000, - "output": 16000 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "open_weights": true, - "knowledge": "2025-08", - "release_date": "2025-08-11", - "last_updated": "2025-08-11", + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", "cost": { - "input": 0.6, - "output": 1.8 + "input": 0.15, + "output": 0.6, + "cache_read": 0.08 } }, { - "id": "zai/glm-4.6", - "name": "GLM 4.6", - "display_name": "GLM 4.6", + "id": "openai/o3", + "name": "o3", + "display_name": "o3", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -9464,188 +10232,197 @@ }, "limit": { "context": 200000, - "output": 96000 + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-09-30", - "last_updated": "2025-09-30", + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", "cost": { - "input": 0.6, - "output": 2.2 + "input": 2, + "output": 8, + "cache_read": 0.5 } }, { - "id": "amazon/nova-micro", - "name": "Nova Micro", - "display_name": "Nova Micro", + "id": "openai/gpt-5-mini", + "name": "GPT-5 Mini", + "display_name": "GPT-5 Mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-12-03", - "last_updated": "2024-12-03", + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 0.035, - "output": 0.14, - "cache_read": 0.00875 + "input": 0.25, + "output": 2, + "cache_read": 0.03 } }, { - "id": "amazon/nova-pro", - "name": "Nova Pro", - "display_name": "Nova Pro", + "id": "openai/o1", + "name": "o1", + "display_name": "o1", "modalities": { "input": [ "text", - "image", - "video" + "image" ], "output": [ "text" ] }, "limit": { - "context": 300000, - "output": 8192 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-12-03", - "last_updated": "2024-12-03", + "knowledge": "2023-09", + "release_date": "2024-12-05", + "last_updated": "2024-12-05", "cost": { - "input": 0.8, - "output": 3.2, - "cache_read": 0.2 + "input": 15, + "output": 60, + "cache_read": 7.5 } }, { - "id": "amazon/nova-lite", - "name": "Nova Lite", - "display_name": "Nova Lite", + "id": "openai/o4-mini", + "name": "o4-mini", + "display_name": "o4-mini", "modalities": { "input": [ "text", - "image", - "video" + "image" ], "output": [ "text" ] }, "limit": { - "context": 300000, - "output": 8192 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-12-03", - "last_updated": "2024-12-03", + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", "cost": { - "input": 0.06, - "output": 0.24, - "cache_read": 0.015 + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 } }, { - "id": "morph/morph-v3-fast", - "name": "Morph v3 Fast", - "display_name": "Morph v3 Fast", + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 16000, - "output": 16000 + "context": 1047576, + "output": 32768 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-08-15", - "last_updated": "2024-08-15", + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0.8, - "output": 1.2 + "input": 2, + "output": 8, + "cache_read": 0.5 } }, { - "id": "morph/morph-v3-large", - "name": "Morph v3 Large", - "display_name": "Morph v3 Large", + "id": "openai/gpt-4o", + "name": "GPT-4o", + "display_name": "GPT-4o", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 32000, - "output": 32000 + "context": 128000, + "output": 16384 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-08-15", - "last_updated": "2024-08-15", + "knowledge": "2023-09", + "release_date": "2024-05-13", + "last_updated": "2024-08-06", "cost": { - "input": 0.9, - "output": 1.9 + "input": 2.5, + "output": 10, + "cache_read": 1.25 } }, { - "id": "meta/llama-4-scout", - "name": "Llama-4-Scout-17B-16E-Instruct-FP8", - "display_name": "Llama-4-Scout-17B-16E-Instruct-FP8", + "id": "openai/gpt-5-codex", + "name": "GPT-5-Codex", + "display_name": "GPT-5-Codex", "modalities": { "input": [ "text", @@ -9656,176 +10433,174 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": true, - "knowledge": "2024-08", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "attachment": false, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-09-15", + "last_updated": "2025-09-15", "cost": { - "input": 0, - "output": 0 + "input": 1.25, + "output": 10, + "cache_read": 0.125 } }, { - "id": "meta/llama-3.3-70b", - "name": "Llama-3.3-70B-Instruct", - "display_name": "Llama-3.3-70B-Instruct", + "id": "openai/gpt-5-nano", + "name": "GPT-5 Nano", + "display_name": "GPT-5 Nano", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-12-06", - "last_updated": "2024-12-06", + "open_weights": false, + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 0, - "output": 0 + "input": 0.05, + "output": 0.4, + "cache_read": 0.01 } }, { - "id": "meta/llama-4-maverick", - "name": "Llama-4-Maverick-17B-128E-Instruct-FP8", - "display_name": "Llama-4-Maverick-17B-128E-Instruct-FP8", + "id": "openai/o3-mini", + "name": "o3-mini", + "display_name": "o3-mini", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": true, - "knowledge": "2024-08", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "attachment": false, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2024-12-20", + "last_updated": "2025-01-29", "cost": { - "input": 0, - "output": 0 + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 } }, { - "id": "anthropic/claude-haiku-4.5", - "name": "Claude Haiku 4.5", - "display_name": "Claude Haiku 4.5", + "id": "openai/gpt-4-turbo", + "name": "GPT-4 Turbo", + "display_name": "GPT-4 Turbo", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-02-28", - "release_date": "2025-10-15", - "last_updated": "2025-10-15", + "knowledge": "2023-12", + "release_date": "2023-11-06", + "last_updated": "2024-04-09", "cost": { - "input": 1, - "output": 1.25, - "cache_read": 0.1, - "cache_write": 1.25 + "input": 10, + "output": 30 } }, { - "id": "anthropic/claude-opus-4.5", - "name": "Claude Opus 4.5", - "display_name": "Claude Opus 4.5", + "id": "openai/gpt-4.1-mini", + "name": "GPT-4.1 mini", + "display_name": "GPT-4.1 mini", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 1047576, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-11-24", - "last_updated": "2025-11-24", + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 5, - "output": 25, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 } }, { - "id": "anthropic/claude-3.5-haiku", - "name": "Claude Haiku 3.5", - "display_name": "Claude Haiku 3.5", + "id": "openai/gpt-4.1-nano", + "name": "GPT-4.1 nano", + "display_name": "GPT-4.1 nano", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 1047576, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -9834,97 +10609,87 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-07-31", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0.8, - "output": 4, - "cache_read": 0.08, - "cache_write": 1 + "input": 0.1, + "output": 0.4, + "cache_read": 0.03 } }, { - "id": "anthropic/claude-3.7-sonnet", - "name": "Claude Sonnet 3.7", - "display_name": "Claude Sonnet 3.7", + "id": "perplexity/sonar-reasoning", + "name": "Sonar Reasoning", + "display_name": "Sonar Reasoning", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 127000, + "output": 8000 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-10-31", + "knowledge": "2025-09", "release_date": "2025-02-19", "last_updated": "2025-02-19", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 1, + "output": 5 } }, { - "id": "anthropic/claude-4.5-sonnet", - "name": "Claude Sonnet 4.5", - "display_name": "Claude Sonnet 4.5", + "id": "perplexity/sonar", + "name": "Sonar", + "display_name": "Sonar", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 127000, + "output": 8000 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-07-31", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "knowledge": "2025-02", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 1, + "output": 1 } }, { - "id": "anthropic/claude-3.5-sonnet", - "name": "Claude Sonnet 3.5 v2", - "display_name": "Claude Sonnet 3.5 v2", + "id": "perplexity/sonar-pro", + "name": "Sonar Pro", + "display_name": "Sonar Pro", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" @@ -9932,78 +10697,70 @@ }, "limit": { "context": 200000, - "output": 8192 + "output": 8000 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-04-30", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "knowledge": "2025-09", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", "cost": { "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "output": 15 } }, { - "id": "anthropic/claude-4-1-opus", - "name": "Claude Opus 4", - "display_name": "Claude Opus 4", + "id": "perplexity/sonar-reasoning-pro", + "name": "Sonar Reasoning Pro", + "display_name": "Sonar Reasoning Pro", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 127000, + "output": 8000 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "knowledge": "2025-09", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 2, + "output": 8 } }, { - "id": "anthropic/claude-4-sonnet", - "name": "Claude Sonnet 4", - "display_name": "Claude Sonnet 4", + "id": "zai/glm-4.5", + "name": "GLM 4.5", + "display_name": "GLM 4.5", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 128000, + "output": 96000 }, "temperature": true, "tool_call": true, @@ -10011,97 +10768,88 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "attachment": false, + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.6, + "output": 2.2 } }, { - "id": "anthropic/claude-3-opus", - "name": "Claude Opus 3", - "display_name": "Claude Opus 3", + "id": "zai/glm-4.5-air", + "name": "GLM 4.5 Air", + "display_name": "GLM 4.5 Air", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 4096 + "context": 128000, + "output": 96000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-08-31", - "release_date": "2024-02-29", - "last_updated": "2024-02-29", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0.2, + "output": 1.1 } }, { - "id": "anthropic/claude-3-haiku", - "name": "Claude Haiku 3", - "display_name": "Claude Haiku 3", + "id": "zai/glm-4.5v", + "name": "GLM 4.5V", + "display_name": "GLM 4.5V", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 4096 + "context": 66000, + "output": 16000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, - "open_weights": false, - "knowledge": "2023-08-31", - "release_date": "2024-03-13", - "last_updated": "2024-03-13", + "open_weights": true, + "knowledge": "2025-08", + "release_date": "2025-08-11", + "last_updated": "2025-08-11", "cost": { - "input": 0.25, - "output": 1.25, - "cache_read": 0.03, - "cache_write": 0.3 + "input": 0.6, + "output": 1.8 } }, { - "id": "anthropic/claude-4-opus", - "name": "Claude Opus 4", - "display_name": "Claude Opus 4", + "id": "zai/glm-4.6", + "name": "GLM 4.6", + "display_name": "GLM 4.6", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" @@ -10109,7 +10857,7 @@ }, "limit": { "context": 200000, - "output": 32000 + "output": 96000 }, "temperature": true, "tool_call": true, @@ -10117,31 +10865,20 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-30", + "last_updated": "2025-09-30", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0.6, + "output": 2.2 } - } - ] - }, - "nebius": { - "id": "nebius", - "name": "Nebius Token Factory", - "display_name": "Nebius Token Factory", - "api": "https://api.tokenfactory.nebius.com/v1", - "doc": "https://docs.tokenfactory.nebius.com/", - "models": [ + }, { - "id": "moonshotai/kimi-k2-instruct", - "name": "Kimi K2 Instruct", - "display_name": "Kimi K2 Instruct", + "id": "amazon/nova-micro", + "name": "Nova Micro", + "display_name": "Nova Micro", "modalities": { "input": [ "text" @@ -10151,93 +10888,97 @@ ] }, "limit": { - "context": 131072, + "context": 128000, "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2024-01", - "release_date": "2025-01-01", - "last_updated": "2025-10-04", + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", "cost": { - "input": 0.5, - "output": 2.4 + "input": 0.035, + "output": 0.14, + "cache_read": 0.00875 } }, { - "id": "nvidia/llama-3_1-nemotron-ultra-253b-v1", - "name": "Llama 3.1 Nemotron Ultra 253B v1", - "display_name": "Llama 3.1 Nemotron Ultra 253B v1", + "id": "amazon/nova-pro", + "name": "Nova Pro", + "display_name": "Nova Pro", "modalities": { "input": [ - "text" + "text", + "image", + "video" ], "output": [ "text" ] }, "limit": { - "context": 131072, + "context": 300000, "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-07", - "release_date": "2024-07-01", - "last_updated": "2025-10-04", + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", "cost": { - "input": 0.6, - "output": 1.8 + "input": 0.8, + "output": 3.2, + "cache_read": 0.2 } }, { - "id": "openai/gpt-oss-20b", - "name": "GPT OSS 20B", - "display_name": "GPT OSS 20B", + "id": "amazon/nova-lite", + "name": "Nova Lite", + "display_name": "Nova Lite", "modalities": { "input": [ - "text" + "text", + "image", + "video" ], "output": [ "text" ] }, "limit": { - "context": 131072, + "context": 300000, "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2024-01", - "release_date": "2024-01-01", - "last_updated": "2025-10-04", + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", "cost": { - "input": 0.05, - "output": 0.2 + "input": 0.06, + "output": 0.24, + "cache_read": 0.015 } }, { - "id": "openai/gpt-oss-120b", - "name": "GPT OSS 120B", - "display_name": "GPT OSS 120B", + "id": "morph/morph-v3-fast", + "name": "Morph v3 Fast", + "display_name": "Morph v3 Fast", "modalities": { "input": [ "text" @@ -10247,29 +10988,27 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 16000, + "output": 16000 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-01", - "release_date": "2024-01-01", - "last_updated": "2025-10-04", + "release_date": "2024-08-15", + "last_updated": "2024-08-15", "cost": { - "input": 0.15, - "output": 0.6 + "input": 0.8, + "output": 1.2 } }, { - "id": "qwen/qwen3-235b-a22b-instruct-2507", - "name": "Qwen3 235B A22B Instruct 2507", - "display_name": "Qwen3 235B A22B Instruct 2507", + "id": "morph/morph-v3-large", + "name": "Morph v3 Large", + "display_name": "Morph v3 Large", "modalities": { "input": [ "text" @@ -10279,61 +11018,59 @@ ] }, "limit": { - "context": 262144, - "output": 8192 + "context": 32000, + "output": 32000 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-07-25", - "last_updated": "2025-10-04", + "release_date": "2024-08-15", + "last_updated": "2024-08-15", "cost": { - "input": 0.2, - "output": 0.6 + "input": 0.9, + "output": 1.9 } }, { - "id": "qwen/qwen3-235b-a22b-thinking-2507", - "name": "Qwen3 235B A22B Thinking 2507", - "display_name": "Qwen3 235B A22B Thinking 2507", + "id": "meta/llama-4-scout", + "name": "Llama-4-Scout-17B-16E-Instruct-FP8", + "display_name": "Llama-4-Scout-17B-16E-Instruct-FP8", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 8192 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-07-25", - "last_updated": "2025-10-04", + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", "cost": { - "input": 0.2, - "output": 0.8 + "input": 0, + "output": 0 } }, { - "id": "qwen/qwen3-coder-480b-a35b-instruct", - "name": "Qwen3 Coder 480B A35B Instruct", - "display_name": "Qwen3 Coder 480B A35B Instruct", + "id": "meta/llama-3.3-70b", + "name": "Llama-3.3-70B-Instruct", + "display_name": "Llama-3.3-70B-Instruct", "modalities": { "input": [ "text" @@ -10343,71 +11080,73 @@ ] }, "limit": { - "context": 262144, - "output": 66536 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2025-04", - "release_date": "2025-07-23", - "last_updated": "2025-10-04", + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", "cost": { - "input": 0.4, - "output": 1.8 + "input": 0, + "output": 0 } }, { - "id": "meta-llama/llama-3_1-405b-instruct", - "name": "Llama 3.1 405B Instruct", - "display_name": "Llama 3.1 405B Instruct", + "id": "meta/llama-4-maverick", + "name": "Llama-4-Maverick-17B-128E-Instruct-FP8", + "display_name": "Llama-4-Maverick-17B-128E-Instruct-FP8", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-03", - "release_date": "2024-07-23", - "last_updated": "2025-10-04", + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", "cost": { - "input": 1, - "output": 3 + "input": 0, + "output": 0 } }, { - "id": "meta-llama/llama-3.3-70b-instruct-fast", - "name": "Llama-3.3-70B-Instruct (Fast)", - "display_name": "Llama-3.3-70B-Instruct (Fast)", + "id": "anthropic/claude-haiku-4.5", + "name": "Claude Haiku 4.5", + "display_name": "Claude Haiku 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, @@ -10415,31 +11154,35 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-08", - "release_date": "2024-08-22", - "last_updated": "2025-10-04", + "knowledge": "2025-02-28", + "release_date": "2025-10-15", + "last_updated": "2025-10-15", "cost": { - "input": 0.25, - "output": 0.75 + "input": 1, + "output": 1.25, + "cache_read": 0.1, + "cache_write": 1.25 } }, { - "id": "meta-llama/llama-3.3-70b-instruct-base", - "name": "Llama-3.3-70B-Instruct (Base)", - "display_name": "Llama-3.3-70B-Instruct (Base)", + "id": "anthropic/claude-opus-4.5", + "name": "Claude Opus 4.5", + "display_name": "Claude Opus 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, @@ -10447,63 +11190,70 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-08", - "release_date": "2024-08-22", - "last_updated": "2025-10-04", + "knowledge": "2025-03-31", + "release_date": "2025-11-24", + "last_updated": "2025-11-24", "cost": { - "input": 0.13, - "output": 0.4 + "input": 5, + "output": 25, + "cache_read": 1.5, + "cache_write": 18.75 } }, { - "id": "zai-org/glm-4.5", - "name": "GLM 4.5", - "display_name": "GLM 4.5", + "id": "anthropic/claude-3.5-haiku", + "name": "Claude Haiku 3.5", + "display_name": "Claude Haiku 3.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, + "context": 200000, "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-05", - "release_date": "2024-06-01", - "last_updated": "2025-10-04", + "knowledge": "2024-07-31", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { - "input": 0.6, - "output": 2.2 + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 } }, { - "id": "zai-org/glm-4.5-air", - "name": "GLM 4.5 Air", - "display_name": "GLM 4.5 Air", + "id": "anthropic/claude-3.7-sonnet", + "name": "Claude Sonnet 3.7", + "display_name": "Claude Sonnet 3.7", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, @@ -10511,31 +11261,35 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-05", - "release_date": "2024-06-01", - "last_updated": "2025-10-04", + "knowledge": "2024-10-31", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", "cost": { - "input": 0.2, - "output": 1.2 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "deepseek-ai/deepseek-v3", - "name": "DeepSeek V3", - "display_name": "DeepSeek V3", + "id": "anthropic/claude-4.5-sonnet", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, @@ -10543,39 +11297,34 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-05-07", - "last_updated": "2025-10-04", + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "cost": { - "input": 0.5, - "output": 1.5 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } - } - ] - }, - "deepseek": { - "id": "deepseek", - "name": "DeepSeek", - "display_name": "DeepSeek", - "api": "https://api.deepseek.com", - "doc": "https://platform.deepseek.com/api-docs/pricing", - "models": [ + }, { - "id": "deepseek-chat", - "name": "DeepSeek Chat", - "display_name": "DeepSeek Chat", + "id": "anthropic/claude-3.5-sonnet", + "name": "Claude Sonnet 3.5 v2", + "display_name": "Claude Sonnet 3.5 v2", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, + "context": 200000, "output": 8192 }, "temperature": true, @@ -10585,30 +11334,33 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-07", - "release_date": "2024-12-26", - "last_updated": "2025-08-21", + "knowledge": "2024-04-30", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { - "input": 0.57, - "output": 1.68, - "cache_read": 0.07 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "deepseek-reasoner", - "name": "DeepSeek Reasoner", - "display_name": "DeepSeek Reasoner", + "id": "anthropic/claude-4-1-opus", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 64000 + "context": 200000, + "output": 32000 }, "temperature": true, "tool_call": true, @@ -10618,39 +11370,33 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-07", - "release_date": "2025-01-20", - "last_updated": "2025-08-21", + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { - "input": 0.57, - "output": 1.68, - "cache_read": 0.07 + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } - } - ] - }, - "alibaba-cn": { - "id": "alibaba-cn", - "name": "alibaba-cn", - "display_name": "alibaba-cn", - "api": "https://dashscope.aliyuncs.com/compatible-mode/v1", - "doc": "https://www.alibabacloud.com/help/en/model-studio/models", - "models": [ + }, { - "id": "deepseek-r1-distill-qwen-7b", - "name": "DeepSeek R1 Distill Qwen 7B", - "display_name": "DeepSeek R1 Distill Qwen 7B", + "id": "anthropic/claude-4-sonnet", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", "modalities": { "input": [ - "text" - ], + "text", + "image", + "pdf" + ], "output": [ "text" ] }, "limit": { - "context": 32768, - "output": 16384 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, @@ -10658,152 +11404,172 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { - "input": 0.072, - "output": 0.144 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "qwen3-asr-flash", - "name": "Qwen3-ASR Flash", - "display_name": "Qwen3-ASR Flash", + "id": "anthropic/claude-3-opus", + "name": "Claude Opus 3", + "display_name": "Claude Opus 3", "modalities": { "input": [ - "audio" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 53248, + "context": 200000, "output": 4096 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-09-08", - "last_updated": "2025-09-08", + "knowledge": "2023-08-31", + "release_date": "2024-02-29", + "last_updated": "2024-02-29", "cost": { - "input": 0.032, - "output": 0.032 + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } }, { - "id": "deepseek-r1-0528", - "name": "DeepSeek R1 0528", - "display_name": "DeepSeek R1 0528", + "id": "anthropic/claude-3-haiku", + "name": "Claude Haiku 3", + "display_name": "Claude Haiku 3", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 16384 + "context": 200000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-05-28", - "last_updated": "2025-05-28", + "knowledge": "2023-08-31", + "release_date": "2024-03-13", + "last_updated": "2024-03-13", "cost": { - "input": 0.574, - "output": 2.294 + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 } }, { - "id": "deepseek-v3", - "name": "DeepSeek V3", - "display_name": "DeepSeek V3", + "id": "anthropic/claude-4-opus", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 65536, - "output": 8192 + "context": 200000, + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { - "input": 0.287, - "output": 1.147 + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } - }, + } + ] + }, + "nebius": { + "id": "nebius", + "name": "Nebius Token Factory", + "display_name": "Nebius Token Factory", + "api": "https://api.tokenfactory.nebius.com/v1", + "doc": "https://docs.tokenfactory.nebius.com/", + "models": [ { - "id": "qwen-omni-turbo", - "name": "Qwen-Omni Turbo", - "display_name": "Qwen-Omni Turbo", + "id": "NousResearch/hermes-4-70b", + "name": "Hermes 4 70B", + "display_name": "Hermes 4 70B", "modalities": { "input": [ - "text", - "image", - "audio", - "video" + "text" ], "output": [ - "text", - "audio" + "text" ] }, "limit": { - "context": 32768, - "output": 2048 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-01-19", - "last_updated": "2025-03-26", + "knowledge": "2024-07", + "release_date": "2024-08-01", + "last_updated": "2025-10-04", "cost": { - "input": 0.058, - "output": 0.23, - "input_audio": 3.584, - "output_audio": 7.168 + "input": 0.13, + "output": 0.4 } }, { - "id": "qwen-vl-max", - "name": "Qwen-VL Max", - "display_name": "Qwen-VL Max", + "id": "NousResearch/hermes-4-405b", + "name": "Hermes-4 405B", + "display_name": "Hermes-4 405B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -10816,22 +11582,23 @@ "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-04-08", - "last_updated": "2025-08-13", + "knowledge": "2024-07", + "release_date": "2024-08-01", + "last_updated": "2025-10-04", "cost": { - "input": 0.23, - "output": 0.574 + "input": 1, + "output": 3 } }, { - "id": "deepseek-v3-2-exp", - "name": "DeepSeek V3.2 Exp", - "display_name": "DeepSeek V3.2 Exp", + "id": "moonshotai/kimi-k2-instruct", + "name": "Kimi K2 Instruct", + "display_name": "Kimi K2 Instruct", "modalities": { "input": [ "text" @@ -10842,26 +11609,28 @@ }, "limit": { "context": 131072, - "output": 65536 + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, + "knowledge": "2024-01", "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "last_updated": "2025-10-04", "cost": { - "input": 0.287, - "output": 0.431 + "input": 0.5, + "output": 2.4 } }, { - "id": "qwen3-next-80b-a3b-instruct", - "name": "Qwen3 Next 80B A3B Instruct", - "display_name": "Qwen3 Next 80B A3B Instruct", + "id": "nvidia/llama-3_1-nemotron-ultra-253b-v1", + "name": "Llama 3.1 Nemotron Ultra 253B v1", + "display_name": "Llama 3.1 Nemotron Ultra 253B v1", "modalities": { "input": [ "text" @@ -10872,27 +11641,28 @@ }, "limit": { "context": 131072, - "output": 32768 + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-09", - "last_updated": "2025-09", + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2024-07-01", + "last_updated": "2025-10-04", "cost": { - "input": 0.144, - "output": 0.574 + "input": 0.6, + "output": 1.8 } }, { - "id": "deepseek-r1", - "name": "DeepSeek R1", - "display_name": "DeepSeek R1", + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "display_name": "GPT OSS 20B", "modalities": { "input": [ "text" @@ -10903,7 +11673,7 @@ }, "limit": { "context": 131072, - "output": 16384 + "output": 8192 }, "temperature": true, "tool_call": true, @@ -10911,19 +11681,20 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2024-01", + "release_date": "2024-01-01", + "last_updated": "2025-10-04", "cost": { - "input": 0.574, - "output": 2.294 + "input": 0.05, + "output": 0.2 } }, { - "id": "qwen-turbo", - "name": "Qwen Turbo", - "display_name": "Qwen Turbo", + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", "modalities": { "input": [ "text" @@ -10934,52 +11705,39 @@ }, "limit": { "context": 131072, - "output": 16384 + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { "supported": true, - "default": false, - "budget": { - "default": 38912, - "min": 0, - "max": 38912 - } - }, - "search": { - "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-11-01", - "last_updated": "2025-07-15", + "knowledge": "2024-01", + "release_date": "2024-01-01", + "last_updated": "2025-10-04", "cost": { - "input": 0.044, - "output": 0.087, - "reasoning": 0.431 + "input": 0.15, + "output": 0.6 } }, { - "id": "qwen3-vl-235b-a22b", - "name": "Qwen3-VL 235B-A22B", - "display_name": "Qwen3-VL 235B-A22B", + "id": "qwen/qwen3-235b-a22b-instruct-2507", + "name": "Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen3 235B A22B Instruct 2507", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 262144, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -10988,20 +11746,19 @@ "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-04", - "last_updated": "2025-04", + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-07-25", + "last_updated": "2025-10-04", "cost": { - "input": 0.286705, - "output": 1.14682, - "reasoning": 2.867051 + "input": 0.2, + "output": 0.6 } }, { - "id": "qwen3-coder-flash", - "name": "Qwen3 Coder Flash", - "display_name": "Qwen3 Coder Flash", + "id": "qwen/qwen3-235b-a22b-thinking-2507", + "name": "Qwen3 235B A22B Thinking 2507", + "display_name": "Qwen3 235B A22B Thinking 2507", "modalities": { "input": [ "text" @@ -11011,62 +11768,60 @@ ] }, "limit": { - "context": 1000000, - "output": 65536 + "context": 262144, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2025-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "knowledge": "2025-07", + "release_date": "2025-07-25", + "last_updated": "2025-10-04", "cost": { - "input": 0.144, - "output": 0.574 + "input": 0.2, + "output": 0.8 } }, { - "id": "qwen3-vl-30b-a3b", - "name": "Qwen3-VL 30B-A3B", - "display_name": "Qwen3-VL 30B-A3B", + "id": "qwen/qwen3-coder-480b-a35b-instruct", + "name": "Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen3 Coder 480B A35B Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 262144, + "output": 66536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, + "open_weights": false, "knowledge": "2025-04", - "release_date": "2025-04", - "last_updated": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-10-04", "cost": { - "input": 0.108, - "output": 0.431, - "reasoning": 1.076 + "input": 0.4, + "output": 1.8 } }, { - "id": "qwen3-14b", - "name": "Qwen3 14B", - "display_name": "Qwen3 14B", + "id": "meta-llama/llama-3_1-405b-instruct", + "name": "Llama 3.1 405B Instruct", + "display_name": "Llama 3.1 405B Instruct", "modalities": { "input": [ "text" @@ -11083,32 +11838,25 @@ "tool_call": true, "reasoning": { "supported": true, - "default": true, - "budget": { - "default": 38912, - "min": 0, - "max": 38912 - } + "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-04", - "last_updated": "2025-04", + "open_weights": false, + "knowledge": "2024-03", + "release_date": "2024-07-23", + "last_updated": "2025-10-04", "cost": { - "input": 0.144, - "output": 0.574, - "reasoning": 1.434 + "input": 1, + "output": 3 } }, { - "id": "qvq-max", - "name": "QVQ Max", - "display_name": "QVQ Max", + "id": "meta-llama/llama-3.3-70b-instruct-fast", + "name": "Llama-3.3-70B-Instruct (Fast)", + "display_name": "Llama-3.3-70B-Instruct (Fast)", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -11126,18 +11874,18 @@ }, "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-03-25", - "last_updated": "2025-03-25", + "knowledge": "2024-08", + "release_date": "2024-08-22", + "last_updated": "2025-10-04", "cost": { - "input": 1.147, - "output": 4.588 + "input": 0.25, + "output": 0.75 } }, { - "id": "deepseek-r1-distill-qwen-32b", - "name": "DeepSeek R1 Distill Qwen 32B", - "display_name": "DeepSeek R1 Distill Qwen 32B", + "id": "meta-llama/llama-3.3-70b-instruct-base", + "name": "Llama-3.3-70B-Instruct (Base)", + "display_name": "Llama-3.3-70B-Instruct (Base)", "modalities": { "input": [ "text" @@ -11147,8 +11895,8 @@ ] }, "limit": { - "context": 32768, - "output": 16384 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -11158,17 +11906,18 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2024-08", + "release_date": "2024-08-22", + "last_updated": "2025-10-04", "cost": { - "input": 0.287, - "output": 0.861 + "input": 0.13, + "output": 0.4 } }, { - "id": "qwen-plus-character", - "name": "Qwen Plus Character", - "display_name": "Qwen Plus Character", + "id": "zai-org/glm-4.5", + "name": "GLM 4.5", + "display_name": "GLM 4.5", "modalities": { "input": [ "text" @@ -11178,28 +11927,29 @@ ] }, "limit": { - "context": 32768, - "output": 4096 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-01", - "last_updated": "2024-01", + "knowledge": "2024-05", + "release_date": "2024-06-01", + "last_updated": "2025-10-04", "cost": { - "input": 0.115, - "output": 0.287 + "input": 0.6, + "output": 2.2 } }, { - "id": "qwen2-5-14b-instruct", - "name": "Qwen2.5 14B Instruct", - "display_name": "Qwen2.5 14B Instruct", + "id": "zai-org/glm-4.5-air", + "name": "GLM 4.5 Air", + "display_name": "GLM 4.5 Air", "modalities": { "input": [ "text" @@ -11215,22 +11965,23 @@ "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2024-04", - "release_date": "2024-09", - "last_updated": "2024-09", + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2024-06-01", + "last_updated": "2025-10-04", "cost": { - "input": 0.144, - "output": 0.431 + "input": 0.2, + "output": 1.2 } }, { - "id": "qwq-plus", - "name": "QwQ Plus", - "display_name": "QwQ Plus", + "id": "deepseek-ai/deepseek-v3", + "name": "DeepSeek V3", + "display_name": "DeepSeek V3", "modalities": { "input": [ "text" @@ -11244,36 +11995,34 @@ "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, - "default": true, - "budget": { - "default": 32768, - "min": 0, - "max": 32768 - } - }, - "search": { - "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" + "default": true }, "attachment": false, "open_weights": false, "knowledge": "2024-04", - "release_date": "2025-03-05", - "last_updated": "2025-03-05", + "release_date": "2024-05-07", + "last_updated": "2025-10-04", "cost": { - "input": 0.23, - "output": 0.574 + "input": 0.5, + "output": 1.5 } - }, + } + ] + }, + "deepseek": { + "id": "deepseek", + "name": "DeepSeek", + "display_name": "DeepSeek", + "api": "https://api.deepseek.com", + "doc": "https://platform.deepseek.com/api-docs/pricing", + "models": [ { - "id": "qwen2-5-coder-32b-instruct", - "name": "Qwen2.5-Coder 32B Instruct", - "display_name": "Qwen2.5-Coder 32B Instruct", + "id": "deepseek-chat", + "name": "DeepSeek Chat", + "display_name": "DeepSeek Chat", "modalities": { "input": [ "text" @@ -11283,7 +12032,7 @@ ] }, "limit": { - "context": 131072, + "context": 128000, "output": 8192 }, "temperature": true, @@ -11291,20 +12040,21 @@ "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-04", - "release_date": "2024-11", - "last_updated": "2024-11", + "attachment": true, + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2024-12-26", + "last_updated": "2025-08-21", "cost": { - "input": 0.287, - "output": 0.861 + "input": 0.57, + "output": 1.68, + "cache_read": 0.07 } }, { - "id": "qwen3-coder-30b-a3b-instruct", - "name": "Qwen3-Coder 30B-A3B Instruct", - "display_name": "Qwen3-Coder 30B-A3B Instruct", + "id": "deepseek-reasoner", + "name": "DeepSeek Reasoner", + "display_name": "DeepSeek Reasoner", "modalities": { "input": [ "text" @@ -11314,28 +12064,39 @@ ] }, "limit": { - "context": 262144, - "output": 65536 + "context": 128000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-04", - "last_updated": "2025-04", + "attachment": true, + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-08-21", "cost": { - "input": 0.216, - "output": 0.861 + "input": 0.57, + "output": 1.68, + "cache_read": 0.07 } - }, + } + ] + }, + "alibaba-cn": { + "id": "alibaba-cn", + "name": "alibaba-cn", + "display_name": "alibaba-cn", + "api": "https://dashscope.aliyuncs.com/compatible-mode/v1", + "doc": "https://www.alibabacloud.com/help/en/model-studio/models", + "models": [ { - "id": "qwen-math-plus", - "name": "Qwen Math Plus", - "display_name": "Qwen Math Plus", + "id": "deepseek-r1-distill-qwen-7b", + "name": "DeepSeek R1 Distill Qwen 7B", + "display_name": "DeepSeek R1 Distill Qwen 7B", "modalities": { "input": [ "text" @@ -11345,42 +12106,41 @@ ] }, "limit": { - "context": 4096, - "output": 3072 + "context": 32768, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-08-16", - "last_updated": "2024-09-19", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.574, - "output": 1.721 + "input": 0.072, + "output": 0.144 } }, { - "id": "qwen-vl-ocr", - "name": "Qwen Vl Ocr", - "display_name": "Qwen Vl Ocr", + "id": "qwen3-asr-flash", + "name": "Qwen3-ASR Flash", + "display_name": "Qwen3-ASR Flash", "modalities": { "input": [ - "text", - "image" + "audio" ], "output": [ "text" ] }, "limit": { - "context": 34096, + "context": 53248, "output": 4096 }, - "temperature": true, + "temperature": false, "tool_call": false, "reasoning": { "supported": false @@ -11388,17 +12148,17 @@ "attachment": false, "open_weights": false, "knowledge": "2024-04", - "release_date": "2024-10-28", - "last_updated": "2025-04-13", + "release_date": "2025-09-08", + "last_updated": "2025-09-08", "cost": { - "input": 0.717, - "output": 0.717 + "input": 0.032, + "output": 0.032 } }, { - "id": "qwen-doc-turbo", - "name": "Qwen Doc Turbo", - "display_name": "Qwen Doc Turbo", + "id": "deepseek-r1-0528", + "name": "DeepSeek R1 0528", + "display_name": "DeepSeek R1 0528", "modalities": { "input": [ "text" @@ -11409,27 +12169,27 @@ }, "limit": { "context": 131072, - "output": 8192 + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-01", - "last_updated": "2024-01", + "release_date": "2025-05-28", + "last_updated": "2025-05-28", "cost": { - "input": 0.087, - "output": 0.144 + "input": 0.574, + "output": 2.294 } }, { - "id": "qwen-deep-research", - "name": "Qwen Deep Research", - "display_name": "Qwen Deep Research", + "id": "deepseek-v3", + "name": "DeepSeek V3", + "display_name": "DeepSeek V3", "modalities": { "input": [ "text" @@ -11439,8 +12199,8 @@ ] }, "limit": { - "context": 1000000, - "output": 32768 + "context": 65536, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -11449,29 +12209,32 @@ }, "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-01", - "last_updated": "2024-01", + "release_date": "2024-12-01", + "last_updated": "2024-12-01", "cost": { - "input": 7.742, - "output": 23.367 + "input": 0.287, + "output": 1.147 } }, { - "id": "qwen2-5-72b-instruct", - "name": "Qwen2.5 72B Instruct", - "display_name": "Qwen2.5 72B Instruct", + "id": "qwen-omni-turbo", + "name": "Qwen-Omni Turbo", + "display_name": "Qwen-Omni Turbo", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video" ], "output": [ - "text" + "text", + "audio" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 32768, + "output": 2048 }, "temperature": true, "tool_call": true, @@ -11479,57 +12242,53 @@ "supported": false }, "attachment": false, - "open_weights": true, + "open_weights": false, "knowledge": "2024-04", - "release_date": "2024-09", - "last_updated": "2024-09", + "release_date": "2025-01-19", + "last_updated": "2025-03-26", "cost": { - "input": 0.574, - "output": 1.721 + "input": 0.058, + "output": 0.23, + "input_audio": 3.584, + "output_audio": 7.168 } }, { - "id": "qwen3-omni-flash", - "name": "Qwen3-Omni Flash", - "display_name": "Qwen3-Omni Flash", + "id": "qwen-vl-max", + "name": "Qwen-VL Max", + "display_name": "Qwen-VL Max", "modalities": { "input": [ "text", - "image", - "audio", - "video" + "image" ], "output": [ - "text", - "audio" + "text" ] }, "limit": { - "context": 65536, - "output": 16384 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, "knowledge": "2024-04", - "release_date": "2025-09-15", - "last_updated": "2025-09-15", + "release_date": "2024-04-08", + "last_updated": "2025-08-13", "cost": { - "input": 0.058, - "output": 0.23, - "input_audio": 3.584, - "output_audio": 7.168 + "input": 0.23, + "output": 0.574 } }, { - "id": "qwen-flash", - "name": "Qwen Flash", - "display_name": "Qwen Flash", + "id": "deepseek-v3-2-exp", + "name": "DeepSeek V3.2 Exp", + "display_name": "DeepSeek V3.2 Exp", "modalities": { "input": [ "text" @@ -11539,40 +12298,27 @@ ] }, "limit": { - "context": 1000000, - "output": 32768 + "context": 131072, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": false, - "budget": { - "default": 81920, - "min": 0, - "max": 81920 - } - }, - "search": { - "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" + "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.022, - "output": 0.216 + "input": 0.287, + "output": 0.431 } }, { - "id": "qwen3-8b", - "name": "Qwen3 8B", - "display_name": "Qwen3 8B", + "id": "qwen3-next-80b-a3b-instruct", + "name": "Qwen3 Next 80B A3B Instruct", + "display_name": "Qwen3 Next 80B A3B Instruct", "modalities": { "input": [ "text" @@ -11583,74 +12329,61 @@ }, "limit": { "context": 131072, - "output": 8192 + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true, - "budget": { - "default": 38912, - "min": 0, - "max": 38912 - } + "supported": false }, "attachment": false, "open_weights": true, "knowledge": "2025-04", - "release_date": "2025-04", - "last_updated": "2025-04", + "release_date": "2025-09", + "last_updated": "2025-09", "cost": { - "input": 0.072, - "output": 0.287, - "reasoning": 0.717 + "input": 0.144, + "output": 0.574 } }, { - "id": "qwen3-omni-flash-realtime", - "name": "Qwen3-Omni Flash Realtime", - "display_name": "Qwen3-Omni Flash Realtime", + "id": "deepseek-r1", + "name": "DeepSeek R1", + "display_name": "DeepSeek R1", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ - "text", - "audio" + "text" ] }, "limit": { - "context": 65536, + "context": 131072, "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-09-15", - "last_updated": "2025-09-15", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.23, - "output": 0.918, - "input_audio": 3.584, - "output_audio": 7.168 + "input": 0.574, + "output": 2.294 } }, { - "id": "qwen2-5-vl-72b-instruct", - "name": "Qwen2.5-VL 72B Instruct", - "display_name": "Qwen2.5-VL 72B Instruct", + "id": "qwen-turbo", + "name": "Qwen Turbo", + "display_name": "Qwen Turbo", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -11658,27 +12391,40 @@ }, "limit": { "context": 131072, - "output": 8192 + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": false, + "budget": { + "default": 38912, + "min": 0, + "max": 38912 + } + }, + "search": { + "supported": true, + "default": false, + "forced_search": false, + "search_strategy": "turbo" }, "attachment": false, - "open_weights": true, + "open_weights": false, "knowledge": "2024-04", - "release_date": "2024-09", - "last_updated": "2024-09", + "release_date": "2024-11-01", + "last_updated": "2025-07-15", "cost": { - "input": 2.294, - "output": 6.881 + "input": 0.044, + "output": 0.087, + "reasoning": 0.431 } }, { - "id": "qwen3-vl-plus", - "name": "Qwen3 VL Plus", - "display_name": "Qwen3 VL Plus", + "id": "qwen3-vl-235b-a22b", + "name": "Qwen3-VL 235B-A22B", + "display_name": "Qwen3-VL 235B-A22B", "modalities": { "input": [ "text", @@ -11689,35 +12435,30 @@ ] }, "limit": { - "context": 262144, + "context": 131072, "output": 32768 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, - "default": false, - "budget": { - "default": 81920, - "min": 0, - "max": 81920 - } + "default": true }, "attachment": false, - "open_weights": false, + "open_weights": true, "knowledge": "2025-04", - "release_date": "2025-09-23", - "last_updated": "2025-09-23", + "release_date": "2025-04", + "last_updated": "2025-04", "cost": { - "input": 0.143353, - "output": 1.433525, - "reasoning": 4.300576 + "input": 0.286705, + "output": 1.14682, + "reasoning": 2.867051 } }, { - "id": "qwen-plus", - "name": "Qwen Plus", - "display_name": "Qwen Plus", + "id": "qwen3-coder-flash", + "name": "Qwen3 Coder Flash", + "display_name": "Qwen3 Coder Flash", "modalities": { "input": [ "text" @@ -11728,43 +12469,31 @@ }, "limit": { "context": 1000000, - "output": 32768 + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": false, - "budget": { - "default": 81920, - "min": 0, - "max": 81920 - } - }, - "search": { - "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" + "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-01-25", - "last_updated": "2025-09-11", + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 0.115, - "output": 0.287, - "reasoning": 1.147 + "input": 0.144, + "output": 0.574 } }, { - "id": "qwen2-5-32b-instruct", - "name": "Qwen2.5 32B Instruct", - "display_name": "Qwen2.5 32B Instruct", + "id": "qwen3-vl-30b-a3b", + "name": "Qwen3-VL 30B-A3B", + "display_name": "Qwen3-VL 30B-A3B", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -11772,100 +12501,100 @@ }, "limit": { "context": 131072, - "output": 8192 + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2024-04", - "release_date": "2024-09", - "last_updated": "2024-09", + "knowledge": "2025-04", + "release_date": "2025-04", + "last_updated": "2025-04", "cost": { - "input": 0.287, - "output": 0.861 + "input": 0.108, + "output": 0.431, + "reasoning": 1.076 } }, { - "id": "qwen2-5-omni-7b", - "name": "Qwen2.5-Omni 7B", - "display_name": "Qwen2.5-Omni 7B", + "id": "qwen3-14b", + "name": "Qwen3 14B", + "display_name": "Qwen3 14B", "modalities": { "input": [ - "text", - "image", - "audio", - "video" + "text" ], "output": [ - "text", - "audio" + "text" ] }, "limit": { - "context": 32768, - "output": 2048 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true, + "budget": { + "default": 38912, + "min": 0, + "max": 38912 + } }, "attachment": false, "open_weights": true, - "knowledge": "2024-04", - "release_date": "2024-12", - "last_updated": "2024-12", + "knowledge": "2025-04", + "release_date": "2025-04", + "last_updated": "2025-04", "cost": { - "input": 0.087, - "output": 0.345, - "input_audio": 5.448 + "input": 0.144, + "output": 0.574, + "reasoning": 1.434 } }, { - "id": "qwen-max", - "name": "Qwen Max", - "display_name": "Qwen Max", + "id": "qvq-max", + "name": "QVQ Max", + "display_name": "QVQ Max", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 32768, + "context": 131072, "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false - }, - "search": { "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" + "default": true }, "attachment": false, "open_weights": false, "knowledge": "2024-04", - "release_date": "2024-04-03", - "last_updated": "2025-01-25", + "release_date": "2025-03-25", + "last_updated": "2025-03-25", "cost": { - "input": 0.345, - "output": 1.377 + "input": 1.147, + "output": 4.588 } }, { - "id": "qwen-long", - "name": "Qwen Long", - "display_name": "Qwen Long", + "id": "deepseek-r1-distill-qwen-32b", + "name": "DeepSeek R1 Distill Qwen 32B", + "display_name": "DeepSeek R1 Distill Qwen 32B", "modalities": { "input": [ "text" @@ -11875,28 +12604,28 @@ ] }, "limit": { - "context": 1000000, - "output": 8192 + "context": 32768, + "output": 16384 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-01-25", - "last_updated": "2025-01-25", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.072, - "output": 0.287 + "input": 0.287, + "output": 0.861 } }, { - "id": "qwen2-5-math-72b-instruct", - "name": "Qwen2.5-Math 72B Instruct", - "display_name": "Qwen2.5-Math 72B Instruct", + "id": "qwen-plus-character", + "name": "Qwen Plus Character", + "display_name": "Qwen Plus Character", "modalities": { "input": [ "text" @@ -11906,8 +12635,8 @@ ] }, "limit": { - "context": 4096, - "output": 3072 + "context": 32768, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -11915,19 +12644,19 @@ "supported": false }, "attachment": false, - "open_weights": true, + "open_weights": false, "knowledge": "2024-04", - "release_date": "2024-09", - "last_updated": "2024-09", + "release_date": "2024-01", + "last_updated": "2024-01", "cost": { - "input": 0.574, - "output": 1.721 + "input": 0.115, + "output": 0.287 } }, { - "id": "moonshot-kimi-k2-instruct", - "name": "Moonshot Kimi K2 Instruct", - "display_name": "Moonshot Kimi K2 Instruct", + "id": "qwen2-5-14b-instruct", + "name": "Qwen2.5 14B Instruct", + "display_name": "Qwen2.5 14B Instruct", "modalities": { "input": [ "text" @@ -11938,7 +12667,7 @@ }, "limit": { "context": 131072, - "output": 131072 + "output": 8192 }, "temperature": true, "tool_call": true, @@ -11946,18 +12675,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-01-01", - "last_updated": "2025-01-01", - "cost": { - "input": 0.574, - "output": 2.294 + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-09", + "last_updated": "2024-09", + "cost": { + "input": 0.144, + "output": 0.431 } }, { - "id": "tongyi-intent-detect-v3", - "name": "Tongyi Intent Detect V3", - "display_name": "Tongyi Intent Detect V3", + "id": "qwq-plus", + "name": "QwQ Plus", + "display_name": "QwQ Plus", "modalities": { "input": [ "text" @@ -11967,28 +12697,40 @@ ] }, "limit": { - "context": 8192, - "output": 1024 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true, + "budget": { + "default": 32768, + "min": 0, + "max": 32768 + } + }, + "search": { + "supported": true, + "default": false, + "forced_search": false, + "search_strategy": "turbo" }, "attachment": false, "open_weights": false, "knowledge": "2024-04", - "release_date": "2024-01", - "last_updated": "2024-01", + "release_date": "2025-03-05", + "last_updated": "2025-03-05", "cost": { - "input": 0.058, - "output": 0.144 + "input": 0.23, + "output": 0.574 } }, { - "id": "qwen2-5-7b-instruct", - "name": "Qwen2.5 7B Instruct", - "display_name": "Qwen2.5 7B Instruct", + "id": "qwen2-5-coder-32b-instruct", + "name": "Qwen2.5-Coder 32B Instruct", + "display_name": "Qwen2.5-Coder 32B Instruct", "modalities": { "input": [ "text" @@ -12009,29 +12751,28 @@ "attachment": false, "open_weights": true, "knowledge": "2024-04", - "release_date": "2024-09", - "last_updated": "2024-09", + "release_date": "2024-11", + "last_updated": "2024-11", "cost": { - "input": 0.072, - "output": 0.144 + "input": 0.287, + "output": 0.861 } }, { - "id": "qwen2-5-vl-7b-instruct", - "name": "Qwen2.5-VL 7B Instruct", - "display_name": "Qwen2.5-VL 7B Instruct", + "id": "qwen3-coder-30b-a3b-instruct", + "name": "Qwen3-Coder 30B-A3B Instruct", + "display_name": "Qwen3-Coder 30B-A3B Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 262144, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -12040,18 +12781,18 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-04", - "release_date": "2024-09", - "last_updated": "2024-09", + "knowledge": "2025-04", + "release_date": "2025-04", + "last_updated": "2025-04", "cost": { - "input": 0.287, - "output": 0.717 + "input": 0.216, + "output": 0.861 } }, { - "id": "deepseek-v3-1", - "name": "DeepSeek V3.1", - "display_name": "DeepSeek V3.1", + "id": "qwen-math-plus", + "name": "Qwen Math Plus", + "display_name": "Qwen Math Plus", "modalities": { "input": [ "text" @@ -12061,8 +12802,8 @@ ] }, "limit": { - "context": 131072, - "output": 65536 + "context": 4096, + "output": 3072 }, "temperature": true, "tool_call": true, @@ -12071,48 +12812,50 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2024-04", + "release_date": "2024-08-16", + "last_updated": "2024-09-19", "cost": { "input": 0.574, "output": 1.721 } }, { - "id": "deepseek-r1-distill-llama-70b", - "name": "DeepSeek R1 Distill Llama 70B", - "display_name": "DeepSeek R1 Distill Llama 70B", + "id": "qwen-vl-ocr", + "name": "Qwen Vl Ocr", + "display_name": "Qwen Vl Ocr", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 32768, - "output": 16384 + "context": 34096, + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2024-04", + "release_date": "2024-10-28", + "last_updated": "2025-04-13", "cost": { - "input": 0.287, - "output": 0.861 + "input": 0.717, + "output": 0.717 } }, { - "id": "qwen3-235b-a22b", - "name": "Qwen3 235B A22B", - "display_name": "Qwen3 235B A22B", + "id": "qwen-doc-turbo", + "name": "Qwen Doc Turbo", + "display_name": "Qwen Doc Turbo", "modalities": { "input": [ "text" @@ -12123,34 +12866,27 @@ }, "limit": { "context": 131072, - "output": 32768 + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": false, - "budget": { - "default": 81920, - "min": 0, - "max": 81920 - } + "supported": false }, "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-04", - "last_updated": "2025-04", + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2024-01", + "last_updated": "2024-01", "cost": { - "input": 0.287, - "output": 1.147, - "reasoning": 2.868 + "input": 0.087, + "output": 0.144 } }, { - "id": "qwen2-5-coder-7b-instruct", - "name": "Qwen2.5-Coder 7B Instruct", - "display_name": "Qwen2.5-Coder 7B Instruct", + "id": "qwen-deep-research", + "name": "Qwen Deep Research", + "display_name": "Qwen Deep Research", "modalities": { "input": [ "text" @@ -12160,8 +12896,8 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 1000000, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -12169,19 +12905,19 @@ "supported": false }, "attachment": false, - "open_weights": true, + "open_weights": false, "knowledge": "2024-04", - "release_date": "2024-11", - "last_updated": "2024-11", + "release_date": "2024-01", + "last_updated": "2024-01", "cost": { - "input": 0.144, - "output": 0.287 + "input": 7.742, + "output": 23.367 } }, { - "id": "deepseek-r1-distill-qwen-14b", - "name": "DeepSeek R1 Distill Qwen 14B", - "display_name": "DeepSeek R1 Distill Qwen 14B", + "id": "qwen2-5-72b-instruct", + "name": "Qwen2.5 72B Instruct", + "display_name": "Qwen2.5 72B Instruct", "modalities": { "input": [ "text" @@ -12191,33 +12927,34 @@ ] }, "limit": { - "context": 32768, - "output": 16384 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-09", + "last_updated": "2024-09", "cost": { - "input": 0.144, - "output": 0.431 + "input": 0.574, + "output": 1.721 } }, { - "id": "qwen-omni-turbo-realtime", - "name": "Qwen-Omni Turbo Realtime", - "display_name": "Qwen-Omni Turbo Realtime", + "id": "qwen3-omni-flash", + "name": "Qwen3-Omni Flash", + "display_name": "Qwen3-Omni Flash", "modalities": { "input": [ "text", "image", - "audio" + "audio", + "video" ], "output": [ "text", @@ -12225,30 +12962,31 @@ ] }, "limit": { - "context": 32768, - "output": 2048 + "context": 65536, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, "knowledge": "2024-04", - "release_date": "2025-05-08", - "last_updated": "2025-05-08", + "release_date": "2025-09-15", + "last_updated": "2025-09-15", "cost": { - "input": 0.23, - "output": 0.918, + "input": 0.058, + "output": 0.23, "input_audio": 3.584, "output_audio": 7.168 } }, { - "id": "qwen-math-turbo", - "name": "Qwen Math Turbo", - "display_name": "Qwen Math Turbo", + "id": "qwen-flash", + "name": "Qwen Flash", + "display_name": "Qwen Flash", "modalities": { "input": [ "text" @@ -12258,28 +12996,40 @@ ] }, "limit": { - "context": 4096, - "output": 3072 + "context": 1000000, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": false, + "budget": { + "default": 81920, + "min": 0, + "max": 81920 + } + }, + "search": { + "supported": true, + "default": false, + "forced_search": false, + "search_strategy": "turbo" }, "attachment": false, "open_weights": false, "knowledge": "2024-04", - "release_date": "2024-09-19", - "last_updated": "2024-09-19", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 0.287, - "output": 0.861 + "input": 0.022, + "output": 0.216 } }, { - "id": "qwen-mt-turbo", - "name": "Qwen Mt Turbo", - "display_name": "Qwen Mt Turbo", + "id": "qwen3-8b", + "name": "Qwen3 8B", + "display_name": "Qwen3 8B", "modalities": { "input": [ "text" @@ -12289,70 +13039,83 @@ ] }, "limit": { - "context": 16384, + "context": 131072, "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true, + "budget": { + "default": 38912, + "min": 0, + "max": 38912 + } }, "attachment": false, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-01", - "last_updated": "2025-01", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04", + "last_updated": "2025-04", "cost": { - "input": 0.101, - "output": 0.28 + "input": 0.072, + "output": 0.287, + "reasoning": 0.717 } }, { - "id": "deepseek-r1-distill-llama-8b", - "name": "DeepSeek R1 Distill Llama 8B", - "display_name": "DeepSeek R1 Distill Llama 8B", + "id": "qwen3-omni-flash-realtime", + "name": "Qwen3-Omni Flash Realtime", + "display_name": "Qwen3-Omni Flash Realtime", "modalities": { "input": [ - "text" + "text", + "image", + "audio" ], "output": [ - "text" + "text", + "audio" ] }, "limit": { - "context": 32768, + "context": 65536, "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2024-04", + "release_date": "2025-09-15", + "last_updated": "2025-09-15", "cost": { - "input": 0, - "output": 0 + "input": 0.23, + "output": 0.918, + "input_audio": 3.584, + "output_audio": 7.168 } }, { - "id": "qwen3-coder-480b-a35b-instruct", - "name": "Qwen3-Coder 480B-A35B Instruct", - "display_name": "Qwen3-Coder 480B-A35B Instruct", + "id": "qwen2-5-vl-72b-instruct", + "name": "Qwen2.5-VL 72B Instruct", + "display_name": "Qwen2.5-VL 72B Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 65536 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -12361,49 +13124,57 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-04", - "last_updated": "2025-04", + "knowledge": "2024-04", + "release_date": "2024-09", + "last_updated": "2024-09", "cost": { - "input": 0.861, - "output": 3.441 + "input": 2.294, + "output": 6.881 } }, { - "id": "qwen-mt-plus", - "name": "Qwen Mt Plus", - "display_name": "Qwen Mt Plus", + "id": "qwen3-vl-plus", + "name": "Qwen3 VL Plus", + "display_name": "Qwen3 VL Plus", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 16384, - "output": 8192 + "context": 262144, + "output": 32768 }, "temperature": true, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": false, + "budget": { + "default": 81920, + "min": 0, + "max": 81920 + } }, "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-01", - "last_updated": "2025-01", + "knowledge": "2025-04", + "release_date": "2025-09-23", + "last_updated": "2025-09-23", "cost": { - "input": 0.259, - "output": 0.775 + "input": 0.143353, + "output": 1.433525, + "reasoning": 4.300576 } }, { - "id": "qwen3-max", - "name": "Qwen3 Max", - "display_name": "Qwen3 Max", + "id": "qwen-plus", + "name": "Qwen Plus", + "display_name": "Qwen Plus", "modalities": { "input": [ "text" @@ -12413,28 +13184,41 @@ ] }, "limit": { - "context": 262144, - "output": 65536 + "context": 1000000, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": false, + "budget": { + "default": 81920, + "min": 0, + "max": 81920 + } + }, + "search": { + "supported": true, + "default": false, + "forced_search": false, + "search_strategy": "turbo" }, "attachment": false, "open_weights": false, - "knowledge": "2025-04", - "release_date": "2025-09-23", - "last_updated": "2025-09-23", + "knowledge": "2024-04", + "release_date": "2024-01-25", + "last_updated": "2025-09-11", "cost": { - "input": 0.861, - "output": 3.441 + "input": 0.115, + "output": 0.287, + "reasoning": 1.147 } }, { - "id": "qwq-32b", - "name": "QwQ 32B", - "display_name": "QwQ 32B", + "id": "qwen2-5-32b-instruct", + "name": "Qwen2.5 32B Instruct", + "display_name": "Qwen2.5 32B Instruct", "modalities": { "input": [ "text" @@ -12450,34 +13234,37 @@ "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, "knowledge": "2024-04", - "release_date": "2024-12", - "last_updated": "2024-12", + "release_date": "2024-09", + "last_updated": "2024-09", "cost": { "input": 0.287, "output": 0.861 } }, { - "id": "qwen2-5-math-7b-instruct", - "name": "Qwen2.5-Math 7B Instruct", - "display_name": "Qwen2.5-Math 7B Instruct", + "id": "qwen2-5-omni-7b", + "name": "Qwen2.5-Omni 7B", + "display_name": "Qwen2.5-Omni 7B", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video" ], "output": [ - "text" + "text", + "audio" ] }, "limit": { - "context": 4096, - "output": 3072 + "context": 32768, + "output": 2048 }, "temperature": true, "tool_call": true, @@ -12487,17 +13274,18 @@ "attachment": false, "open_weights": true, "knowledge": "2024-04", - "release_date": "2024-09", - "last_updated": "2024-09", + "release_date": "2024-12", + "last_updated": "2024-12", "cost": { - "input": 0.144, - "output": 0.287 + "input": 0.087, + "output": 0.345, + "input_audio": 5.448 } }, { - "id": "qwen3-next-80b-a3b-thinking", - "name": "Qwen3 Next 80B A3B Thinking", - "display_name": "Qwen3 Next 80B A3B Thinking", + "id": "qwen-max", + "name": "Qwen Max", + "display_name": "Qwen Max", "modalities": { "input": [ "text" @@ -12507,34 +13295,34 @@ ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 32768, + "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { + "supported": false + }, + "search": { "supported": true, - "default": true, - "budget": { - "default": 81920, - "min": 0, - "max": 81920 - } + "default": false, + "forced_search": false, + "search_strategy": "turbo" }, "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-09", - "last_updated": "2025-09", + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2024-04-03", + "last_updated": "2025-01-25", "cost": { - "input": 0.144, - "output": 1.434 + "input": 0.345, + "output": 1.377 } }, { - "id": "deepseek-r1-distill-qwen-1-5b", - "name": "DeepSeek R1 Distill Qwen 1.5B", - "display_name": "DeepSeek R1 Distill Qwen 1.5B", + "id": "qwen-long", + "name": "Qwen Long", + "display_name": "Qwen Long", "modalities": { "input": [ "text" @@ -12544,28 +13332,28 @@ ] }, "limit": { - "context": 32768, - "output": 16384 + "context": 1000000, + "output": 8192 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2024-04", + "release_date": "2025-01-25", + "last_updated": "2025-01-25", "cost": { - "input": 0, - "output": 0 + "input": 0.072, + "output": 0.287 } }, { - "id": "qwen3-32b", - "name": "Qwen3 32B", - "display_name": "Qwen3 32B", + "id": "qwen2-5-math-72b-instruct", + "name": "Qwen2.5-Math 72B Instruct", + "display_name": "Qwen2.5-Math 72B Instruct", "modalities": { "input": [ "text" @@ -12575,39 +13363,31 @@ ] }, "limit": { - "context": 131072, - "output": 16384 + "context": 4096, + "output": 3072 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true, - "budget": { - "default": 38912, - "min": 0, - "max": 38912 - } + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-04", - "last_updated": "2025-04", + "knowledge": "2024-04", + "release_date": "2024-09", + "last_updated": "2024-09", "cost": { - "input": 0.287, - "output": 1.147, - "reasoning": 2.868 + "input": 0.574, + "output": 1.721 } }, { - "id": "qwen-vl-plus", - "name": "Qwen-VL Plus", - "display_name": "Qwen-VL Plus", + "id": "moonshot-kimi-k2-instruct", + "name": "Moonshot Kimi K2 Instruct", + "display_name": "Moonshot Kimi K2 Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -12615,7 +13395,7 @@ }, "limit": { "context": 131072, - "output": 8192 + "output": 131072 }, "temperature": true, "tool_call": true, @@ -12624,18 +13404,17 @@ }, "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-01-25", - "last_updated": "2025-08-15", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.115, - "output": 0.287 + "input": 0.574, + "output": 2.294 } }, { - "id": "qwen3-coder-plus", - "name": "Qwen3 Coder Plus", - "display_name": "Qwen3 Coder Plus", + "id": "tongyi-intent-detect-v3", + "name": "Tongyi Intent Detect V3", + "display_name": "Tongyi Intent Detect V3", "modalities": { "input": [ "text" @@ -12645,28 +13424,28 @@ ] }, "limit": { - "context": 1000000, - "output": 65536 + "context": 8192, + "output": 1024 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-23", - "last_updated": "2025-07-23", + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2024-01", + "last_updated": "2024-01", "cost": { - "input": 1, - "output": 5 + "input": 0.058, + "output": 0.144 } }, { - "id": "qwen3-coder-plus-2025-09-23", - "name": "Qwen3 Coder Plus 2025 09 23", - "display_name": "Qwen3 Coder Plus 2025 09 23", + "id": "qwen2-5-7b-instruct", + "name": "Qwen2.5 7B Instruct", + "display_name": "Qwen2.5 7B Instruct", "modalities": { "input": [ "text" @@ -12676,97 +13455,121 @@ ] }, "limit": { - "context": 1000000, - "output": 65536 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-09", + "last_updated": "2024-09", + "cost": { + "input": 0.072, + "output": 0.144 + } }, { - "id": "qwen3-coder-plus-2025-07-22", - "name": "Qwen3 Coder Plus 2025 07 22", - "display_name": "Qwen3 Coder Plus 2025 07 22", + "id": "qwen2-5-vl-7b-instruct", + "name": "Qwen2.5-VL 7B Instruct", + "display_name": "Qwen2.5-VL 7B Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 65536 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-09", + "last_updated": "2024-09", + "cost": { + "input": 0.287, + "output": 0.717 + } }, { - "id": "qwen-vl-ocr-latest", - "name": "Qwen Vl Ocr Latest", - "display_name": "Qwen Vl Ocr Latest", + "id": "deepseek-v3-1", + "name": "DeepSeek V3.1", + "display_name": "DeepSeek V3.1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 34096, - "output": 4096 + "context": 131072, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false + "attachment": false, + "open_weights": false, + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0.574, + "output": 1.721 + } }, { - "id": "qvq-max-2025-05-15", - "name": "Qvq Max 2025 05 15", - "display_name": "Qvq Max 2025 05 15", + "id": "deepseek-r1-distill-llama-70b", + "name": "DeepSeek R1 Distill Llama 70B", + "display_name": "DeepSeek R1 Distill Llama 70B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 32768, + "output": 16384 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, - "default": false, - "budget": { - "default": 16384, - "min": 0, - "max": 16384 - } + "default": true }, - "attachment": false + "attachment": false, + "open_weights": false, + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0.287, + "output": 0.861 + } }, { - "id": "qwen-turbo-latest", - "name": "Qwen Turbo Latest", - "display_name": "Qwen Turbo Latest", + "id": "qwen3-235b-a22b", + "name": "Qwen3 235B A22B", + "display_name": "Qwen3 235B A22B", "modalities": { "input": [ "text" @@ -12777,7 +13580,7 @@ }, "limit": { "context": 131072, - "output": 16384 + "output": 32768 }, "temperature": true, "tool_call": true, @@ -12785,23 +13588,26 @@ "supported": true, "default": false, "budget": { - "default": 38912, + "default": 81920, "min": 0, - "max": 38912 + "max": 81920 } }, - "search": { - "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" - }, - "attachment": false + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04", + "last_updated": "2025-04", + "cost": { + "input": 0.287, + "output": 1.147, + "reasoning": 2.868 + } }, { - "id": "qwen-turbo-2024-09-19", - "name": "Qwen Turbo 2024 09 19", - "display_name": "Qwen Turbo 2024 09 19", + "id": "qwen2-5-coder-7b-instruct", + "name": "Qwen2.5-Coder 7B Instruct", + "display_name": "Qwen2.5-Coder 7B Instruct", "modalities": { "input": [ "text" @@ -12819,12 +13625,20 @@ "reasoning": { "supported": false }, - "attachment": false + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-11", + "last_updated": "2024-11", + "cost": { + "input": 0.144, + "output": 0.287 + } }, { - "id": "qwen-flash-2025-07-28", - "name": "Qwen Flash 2025 07 28", - "display_name": "Qwen Flash 2025 07 28", + "id": "deepseek-r1-distill-qwen-14b", + "name": "DeepSeek R1 Distill Qwen 14B", + "display_name": "DeepSeek R1 Distill Qwen 14B", "modalities": { "input": [ "text" @@ -12834,67 +13648,64 @@ ] }, "limit": { - "context": 1000000, - "output": 32768 + "context": 32768, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { "supported": true, - "default": false, - "budget": { - "default": 81920, - "min": 0, - "max": 81920 - } - }, - "search": { - "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" + "default": true }, - "attachment": false + "attachment": false, + "open_weights": false, + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0.144, + "output": 0.431 + } }, { - "id": "qwen-plus-latest", - "name": "Qwen Plus Latest", - "display_name": "Qwen Plus Latest", + "id": "qwen-omni-turbo-realtime", + "name": "Qwen-Omni Turbo Realtime", + "display_name": "Qwen-Omni Turbo Realtime", "modalities": { "input": [ - "text" + "text", + "image", + "audio" ], "output": [ - "text" + "text", + "audio" ] }, "limit": { - "context": 1000000, - "output": 32768 + "context": 32768, + "output": 2048 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": false, - "budget": { - "default": 81920, - "min": 0, - "max": 81920 - } - }, - "search": { - "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" + "supported": false }, - "attachment": false + "attachment": false, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-05-08", + "last_updated": "2025-05-08", + "cost": { + "input": 0.23, + "output": 0.918, + "input_audio": 3.584, + "output_audio": 7.168 + } }, { - "id": "qwen-plus-2024-09-19", - "name": "Qwen Plus 2024 09 19", - "display_name": "Qwen Plus 2024 09 19", + "id": "qwen-math-turbo", + "name": "Qwen Math Turbo", + "display_name": "Qwen Math Turbo", "modalities": { "input": [ "text" @@ -12904,20 +13715,28 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 4096, + "output": 3072 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false + "attachment": false, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2024-09-19", + "last_updated": "2024-09-19", + "cost": { + "input": 0.287, + "output": 0.861 + } }, { - "id": "qwen-plus-2025-07-14", - "name": "Qwen Plus 2025 07 14", - "display_name": "Qwen Plus 2025 07 14", + "id": "qwen-mt-turbo", + "name": "Qwen Mt Turbo", + "display_name": "Qwen Mt Turbo", "modalities": { "input": [ "text" @@ -12927,32 +13746,28 @@ ] }, "limit": { - "context": 131072, - "output": 16384 + "context": 16384, + "output": 8192 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": false, - "budget": { - "default": 38912, - "min": 0, - "max": 38912 - } - }, - "search": { - "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" + "supported": false }, - "attachment": false + "attachment": false, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-01", + "last_updated": "2025-01", + "cost": { + "input": 0.101, + "output": 0.28 + } }, { - "id": "qwen-plus-2025-09-11", - "name": "Qwen Plus 2025 09 11", - "display_name": "Qwen Plus 2025 09 11", + "id": "deepseek-r1-distill-llama-8b", + "name": "DeepSeek R1 Distill Llama 8B", + "display_name": "DeepSeek R1 Distill Llama 8B", "modalities": { "input": [ "text" @@ -12962,32 +13777,28 @@ ] }, "limit": { - "context": 1000000, - "output": 32768 + "context": 32768, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { "supported": true, - "default": false, - "budget": { - "default": 81920, - "min": 0, - "max": 81920 - } - }, - "search": { - "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" + "default": true }, - "attachment": false + "attachment": false, + "open_weights": false, + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0, + "output": 0 + } }, { - "id": "qwen-max-latest", - "name": "Qwen Max Latest", - "display_name": "Qwen Max Latest", + "id": "qwen3-coder-480b-a35b-instruct", + "name": "Qwen3-Coder 480B-A35B Instruct", + "display_name": "Qwen3-Coder 480B-A35B Instruct", "modalities": { "input": [ "text" @@ -12997,26 +13808,28 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 262144, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "search": { - "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" - }, - "attachment": false + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04", + "last_updated": "2025-04", + "cost": { + "input": 0.861, + "output": 3.441 + } }, { - "id": "qwen-max-2024-09-19", - "name": "Qwen Max 2024 09 19", - "display_name": "Qwen Max 2024 09 19", + "id": "qwen-mt-plus", + "name": "Qwen Mt Plus", + "display_name": "Qwen Mt Plus", "modalities": { "input": [ "text" @@ -13026,26 +13839,28 @@ ] }, "limit": { - "context": 32768, + "context": 16384, "output": 8192 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, - "search": { - "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" - }, - "attachment": false + "attachment": false, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-01", + "last_updated": "2025-01", + "cost": { + "input": 0.259, + "output": 0.775 + } }, { - "id": "qwen-max-2024-04-28", - "name": "Qwen Max 2024 04 28", - "display_name": "Qwen Max 2024 04 28", + "id": "qwen3-max", + "name": "Qwen3 Max", + "display_name": "Qwen3 Max", "modalities": { "input": [ "text" @@ -13055,20 +13870,28 @@ ] }, "limit": { - "context": 8000, - "output": 2000 + "context": 262144, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false + "attachment": false, + "open_weights": false, + "knowledge": "2025-04", + "release_date": "2025-09-23", + "last_updated": "2025-09-23", + "cost": { + "input": 0.861, + "output": 3.441 + } }, { - "id": "qwen-max-2024-04-03", - "name": "Qwen Max 2024 04 03", - "display_name": "Qwen Max 2024 04 03", + "id": "qwq-32b", + "name": "QwQ 32B", + "display_name": "QwQ 32B", "modalities": { "input": [ "text" @@ -13078,20 +13901,29 @@ ] }, "limit": { - "context": 8000, - "output": 2000 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-12", + "last_updated": "2024-12", + "cost": { + "input": 0.287, + "output": 0.861 + } }, { - "id": "qwen-max-2025-01-25", - "name": "Qwen Max 2025 01 25", - "display_name": "Qwen Max 2025 01 25", + "id": "qwen2-5-math-7b-instruct", + "name": "Qwen2.5-Math 7B Instruct", + "display_name": "Qwen2.5-Math 7B Instruct", "modalities": { "input": [ "text" @@ -13101,26 +13933,28 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 4096, + "output": 3072 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "search": { - "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" - }, - "attachment": false + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-09", + "last_updated": "2024-09", + "cost": { + "input": 0.144, + "output": 0.287 + } }, { - "id": "qwen3-max-2025-09-23", - "name": "Qwen3 Max 20250923", - "display_name": "Qwen3 Max 20250923", + "id": "qwen3-next-80b-a3b-thinking", + "name": "Qwen3 Next 80B A3B Thinking", + "display_name": "Qwen3 Next 80B A3B Thinking", "modalities": { "input": [ "text" @@ -13130,26 +13964,34 @@ ] }, "limit": { - "context": 262144, - "output": 65536 + "context": 131072, + "output": 32768 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": false - }, - "search": { "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" + "default": true, + "budget": { + "default": 81920, + "min": 0, + "max": 81920 + } }, - "attachment": false - }, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09", + "last_updated": "2025-09", + "cost": { + "input": 0.144, + "output": 1.434 + } + }, { - "id": "qwen3-max-preview", - "name": "Qwen3 Max Preview", - "display_name": "Qwen3 Max Preview", + "id": "deepseek-r1-distill-qwen-1-5b", + "name": "DeepSeek R1 Distill Qwen 1.5B", + "display_name": "DeepSeek R1 Distill Qwen 1.5B", "modalities": { "input": [ "text" @@ -13159,26 +14001,28 @@ ] }, "limit": { - "context": 262144, - "output": 65536 + "context": 32768, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false - }, - "search": { "supported": true, - "default": false, - "forced_search": false, - "search_strategy": "turbo" + "default": true }, - "attachment": false + "attachment": false, + "open_weights": false, + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0, + "output": 0 + } }, { - "id": "qwen3-235b-a22b-thinking-2507", - "name": "Qwen3 235B A22B Thinking 2507", - "display_name": "Qwen3 235B A22B Thinking 2507", + "id": "qwen3-32b", + "name": "Qwen3 32B", + "display_name": "Qwen3 32B", "modalities": { "input": [ "text" @@ -13189,28 +14033,38 @@ }, "limit": { "context": 131072, - "output": 32768 + "output": 16384 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true, "budget": { - "default": 81920, + "default": 38912, "min": 0, - "max": 81920 + "max": 38912 } }, - "attachment": false + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04", + "last_updated": "2025-04", + "cost": { + "input": 0.287, + "output": 1.147, + "reasoning": 2.868 + } }, { - "id": "qwen3-235b-a22b-instruct-2507", - "name": "Qwen3 235B A22B Instruct 2507", - "display_name": "Qwen3 235B A22B Instruct 2507", + "id": "qwen-vl-plus", + "name": "Qwen-VL Plus", + "display_name": "Qwen-VL Plus", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -13218,19 +14072,27 @@ }, "limit": { "context": 131072, - "output": 32768 + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false + "attachment": false, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2024-01-25", + "last_updated": "2025-08-15", + "cost": { + "input": 0.115, + "output": 0.287 + } }, { - "id": "qwen3-30b-a3b-instruct-2507", - "name": "Qwen3 30B A3B Instruct 2507", - "display_name": "Qwen3 30B A3B Instruct 2507", + "id": "qwen3-coder-plus", + "name": "Qwen3 Coder Plus", + "display_name": "Qwen3 Coder Plus", "modalities": { "input": [ "text" @@ -13240,20 +14102,28 @@ ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 1000000, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", + "cost": { + "input": 1, + "output": 5 + } }, { - "id": "qwen3-30b-a3b-thinking-2507", - "name": "Qwen3 30B A3B Thinking 2507", - "display_name": "Qwen3 30B A3B Thinking 2507", + "id": "qwen3-coder-plus-2025-09-23", + "name": "Qwen3 Coder Plus 2025 09 23", + "display_name": "Qwen3 Coder Plus 2025 09 23", "modalities": { "input": [ "text" @@ -13263,26 +14133,20 @@ ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 1000000, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true, - "budget": { - "default": 81920, - "min": 0, - "max": 81920 - } + "supported": false }, "attachment": false }, { - "id": "qwen3-30b-a3b", - "name": "Qwen3 30B A3B", - "display_name": "Qwen3 30B A3B", + "id": "qwen3-coder-plus-2025-07-22", + "name": "Qwen3 Coder Plus 2025 07 22", + "display_name": "Qwen3 Coder Plus 2025 07 22", "modalities": { "input": [ "text" @@ -13292,29 +14156,48 @@ ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 1000000, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": false, - "budget": { - "default": 81920, - "min": 0, - "max": 81920 - } + "supported": false }, "attachment": false }, { - "id": "qwen3-4b", - "name": "Qwen3 4B", - "display_name": "Qwen3 4B", + "id": "qwen-vl-ocr-latest", + "name": "Qwen Vl Ocr Latest", + "display_name": "Qwen Vl Ocr Latest", "modalities": { "input": [ + "text", + "image" + ], + "output": [ "text" + ] + }, + "limit": { + "context": 34096, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false + }, + { + "id": "qvq-max-2025-05-15", + "name": "Qvq Max 2025 05 15", + "display_name": "Qvq Max 2025 05 15", + "modalities": { + "input": [ + "text", + "image" ], "output": [ "text" @@ -13325,22 +14208,22 @@ "output": 8192 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": true, - "default": true, + "default": false, "budget": { - "default": 38912, + "default": 16384, "min": 0, - "max": 38912 + "max": 16384 } }, "attachment": false }, { - "id": "qwen3-1.7b", - "name": "Qwen3 1.7B", - "display_name": "Qwen3 1.7B", + "id": "qwen-turbo-latest", + "name": "Qwen Turbo Latest", + "display_name": "Qwen Turbo Latest", "modalities": { "input": [ "text" @@ -13350,26 +14233,32 @@ ] }, "limit": { - "context": 32768, - "output": 8192 + "context": 131072, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { "supported": true, - "default": true, + "default": false, "budget": { - "default": 30720, + "default": 38912, "min": 0, - "max": 30720 + "max": 38912 } }, + "search": { + "supported": true, + "default": false, + "forced_search": false, + "search_strategy": "turbo" + }, "attachment": false }, { - "id": "qwen3-0.6b", - "name": "Qwen3 0.6B", - "display_name": "Qwen3 0.6B", + "id": "qwen-turbo-2024-09-19", + "name": "Qwen Turbo 2024 09 19", + "display_name": "Qwen Turbo 2024 09 19", "modalities": { "input": [ "text" @@ -13379,41 +14268,34 @@ ] }, "limit": { - "context": 32768, + "context": 131072, "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true, - "budget": { - "default": 30720, - "min": 0, - "max": 30720 - } + "supported": false }, "attachment": false }, { - "id": "qwen3-vl-plus-2025-09-23", - "name": "Qwen3 VL Plus 2025 09 23", - "display_name": "Qwen3 VL Plus 2025 09 23", + "id": "qwen-flash-2025-07-28", + "name": "Qwen Flash 2025 07 28", + "display_name": "Qwen Flash 2025 07 28", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262144, + "context": 1000000, "output": 32768 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": false, @@ -13423,12 +14305,18 @@ "max": 81920 } }, + "search": { + "supported": true, + "default": false, + "forced_search": false, + "search_strategy": "turbo" + }, "attachment": false }, { - "id": "qwq-plus-latest", - "name": "QwQ Plus Latest", - "display_name": "QwQ Plus Latest", + "id": "qwen-plus-latest", + "name": "Qwen Plus Latest", + "display_name": "Qwen Plus Latest", "modalities": { "input": [ "text" @@ -13438,71 +14326,55 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 1000000, + "output": 32768 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, - "default": true, + "default": false, "budget": { - "default": 32768, + "default": 81920, "min": 0, - "max": 32768 + "max": 81920 } }, "search": { - "supported": false + "supported": true, + "default": false, + "forced_search": false, + "search_strategy": "turbo" }, "attachment": false - } - ] - }, - "venice": { - "id": "venice", - "name": "Venice AI", - "display_name": "Venice AI", - "api": "https://api.venice.ai/api/v1", - "doc": "https://docs.venice.ai", - "models": [ + }, { - "id": "grok-41-fast", - "name": "Grok 4.1 Fast", - "display_name": "Grok 4.1 Fast", + "id": "qwen-plus-2024-09-19", + "name": "Qwen Plus 2024 09 19", + "display_name": "Qwen Plus 2024 09 19", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262144, + "context": 131072, "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-11-19", - "last_updated": "2025-11-19", - "cost": { - "input": 0.5, - "output": 1.25 - } + "attachment": false }, { - "id": "qwen3-235b-a22b-instruct-2507", - "name": "Qwen 3 235B A22B Instruct 2507", - "display_name": "Qwen 3 235B A22B Instruct 2507", + "id": "qwen-plus-2025-07-14", + "name": "Qwen Plus 2025 07 14", + "display_name": "Qwen Plus 2025 07 14", "modalities": { "input": [ "text" @@ -13513,108 +14385,105 @@ }, "limit": { "context": 131072, - "output": 8192 + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": false, + "budget": { + "default": 38912, + "min": 0, + "max": 38912 + } }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-07", - "release_date": "2025-07-27", - "last_updated": "2025-07-27", - "cost": { - "input": 0.15, - "output": 0.75 - } + "search": { + "supported": true, + "default": false, + "forced_search": false, + "search_strategy": "turbo" + }, + "attachment": false }, { - "id": "gemini-3-flash-preview", - "name": "Gemini 3 Flash Preview", - "display_name": "Gemini 3 Flash Preview", + "id": "qwen-plus-2025-09-11", + "name": "Qwen Plus 2025 09 11", + "display_name": "Qwen Plus 2025 09 11", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 256576, - "output": 65536 + "context": 1000000, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { "supported": true, - "default": true + "default": false, + "budget": { + "default": 81920, + "min": 0, + "max": 81920 + } }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-12-17", - "last_updated": "2025-12-17", - "cost": { - "input": 0.7, - "output": 3.75 - } + "search": { + "supported": true, + "default": false, + "forced_search": false, + "search_strategy": "turbo" + }, + "attachment": false }, { - "id": "claude-opus-45", - "name": "Claude Opus 4.5", - "display_name": "Claude Opus 4.5", + "id": "qwen-max-latest", + "name": "Qwen Max Latest", + "display_name": "Qwen Max Latest", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 202752, + "context": 131072, "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { + "supported": false + }, + "search": { "supported": true, - "default": true + "default": false, + "forced_search": false, + "search_strategy": "turbo" }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03", - "release_date": "2025-12-05", - "last_updated": "2025-12-05", - "cost": { - "input": 6, - "output": 30 - } + "attachment": false }, { - "id": "mistral-31-24b", - "name": "Venice Medium", - "display_name": "Venice Medium", + "id": "qwen-max-2024-09-19", + "name": "Qwen Max 2024 09 19", + "display_name": "Qwen Max 2024 09 19", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 131072, + "context": 32768, "output": 8192 }, "temperature": true, @@ -13622,20 +14491,18 @@ "reasoning": { "supported": false }, - "attachment": true, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2025-07-15", - "last_updated": "2025-12-09", - "cost": { - "input": 0.5, - "output": 2 - } + "search": { + "supported": true, + "default": false, + "forced_search": false, + "search_strategy": "turbo" + }, + "attachment": false }, { - "id": "venice-uncensored", - "name": "Venice Uncensored 1.1", - "display_name": "Venice Uncensored 1.1", + "id": "qwen-max-2024-04-28", + "name": "Qwen Max 2024 04 28", + "display_name": "Qwen Max 2024 04 28", "modalities": { "input": [ "text" @@ -13645,28 +14512,20 @@ ] }, "limit": { - "context": 32768, - "output": 8192 + "context": 8000, + "output": 2000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2025-07-15", - "last_updated": "2025-12-09", - "cost": { - "input": 0.2, - "output": 0.9 - } + "attachment": false }, { - "id": "gemini-3-pro-preview", - "name": "Gemini 3 Pro Preview", - "display_name": "Gemini 3 Pro Preview", + "id": "qwen-max-2024-04-03", + "name": "Qwen Max 2024 04 03", + "display_name": "Qwen Max 2024 04 03", "modalities": { "input": [ "text" @@ -13676,63 +14535,49 @@ ] }, "limit": { - "context": 202752, - "output": 8192 + "context": 8000, + "output": 2000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", - "cost": { - "input": 2.5, - "output": 15 - } + "attachment": false }, { - "id": "openai-gpt-52", - "name": "GPT-5.2", - "display_name": "GPT-5.2", + "id": "qwen-max-2025-01-25", + "name": "Qwen Max 2025 01 25", + "display_name": "Qwen Max 2025 01 25", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 128000 + "context": 131072, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { + "supported": false + }, + "search": { "supported": true, - "default": true + "default": false, + "forced_search": false, + "search_strategy": "turbo" }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-08-31", - "release_date": "2025-12-11", - "last_updated": "2025-12-11", - "cost": { - "input": 2.19, - "output": 17.5, - "cache_read": 0.175 - } + "attachment": false }, { - "id": "qwen3-235b", - "name": "Venice Large 1.1", - "display_name": "Venice Large 1.1", + "id": "qwen3-max-2025-09-23", + "name": "Qwen3 Max 20250923", + "display_name": "Qwen3 Max 20250923", "modalities": { "input": [ "text" @@ -13742,29 +14587,26 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 262144, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { + "supported": false + }, + "search": { "supported": true, - "default": true + "default": false, + "forced_search": false, + "search_strategy": "turbo" }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-10", - "release_date": "2025-07-27", - "last_updated": "2025-12-09", - "cost": { - "input": 0.45, - "output": 3.5 - } + "attachment": false }, { - "id": "qwen3-4b", - "name": "Venice Small", - "display_name": "Venice Small", + "id": "qwen3-max-preview", + "name": "Qwen3 Max Preview", + "display_name": "Qwen3 Max Preview", "modalities": { "input": [ "text" @@ -13774,29 +14616,26 @@ ] }, "limit": { - "context": 32768, - "output": 8192 + "context": 262144, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { + "supported": false + }, + "search": { "supported": true, - "default": true + "default": false, + "forced_search": false, + "search_strategy": "turbo" }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-07-27", - "last_updated": "2025-12-09", - "cost": { - "input": 0.05, - "output": 0.15 - } + "attachment": false }, { - "id": "llama-3.3-70b", - "name": "Llama 3.3 70B", - "display_name": "Llama 3.3 70B", + "id": "qwen3-235b-a22b-thinking-2507", + "name": "Qwen3 235B A22B Thinking 2507", + "display_name": "Qwen3 235B A22B Thinking 2507", "modalities": { "input": [ "text" @@ -13806,28 +14645,49 @@ ] }, "limit": { - "context": 65536, - "output": 8192 + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true, + "budget": { + "default": 81920, + "min": 0, + "max": 81920 + } + }, + "attachment": false + }, + { + "id": "qwen3-235b-a22b-instruct-2507", + "name": "Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen3 235B A22B Instruct 2507", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2025-06-09", - "last_updated": "2025-06-09", - "cost": { - "input": 0.7, - "output": 2.8 - } + "attachment": false }, { - "id": "openai-gpt-oss-120b", - "name": "OpenAI GPT OSS 120B", - "display_name": "OpenAI GPT OSS 120B", + "id": "qwen3-30b-a3b-instruct-2507", + "name": "Qwen3 30B A3B Instruct 2507", + "display_name": "Qwen3 30B A3B Instruct 2507", "modalities": { "input": [ "text" @@ -13838,27 +14698,19 @@ }, "limit": { "context": 131072, - "output": 8192 + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-07", - "release_date": "2025-07-27", - "last_updated": "2025-07-27", - "cost": { - "input": 0.07, - "output": 0.3 - } + "attachment": false }, { - "id": "kimi-k2-thinking", - "name": "Kimi K2 Thinking", - "display_name": "Kimi K2 Thinking", + "id": "qwen3-30b-a3b-thinking-2507", + "name": "Qwen3 30B A3B Thinking 2507", + "display_name": "Qwen3 30B A3B Thinking 2507", "modalities": { "input": [ "text" @@ -13868,29 +14720,26 @@ ] }, "limit": { - "context": 262144, - "output": 8192 + "context": 131072, + "output": 32768 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": true, - "default": true + "default": true, + "budget": { + "default": 81920, + "min": 0, + "max": 81920 + } }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-04", - "release_date": "2025-09-05", - "last_updated": "2025-09-05", - "cost": { - "input": 0.75, - "output": 3.2 - } + "attachment": false }, { - "id": "qwen3-235b-a22b-thinking-2507", - "name": "Qwen 3 235B A22B Thinking 2507", - "display_name": "Qwen 3 235B A22B Thinking 2507", + "id": "qwen3-30b-a3b", + "name": "Qwen3 30B A3B", + "display_name": "Qwen3 30B A3B", "modalities": { "input": [ "text" @@ -13901,28 +14750,25 @@ }, "limit": { "context": 131072, - "output": 8192 + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { "supported": true, - "default": true + "default": false, + "budget": { + "default": 81920, + "min": 0, + "max": 81920 + } }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-07", - "release_date": "2025-07-27", - "last_updated": "2025-07-27", - "cost": { - "input": 0.45, - "output": 3.5 - } + "attachment": false }, { - "id": "llama-3.2-3b", - "name": "Llama 3.2 3B", - "display_name": "Llama 3.2 3B", + "id": "qwen3-4b", + "name": "Qwen3 4B", + "display_name": "Qwen3 4B", "modalities": { "input": [ "text" @@ -13938,54 +14784,49 @@ "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true, + "budget": { + "default": 38912, + "min": 0, + "max": 38912 + } }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2025-05-23", - "last_updated": "2025-05-23", - "cost": { - "input": 0.15, - "output": 0.6 - } + "attachment": false }, { - "id": "google-gemma-3-27b-it", - "name": "Google Gemma 3 27B Instruct", - "display_name": "Google Gemma 3 27B Instruct", + "id": "qwen3-1.7b", + "name": "Qwen3 1.7B", + "display_name": "Qwen3 1.7B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 202752, + "context": 32768, "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true, + "budget": { + "default": 30720, + "min": 0, + "max": 30720 + } }, - "attachment": true, - "open_weights": true, - "knowledge": "2025-07", - "release_date": "2025-07-27", - "last_updated": "2025-07-27", - "cost": { - "input": 0.12, - "output": 0.2 - } + "attachment": false }, { - "id": "hermes-3-llama-3.1-405b", - "name": "Hermes 3 Llama 3.1 405b", - "display_name": "Hermes 3 Llama 3.1 405b", + "id": "qwen3-0.6b", + "name": "Qwen3 0.6B", + "display_name": "Qwen3 0.6B", "modalities": { "input": [ "text" @@ -13995,31 +14836,30 @@ ] }, "limit": { - "context": 131072, + "context": 32768, "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true, + "budget": { + "default": 30720, + "min": 0, + "max": 30720 + } }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-04", - "release_date": "2024-04-15", - "last_updated": "2024-04-15", - "cost": { - "input": 1.1, - "output": 3 - } + "attachment": false }, { - "id": "qwen3-next-80b", - "name": "Qwen 3 Next 80b", - "display_name": "Qwen 3 Next 80b", + "id": "qwen3-vl-plus-2025-09-23", + "name": "Qwen3 VL Plus 2025 09 23", + "display_name": "Qwen3 VL Plus 2025 09 23", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -14027,27 +14867,25 @@ }, "limit": { "context": 262144, - "output": 8192 + "output": 32768 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": false, + "budget": { + "default": 81920, + "min": 0, + "max": 81920 + } }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-07", - "release_date": "2025-07-27", - "last_updated": "2025-07-27", - "cost": { - "input": 0.35, - "output": 1.9 - } + "attachment": false }, { - "id": "zai-org-glm-4.6", - "name": "GLM 4.6", - "display_name": "GLM 4.6", + "id": "qwq-plus-latest", + "name": "QwQ Plus Latest", + "display_name": "QwQ Plus Latest", "modalities": { "input": [ "text" @@ -14057,31 +14895,42 @@ ] }, "limit": { - "context": 202752, + "context": 131072, "output": 8192 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { + "supported": true, + "default": true, + "budget": { + "default": 32768, + "min": 0, + "max": 32768 + } + }, + "search": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-04", - "release_date": "2025-09-30", - "last_updated": "2025-09-30", - "cost": { - "input": 0.85, - "output": 2.75 - } - }, + "attachment": false + } + ] + }, + "venice": { + "id": "venice", + "name": "Venice AI", + "display_name": "Venice AI", + "api": "https://api.venice.ai/api/v1", + "doc": "https://docs.venice.ai", + "models": [ { - "id": "qwen3-coder-480b-a35b-instruct", - "name": "Qwen 3 Coder 480b", - "display_name": "Qwen 3 Coder 480b", + "id": "grok-41-fast", + "name": "Grok 4.1 Fast", + "display_name": "Grok 4.1 Fast", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -14089,27 +14938,29 @@ }, "limit": { "context": 262144, - "output": 8192 + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, + "attachment": true, + "open_weights": false, "knowledge": "2025-07", - "release_date": "2025-07-27", - "last_updated": "2025-07-27", + "release_date": "2025-04-29", + "last_updated": "2025-12-23", "cost": { - "input": 0.75, - "output": 3 + "input": 0.5, + "output": 1.25, + "cache_read": 0.125 } }, { - "id": "deepseek-v3.2", - "name": "DeepSeek V3.2", - "display_name": "DeepSeek V3.2", + "id": "qwen3-235b-a22b-instruct-2507", + "name": "Qwen 3 235B A22B Instruct 2507", + "display_name": "Qwen 3 235B A22B Instruct 2507", "modalities": { "input": [ "text" @@ -14119,78 +14970,77 @@ ] }, "limit": { - "context": 163840, - "output": 8192 + "context": 131072, + "output": 32768 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2025-10", - "release_date": "2025-10-05", - "last_updated": "2025-10-05", + "knowledge": "2025-07", + "release_date": "2025-04-29", + "last_updated": "2025-12-18", "cost": { - "input": 0.4, - "output": 1 + "input": 0.15, + "output": 0.75 } - } - ] - }, - "siliconflow": { - "id": "siliconflow", - "name": "SiliconFlow", - "display_name": "SiliconFlow", - "api": "https://api.siliconflow.cn/v1", - "doc": "https://cloud.siliconflow.com/models", - "models": [ + }, { - "id": "qwen-qwen2.5-14b-instruct", - "name": "Qwen/Qwen2.5-14B-Instruct", - "display_name": "Qwen/Qwen2.5-14B-Instruct", + "id": "gemini-3-flash-preview", + "name": "Gemini 3 Flash Preview", + "display_name": "Gemini 3 Flash Preview", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 33000, - "output": 4000 + "context": 262144, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-09-18", - "last_updated": "2025-11-25", + "knowledge": "2025-01", + "release_date": "2025-12-13", + "last_updated": "2025-12-23", "cost": { - "input": 0.1, - "output": 0.1 + "input": 0.7, + "output": 3.75 } }, { - "id": "moonshotai-kimi-k2-thinking", - "name": "moonshotai/Kimi-K2-Thinking", - "display_name": "moonshotai/Kimi-K2-Thinking", + "id": "claude-opus-45", + "name": "Claude Opus 4.5", + "display_name": "Claude Opus 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 202752, + "output": 50688 }, "temperature": true, "tool_call": true, @@ -14198,19 +15048,21 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-11-07", - "last_updated": "2025-11-25", + "knowledge": "2025-03", + "release_date": "2024-12-05", + "last_updated": "2025-12-23", "cost": { - "input": 0.55, - "output": 2.5 + "input": 6, + "output": 30, + "cache_read": 0.6 } }, { - "id": "qwen-qwen3-vl-30b-a3b-instruct", - "name": "Qwen/Qwen3-VL-30B-A3B-Instruct", - "display_name": "Qwen/Qwen3-VL-30B-A3B-Instruct", + "id": "mistral-31-24b", + "name": "Venice Medium", + "display_name": "Venice Medium", "modalities": { "input": [ "text", @@ -14221,8 +15073,8 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -14230,18 +15082,19 @@ "supported": false }, "attachment": true, - "open_weights": false, - "release_date": "2025-10-05", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2025-03-18", + "last_updated": "2025-12-18", "cost": { - "input": 0.29, - "output": 1 + "input": 0.5, + "output": 2 } }, { - "id": "qwen-qwen3-next-80b-a3b-instruct", - "name": "Qwen/Qwen3-Next-80B-A3B-Instruct", - "display_name": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "id": "zai-org-glm-4.7", + "name": "GLM 4.7", + "display_name": "GLM 4.7", "modalities": { "input": [ "text" @@ -14251,8 +15104,8 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -14260,18 +15113,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-09-18", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2024-04-01", + "last_updated": "2025-12-24", "cost": { - "input": 0.14, - "output": 1.4 + "input": 0.85, + "output": 2.75 } }, { - "id": "deepseek-ai-deepseek-r1-distill-qwen-32b", - "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + "id": "venice-uncensored", + "name": "Venice Uncensored 1.1", + "display_name": "Venice Uncensored 1.1", "modalities": { "input": [ "text" @@ -14281,58 +15135,64 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 32768, + "output": 8192 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-01-20", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2025-03-18", + "last_updated": "2025-12-18", "cost": { - "input": 0.18, - "output": 0.18 + "input": 0.2, + "output": 0.9 } }, { - "id": "thudm-glm-4-32b-0414", - "name": "THUDM/GLM-4-32B-0414", - "display_name": "THUDM/GLM-4-32B-0414", + "id": "gemini-3-pro-preview", + "name": "Gemini 3 Pro Preview", + "display_name": "Gemini 3 Pro Preview", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video" ], "output": [ "text" ] }, "limit": { - "context": 33000, - "output": 33000 + "context": 202752, + "output": 50688 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-04-18", - "last_updated": "2025-11-25", + "knowledge": "2024-04", + "release_date": "2024-06-07", + "last_updated": "2025-12-23", "cost": { - "input": 0.27, - "output": 0.27 + "input": 2.5, + "output": 15, + "cache_read": 0.625 } }, { - "id": "tencent-hunyuan-a13b-instruct", - "name": "tencent/Hunyuan-A13B-Instruct", - "display_name": "tencent/Hunyuan-A13B-Instruct", + "id": "openai-gpt-52", + "name": "GPT-5.2", + "display_name": "GPT-5.2", "modalities": { "input": [ "text" @@ -14342,27 +15202,30 @@ ] }, "limit": { - "context": 131000, - "output": 131000 - }, + "context": 262144, + "output": 65536 + }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-06-30", - "last_updated": "2025-11-25", + "knowledge": "2025-08-31", + "release_date": "2024-12-11", + "last_updated": "2025-12-23", "cost": { - "input": 0.14, - "output": 0.57 + "input": 2.19, + "output": 17.5, + "cache_read": 0.219 } }, { - "id": "qwen-qwen3-32b", - "name": "Qwen/Qwen3-32B", - "display_name": "Qwen/Qwen3-32B", + "id": "qwen3-4b", + "name": "Venice Small", + "display_name": "Venice Small", "modalities": { "input": [ "text" @@ -14372,8 +15235,40 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 32768, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-04-29", + "last_updated": "2025-12-18", + "cost": { + "input": 0.05, + "output": 0.15 + } + }, + { + "id": "llama-3.3-70b", + "name": "Llama 3.3 70B", + "display_name": "Llama 3.3 70B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -14381,18 +15276,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-04-30", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-09", + "last_updated": "2025-12-18", "cost": { - "input": 0.14, - "output": 0.57 + "input": 0.7, + "output": 2.8 } }, { - "id": "zai-org-glm-4.6", - "name": "zai-org/GLM-4.6", - "display_name": "zai-org/GLM-4.6", + "id": "openai-gpt-oss-120b", + "name": "OpenAI GPT OSS 120B", + "display_name": "OpenAI GPT OSS 120B", "modalities": { "input": [ "text" @@ -14402,8 +15298,8 @@ ] }, "limit": { - "context": 205000, - "output": 205000 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -14411,31 +15307,30 @@ "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-10-04", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2024-04-01", + "last_updated": "2025-12-18", "cost": { - "input": 0.5, - "output": 1.9 + "input": 0.07, + "output": 0.3 } }, { - "id": "qwen-qwen3-omni-30b-a3b-thinking", - "name": "Qwen/Qwen3-Omni-30B-A3B-Thinking", - "display_name": "Qwen/Qwen3-Omni-30B-A3B-Thinking", + "id": "kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 66000, - "output": 66000 + "context": 262144, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -14443,19 +15338,21 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-10-04", - "last_updated": "2025-11-25", + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-06-07", + "last_updated": "2025-12-24", "cost": { - "input": 0.1, - "output": 0.4 + "input": 0.75, + "output": 3.2, + "cache_read": 0.1875 } }, { - "id": "baidu-ernie-4.5-300b-a47b", - "name": "baidu/ERNIE-4.5-300B-A47B", - "display_name": "baidu/ERNIE-4.5-300B-A47B", + "id": "qwen3-235b-a22b-thinking-2507", + "name": "Qwen 3 235B A22B Thinking 2507", + "display_name": "Qwen 3 235B A22B Thinking 2507", "modalities": { "input": [ "text" @@ -14465,27 +15362,29 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-07-02", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-04-29", + "last_updated": "2025-12-18", "cost": { - "input": 0.28, - "output": 1.1 + "input": 0.45, + "output": 3.5 } }, { - "id": "qwen-qwen3-235b-a22b-instruct-2507", - "name": "Qwen/Qwen3-235B-A22B-Instruct-2507", - "display_name": "Qwen/Qwen3-235B-A22B-Instruct-2507", + "id": "llama-3.2-3b", + "name": "Llama 3.2 3B", + "display_name": "Llama 3.2 3B", "modalities": { "input": [ "text" @@ -14495,8 +15394,8 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -14504,48 +15403,51 @@ "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-07-23", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-10-03", + "last_updated": "2025-12-18", "cost": { - "input": 0.09, + "input": 0.15, "output": 0.6 } }, { - "id": "meta-llama-meta-llama-3.1-8b-instruct", - "name": "meta-llama/Meta-Llama-3.1-8B-Instruct", - "display_name": "meta-llama/Meta-Llama-3.1-8B-Instruct", + "id": "google-gemma-3-27b-it", + "name": "Google Gemma 3 27B Instruct", + "display_name": "Google Gemma 3 27B Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 33000, - "output": 4000 + "context": 202752, + "output": 50688 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false, - "release_date": "2025-04-23", - "last_updated": "2025-11-25", + "attachment": true, + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2024-04-01", + "last_updated": "2025-12-18", "cost": { - "input": 0.06, - "output": 0.06 + "input": 0.12, + "output": 0.2 } }, { - "id": "qwen-qwen3-235b-a22b", - "name": "Qwen/Qwen3-235B-A22B", - "display_name": "Qwen/Qwen3-235B-A22B", + "id": "hermes-3-llama-3.1-405b", + "name": "Hermes 3 Llama 3.1 405b", + "display_name": "Hermes 3 Llama 3.1 405b", "modalities": { "input": [ "text" @@ -14555,57 +15457,59 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 131072, + "output": 32768 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-04-30", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-04-01", + "last_updated": "2025-12-18", "cost": { - "input": 0.35, - "output": 1.42 + "input": 1.1, + "output": 3 } }, { - "id": "qwen-qwen2.5-72b-instruct", - "name": "Qwen/Qwen2.5-72B-Instruct", - "display_name": "Qwen/Qwen2.5-72B-Instruct", + "id": "zai-org-glm-4.6v", + "name": "GLM 4.6V", + "display_name": "GLM 4.6V", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 33000, - "output": 4000 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false, - "release_date": "2024-09-18", - "last_updated": "2025-11-25", + "attachment": true, + "open_weights": true, + "release_date": "2024-12-10", + "last_updated": "2025-12-18", "cost": { - "input": 0.59, - "output": 0.59 + "input": 0.39, + "output": 1.13 } }, { - "id": "qwen-qwen3-8b", - "name": "Qwen/Qwen3-8B", - "display_name": "Qwen/Qwen3-8B", + "id": "qwen3-next-80b", + "name": "Qwen 3 Next 80b", + "display_name": "Qwen 3 Next 80b", "modalities": { "input": [ "text" @@ -14615,8 +15519,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 262144, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -14624,18 +15528,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-04-30", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-04-29", + "last_updated": "2025-12-18", "cost": { - "input": 0.06, - "output": 0.06 + "input": 0.35, + "output": 1.9 } }, { - "id": "nex-agi-deepseek-v3.1-nex-n1", - "name": "nex-agi/DeepSeek-V3.1-Nex-N1", - "display_name": "nex-agi/DeepSeek-V3.1-Nex-N1", + "id": "zai-org-glm-4.6", + "name": "GLM 4.6", + "display_name": "GLM 4.6", "modalities": { "input": [ "text" @@ -14645,95 +15550,104 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 202752, + "output": 50688 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-01-01", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-04-01", + "last_updated": "2025-12-18", "cost": { - "input": 0.5, - "output": 2 + "input": 0.85, + "output": 2.75 } }, { - "id": "qwen-qwen3-vl-8b-instruct", - "name": "Qwen/Qwen3-VL-8B-Instruct", - "display_name": "Qwen/Qwen3-VL-8B-Instruct", + "id": "qwen3-coder-480b-a35b-instruct", + "name": "Qwen 3 Coder 480b", + "display_name": "Qwen 3 Coder 480b", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 262144, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-10-15", - "last_updated": "2025-11-25", + "attachment": false, + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-04-29", + "last_updated": "2025-12-18", "cost": { - "input": 0.18, - "output": 0.68 + "input": 0.75, + "output": 3 } }, { - "id": "qwen-qwen3-vl-8b-thinking", - "name": "Qwen/Qwen3-VL-8B-Thinking", - "display_name": "Qwen/Qwen3-VL-8B-Thinking", + "id": "deepseek-v3.2", + "name": "DeepSeek V3.2", + "display_name": "DeepSeek V3.2", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 163840, + "output": 40960 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-10-15", - "last_updated": "2025-11-25", + "attachment": false, + "open_weights": true, + "knowledge": "2025-10", + "release_date": "2025-12-07", + "last_updated": "2025-12-23", "cost": { - "input": 0.18, - "output": 2 + "input": 0.4, + "output": 1, + "cache_read": 0.2 } - }, + } + ] + }, + "siliconflow": { + "id": "siliconflow", + "name": "SiliconFlow", + "display_name": "SiliconFlow", + "api": "https://api.siliconflow.cn/v1", + "doc": "https://cloud.siliconflow.com/models", + "models": [ { - "id": "qwen-qwen2.5-vl-7b-instruct", - "name": "Qwen/Qwen2.5-VL-7B-Instruct", - "display_name": "Qwen/Qwen2.5-VL-7B-Instruct", + "id": "qwen-qwen2.5-14b-instruct", + "name": "Qwen/Qwen2.5-14B-Instruct", + "display_name": "Qwen/Qwen2.5-14B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -14748,19 +15662,19 @@ "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-01-28", + "release_date": "2024-09-18", "last_updated": "2025-11-25", "cost": { - "input": 0.05, - "output": 0.05 + "input": 0.1, + "output": 0.1 } }, { - "id": "bytedance-seed-seed-oss-36b-instruct", - "name": "ByteDance-Seed/Seed-OSS-36B-Instruct", - "display_name": "ByteDance-Seed/Seed-OSS-36B-Instruct", + "id": "moonshotai-kimi-k2-thinking", + "name": "moonshotai/Kimi-K2-Thinking", + "display_name": "moonshotai/Kimi-K2-Thinking", "modalities": { "input": [ "text" @@ -14776,51 +15690,53 @@ "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-09-04", + "release_date": "2025-11-07", "last_updated": "2025-11-25", "cost": { - "input": 0.21, - "output": 0.57 + "input": 0.55, + "output": 2.5 } }, { - "id": "minimaxai-minimax-m2", - "name": "MiniMaxAI/MiniMax-M2", - "display_name": "MiniMaxAI/MiniMax-M2", + "id": "qwen-qwen3-vl-30b-a3b-instruct", + "name": "Qwen/Qwen3-VL-30B-A3B-Instruct", + "display_name": "Qwen/Qwen3-VL-30B-A3B-Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 197000, - "output": 131000 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-10-28", + "release_date": "2025-10-05", "last_updated": "2025-11-25", "cost": { - "input": 0.3, - "output": 1.2 + "input": 0.29, + "output": 1 } }, { - "id": "qwen-qwen2.5-32b-instruct", - "name": "Qwen/Qwen2.5-32B-Instruct", - "display_name": "Qwen/Qwen2.5-32B-Instruct", + "id": "qwen-qwen3-next-80b-a3b-instruct", + "name": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "display_name": "Qwen/Qwen3-Next-80B-A3B-Instruct", "modalities": { "input": [ "text" @@ -14830,8 +15746,8 @@ ] }, "limit": { - "context": 33000, - "output": 4000 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, @@ -14840,17 +15756,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2024-09-19", + "release_date": "2025-09-18", "last_updated": "2025-11-25", "cost": { - "input": 0.18, - "output": 0.18 + "input": 0.14, + "output": 1.4 } }, { - "id": "qwen-qwen2.5-7b-instruct", - "name": "Qwen/Qwen2.5-7B-Instruct", - "display_name": "Qwen/Qwen2.5-7B-Instruct", + "id": "deepseek-ai-deepseek-r1-distill-qwen-32b", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", "modalities": { "input": [ "text" @@ -14860,27 +15776,28 @@ ] }, "limit": { - "context": 33000, - "output": 4000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2024-09-18", + "release_date": "2025-01-20", "last_updated": "2025-11-25", "cost": { - "input": 0.05, - "output": 0.05 + "input": 0.18, + "output": 0.18 } }, { - "id": "openai-gpt-oss-20b", - "name": "openai/gpt-oss-20b", - "display_name": "openai/gpt-oss-20b", + "id": "thudm-glm-4-32b-0414", + "name": "THUDM/GLM-4-32B-0414", + "display_name": "THUDM/GLM-4-32B-0414", "modalities": { "input": [ "text" @@ -14890,8 +15807,8 @@ ] }, "limit": { - "context": 131000, - "output": 8000 + "context": 33000, + "output": 33000 }, "temperature": true, "tool_call": true, @@ -14900,17 +15817,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-08-13", + "release_date": "2025-04-18", "last_updated": "2025-11-25", "cost": { - "input": 0.04, - "output": 0.18 + "input": 0.27, + "output": 0.27 } }, { - "id": "deepseek-ai-deepseek-v3", - "name": "deepseek-ai/DeepSeek-V3", - "display_name": "deepseek-ai/DeepSeek-V3", + "id": "tencent-hunyuan-a13b-instruct", + "name": "tencent/Hunyuan-A13B-Instruct", + "display_name": "tencent/Hunyuan-A13B-Instruct", "modalities": { "input": [ "text" @@ -14920,8 +15837,8 @@ ] }, "limit": { - "context": 164000, - "output": 164000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -14930,17 +15847,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2024-12-26", + "release_date": "2025-06-30", "last_updated": "2025-11-25", "cost": { - "input": 0.25, - "output": 1 + "input": 0.14, + "output": 0.57 } }, { - "id": "deepseek-ai-deepseek-r1-distill-qwen-14b", - "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", - "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + "id": "qwen-qwen3-32b", + "name": "Qwen/Qwen3-32B", + "display_name": "Qwen/Qwen3-32B", "modalities": { "input": [ "text" @@ -14956,22 +15873,21 @@ "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-01-20", + "release_date": "2025-04-30", "last_updated": "2025-11-25", "cost": { - "input": 0.1, - "output": 0.1 + "input": 0.14, + "output": 0.57 } }, { - "id": "zai-org-glm-4.5", - "name": "zai-org/GLM-4.5", - "display_name": "zai-org/GLM-4.5", + "id": "zai-org-glm-4.6", + "name": "zai-org/GLM-4.6", + "display_name": "zai-org/GLM-4.6", "modalities": { "input": [ "text" @@ -14981,8 +15897,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 205000, + "output": 205000 }, "temperature": true, "tool_call": true, @@ -14991,48 +15907,50 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-07-28", + "release_date": "2025-10-04", "last_updated": "2025-11-25", "cost": { - "input": 0.4, - "output": 2 + "input": 0.5, + "output": 1.9 } }, { - "id": "qwen-qwen3-vl-235b-a22b-instruct", - "name": "Qwen/Qwen3-VL-235B-A22B-Instruct", - "display_name": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "id": "qwen-qwen3-omni-30b-a3b-thinking", + "name": "Qwen/Qwen3-Omni-30B-A3B-Thinking", + "display_name": "Qwen/Qwen3-Omni-30B-A3B-Thinking", "modalities": { "input": [ "text", - "image" + "image", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 66000, + "output": 66000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, "release_date": "2025-10-04", "last_updated": "2025-11-25", "cost": { - "input": 0.3, - "output": 1.5 + "input": 0.1, + "output": 0.4 } }, { - "id": "qwen-qwen3-next-80b-a3b-thinking", - "name": "Qwen/Qwen3-Next-80B-A3B-Thinking", - "display_name": "Qwen/Qwen3-Next-80B-A3B-Thinking", + "id": "baidu-ernie-4.5-300b-a47b", + "name": "baidu/ERNIE-4.5-300B-A47B", + "display_name": "baidu/ERNIE-4.5-300B-A47B", "modalities": { "input": [ "text" @@ -15042,91 +15960,87 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-09-25", + "release_date": "2025-07-02", "last_updated": "2025-11-25", "cost": { - "input": 0.14, - "output": 0.57 + "input": 0.28, + "output": 1.1 } }, { - "id": "thudm-glm-4.1v-9b-thinking", - "name": "THUDM/GLM-4.1V-9B-Thinking", - "display_name": "THUDM/GLM-4.1V-9B-Thinking", + "id": "qwen-qwen3-235b-a22b-instruct-2507", + "name": "Qwen/Qwen3-235B-A22B-Instruct-2507", + "display_name": "Qwen/Qwen3-235B-A22B-Instruct-2507", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 66000, - "output": 66000 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-07-04", + "release_date": "2025-07-23", "last_updated": "2025-11-25", "cost": { - "input": 0.035, - "output": 0.14 + "input": 0.09, + "output": 0.6 } }, { - "id": "stepfun-ai-step3", - "name": "stepfun-ai/step3", - "display_name": "stepfun-ai/step3", + "id": "meta-llama-meta-llama-3.1-8b-instruct", + "name": "meta-llama/Meta-Llama-3.1-8B-Instruct", + "display_name": "meta-llama/Meta-Llama-3.1-8B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 66000, - "output": 66000 + "context": 33000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-08-06", + "release_date": "2025-04-23", "last_updated": "2025-11-25", "cost": { - "input": 0.57, - "output": 1.42 + "input": 0.06, + "output": 0.06 } }, { - "id": "qwen-qwq-32b", - "name": "Qwen/QwQ-32B", - "display_name": "Qwen/QwQ-32B", + "id": "qwen-qwen3-235b-a22b", + "name": "Qwen/Qwen3-235B-A22B", + "display_name": "Qwen/Qwen3-235B-A22B", "modalities": { "input": [ "text" @@ -15142,22 +16056,21 @@ "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-03-06", + "release_date": "2025-04-30", "last_updated": "2025-11-25", "cost": { - "input": 0.15, - "output": 0.58 + "input": 0.35, + "output": 1.42 } }, { - "id": "qwen-qwen3-coder-30b-a3b-instruct", - "name": "Qwen/Qwen3-Coder-30B-A3B-Instruct", - "display_name": "Qwen/Qwen3-Coder-30B-A3B-Instruct", + "id": "qwen-qwen2.5-72b-instruct", + "name": "Qwen/Qwen2.5-72B-Instruct", + "display_name": "Qwen/Qwen2.5-72B-Instruct", "modalities": { "input": [ "text" @@ -15167,8 +16080,8 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 33000, + "output": 4000 }, "temperature": true, "tool_call": true, @@ -15177,17 +16090,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-08-01", + "release_date": "2024-09-18", "last_updated": "2025-11-25", "cost": { - "input": 0.07, - "output": 0.28 + "input": 0.59, + "output": 0.59 } }, { - "id": "thudm-glm-4-9b-0414", - "name": "THUDM/GLM-4-9B-0414", - "display_name": "THUDM/GLM-4-9B-0414", + "id": "qwen-qwen3-8b", + "name": "Qwen/Qwen3-8B", + "display_name": "Qwen/Qwen3-8B", "modalities": { "input": [ "text" @@ -15197,8 +16110,8 @@ ] }, "limit": { - "context": 33000, - "output": 33000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -15207,17 +16120,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-18", + "release_date": "2025-04-30", "last_updated": "2025-11-25", "cost": { - "input": 0.086, - "output": 0.086 + "input": 0.06, + "output": 0.06 } }, { - "id": "zai-org-glm-4.5-air", - "name": "zai-org/GLM-4.5-Air", - "display_name": "zai-org/GLM-4.5-Air", + "id": "nex-agi-deepseek-v3.1-nex-n1", + "name": "nex-agi/DeepSeek-V3.1-Nex-N1", + "display_name": "nex-agi/DeepSeek-V3.1-Nex-N1", "modalities": { "input": [ "text" @@ -15233,63 +16146,65 @@ "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-07-28", + "release_date": "2025-01-01", "last_updated": "2025-11-25", "cost": { - "input": 0.14, - "output": 0.86 + "input": 0.5, + "output": 2 } }, { - "id": "deepseek-ai-deepseek-v3.1-terminus", - "name": "deepseek-ai/DeepSeek-V3.1-Terminus", - "display_name": "deepseek-ai/DeepSeek-V3.1-Terminus", + "id": "qwen-qwen3-vl-8b-instruct", + "name": "Qwen/Qwen3-VL-8B-Instruct", + "display_name": "Qwen/Qwen3-VL-8B-Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 164000, - "output": 164000 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-09-29", + "release_date": "2025-10-15", "last_updated": "2025-11-25", "cost": { - "input": 0.27, - "output": 1 + "input": 0.18, + "output": 0.68 } }, { - "id": "minimaxai-minimax-m1-80k", - "name": "MiniMaxAI/MiniMax-M1-80k", - "display_name": "MiniMaxAI/MiniMax-M1-80k", + "id": "qwen-qwen3-vl-8b-thinking", + "name": "Qwen/Qwen3-VL-8B-Thinking", + "display_name": "Qwen/Qwen3-VL-8B-Thinking", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, @@ -15297,50 +16212,50 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-06-17", + "release_date": "2025-10-15", "last_updated": "2025-11-25", "cost": { - "input": 0.55, - "output": 2.2 + "input": 0.18, + "output": 2 } }, { - "id": "openai-gpt-oss-120b", - "name": "openai/gpt-oss-120b", - "display_name": "openai/gpt-oss-120b", + "id": "qwen-qwen2.5-vl-7b-instruct", + "name": "Qwen/Qwen2.5-VL-7B-Instruct", + "display_name": "Qwen/Qwen2.5-VL-7B-Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131000, - "output": 8000 + "context": 33000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-08-13", + "release_date": "2025-01-28", "last_updated": "2025-11-25", "cost": { "input": 0.05, - "output": 0.45 + "output": 0.05 } }, { - "id": "qwen-qwen3-30b-a3b", - "name": "Qwen/Qwen3-30B-A3B", - "display_name": "Qwen/Qwen3-30B-A3B", + "id": "bytedance-seed-seed-oss-36b-instruct", + "name": "ByteDance-Seed/Seed-OSS-36B-Instruct", + "display_name": "ByteDance-Seed/Seed-OSS-36B-Instruct", "modalities": { "input": [ "text" @@ -15350,8 +16265,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, @@ -15360,17 +16275,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-30", + "release_date": "2025-09-04", "last_updated": "2025-11-25", "cost": { - "input": 0.09, - "output": 0.45 + "input": 0.21, + "output": 0.57 } }, { - "id": "tencent-hunyuan-mt-7b", - "name": "tencent/Hunyuan-MT-7B", - "display_name": "tencent/Hunyuan-MT-7B", + "id": "minimaxai-minimax-m2", + "name": "MiniMaxAI/MiniMax-M2", + "display_name": "MiniMaxAI/MiniMax-M2", "modalities": { "input": [ "text" @@ -15380,8 +16295,8 @@ ] }, "limit": { - "context": 33000, - "output": 33000 + "context": 197000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -15390,60 +16305,57 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-09-18", + "release_date": "2025-10-28", "last_updated": "2025-11-25", "cost": { - "input": 0, - "output": 0 + "input": 0.3, + "output": 1.2 } }, { - "id": "qwen-qwen3-vl-32b-thinking", - "name": "Qwen/Qwen3-VL-32B-Thinking", - "display_name": "Qwen/Qwen3-VL-32B-Thinking", + "id": "qwen-qwen2.5-32b-instruct", + "name": "Qwen/Qwen2.5-32B-Instruct", + "display_name": "Qwen/Qwen2.5-32B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 33000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-10-21", + "release_date": "2024-09-19", "last_updated": "2025-11-25", "cost": { - "input": 0.2, - "output": 1.5 + "input": 0.18, + "output": 0.18 } }, { - "id": "qwen-qwen2.5-vl-72b-instruct", - "name": "Qwen/Qwen2.5-VL-72B-Instruct", - "display_name": "Qwen/Qwen2.5-VL-72B-Instruct", + "id": "qwen-qwen2.5-7b-instruct", + "name": "Qwen/Qwen2.5-7B-Instruct", + "display_name": "Qwen/Qwen2.5-7B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 131000, + "context": 33000, "output": 4000 }, "temperature": true, @@ -15451,19 +16363,19 @@ "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-01-28", + "release_date": "2024-09-18", "last_updated": "2025-11-25", "cost": { - "input": 0.59, - "output": 0.59 + "input": 0.05, + "output": 0.05 } }, { - "id": "thudm-glm-z1-32b-0414", - "name": "THUDM/GLM-Z1-32B-0414", - "display_name": "THUDM/GLM-Z1-32B-0414", + "id": "openai-gpt-oss-20b", + "name": "openai/gpt-oss-20b", + "display_name": "openai/gpt-oss-20b", "modalities": { "input": [ "text" @@ -15474,27 +16386,26 @@ }, "limit": { "context": 131000, - "output": 131000 + "output": 8000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-04-18", + "release_date": "2025-08-13", "last_updated": "2025-11-25", "cost": { - "input": 0.14, - "output": 0.57 + "input": 0.04, + "output": 0.18 } }, { - "id": "inclusionai-ring-flash-2.0", - "name": "inclusionAI/Ring-flash-2.0", - "display_name": "inclusionAI/Ring-flash-2.0", + "id": "deepseek-ai-deepseek-v3", + "name": "deepseek-ai/DeepSeek-V3", + "display_name": "deepseek-ai/DeepSeek-V3", "modalities": { "input": [ "text" @@ -15504,59 +16415,58 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 164000, + "output": 164000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-09-29", + "release_date": "2024-12-26", "last_updated": "2025-11-25", "cost": { - "input": 0.14, - "output": 0.57 + "input": 0.25, + "output": 1 } }, { - "id": "zai-org-glm-4.5v", - "name": "zai-org/GLM-4.5V", - "display_name": "zai-org/GLM-4.5V", + "id": "deepseek-ai-deepseek-r1-distill-qwen-14b", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 66000, - "output": 66000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-08-13", + "release_date": "2025-01-20", "last_updated": "2025-11-25", "cost": { - "input": 0.14, - "output": 0.86 + "input": 0.1, + "output": 0.1 } }, { - "id": "qwen-qwen3-30b-a3b-instruct-2507", - "name": "Qwen/Qwen3-30B-A3B-Instruct-2507", - "display_name": "Qwen/Qwen3-30B-A3B-Instruct-2507", + "id": "zai-org-glm-4.5", + "name": "zai-org/GLM-4.5", + "display_name": "zai-org/GLM-4.5", "modalities": { "input": [ "text" @@ -15566,8 +16476,8 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -15576,47 +16486,48 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-07-30", + "release_date": "2025-07-28", "last_updated": "2025-11-25", "cost": { - "input": 0.09, - "output": 0.3 + "input": 0.4, + "output": 2 } }, { - "id": "z-ai-glm-4.5", - "name": "z-ai/GLM-4.5", - "display_name": "z-ai/GLM-4.5", + "id": "qwen-qwen3-vl-235b-a22b-instruct", + "name": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "display_name": "Qwen/Qwen3-VL-235B-A22B-Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-07-28", + "release_date": "2025-10-04", "last_updated": "2025-11-25", "cost": { - "input": 0.4, - "output": 2 + "input": 0.3, + "output": 1.5 } }, { - "id": "deepseek-ai-deepseek-v3.1", - "name": "deepseek-ai/DeepSeek-V3.1", - "display_name": "deepseek-ai/DeepSeek-V3.1", + "id": "qwen-qwen3-next-80b-a3b-thinking", + "name": "Qwen/Qwen3-Next-80B-A3B-Thinking", + "display_name": "Qwen/Qwen3-Next-80B-A3B-Thinking", "modalities": { "input": [ "text" @@ -15626,8 +16537,8 @@ ] }, "limit": { - "context": 164000, - "output": 164000 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, @@ -15637,28 +16548,29 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-08-25", + "release_date": "2025-09-25", "last_updated": "2025-11-25", "cost": { - "input": 0.27, - "output": 1 + "input": 0.14, + "output": 0.57 } }, { - "id": "deepseek-ai-deepseek-r1", - "name": "deepseek-ai/DeepSeek-R1", - "display_name": "deepseek-ai/DeepSeek-R1", + "id": "thudm-glm-4.1v-9b-thinking", + "name": "THUDM/GLM-4.1V-9B-Thinking", + "display_name": "THUDM/GLM-4.1V-9B-Thinking", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 164000, - "output": 164000 + "context": 66000, + "output": 66000 }, "temperature": true, "tool_call": true, @@ -15666,49 +16578,50 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-05-28", + "release_date": "2025-07-04", "last_updated": "2025-11-25", "cost": { - "input": 0.5, - "output": 2.18 + "input": 0.035, + "output": 0.14 } }, { - "id": "qwen-qwen3-14b", - "name": "Qwen/Qwen3-14B", - "display_name": "Qwen/Qwen3-14B", + "id": "stepfun-ai-step3", + "name": "stepfun-ai/step3", + "display_name": "stepfun-ai/step3", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 66000, + "output": 66000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-04-30", + "release_date": "2025-08-06", "last_updated": "2025-11-25", "cost": { - "input": 0.07, - "output": 0.28 + "input": 0.57, + "output": 1.42 } }, { - "id": "qwen-qwen3-30b-a3b-thinking-2507", - "name": "Qwen/Qwen3-30B-A3B-Thinking-2507", - "display_name": "Qwen/Qwen3-30B-A3B-Thinking-2507", + "id": "qwen-qwq-32b", + "name": "Qwen/QwQ-32B", + "display_name": "Qwen/QwQ-32B", "modalities": { "input": [ "text" @@ -15718,7 +16631,7 @@ ] }, "limit": { - "context": 262000, + "context": 131000, "output": 131000 }, "temperature": true, @@ -15729,17 +16642,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-07-31", + "release_date": "2025-03-06", "last_updated": "2025-11-25", "cost": { - "input": 0.09, - "output": 0.3 + "input": 0.15, + "output": 0.58 } }, { - "id": "moonshotai-kimi-k2-instruct-0905", - "name": "moonshotai/Kimi-K2-Instruct-0905", - "display_name": "moonshotai/Kimi-K2-Instruct-0905", + "id": "qwen-qwen3-coder-30b-a3b-instruct", + "name": "Qwen/Qwen3-Coder-30B-A3B-Instruct", + "display_name": "Qwen/Qwen3-Coder-30B-A3B-Instruct", "modalities": { "input": [ "text" @@ -15759,49 +16672,47 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-09-08", + "release_date": "2025-08-01", "last_updated": "2025-11-25", "cost": { - "input": 0.4, - "output": 2 + "input": 0.07, + "output": 0.28 } }, { - "id": "qwen-qwen3-omni-30b-a3b-instruct", - "name": "Qwen/Qwen3-Omni-30B-A3B-Instruct", - "display_name": "Qwen/Qwen3-Omni-30B-A3B-Instruct", + "id": "thudm-glm-4-9b-0414", + "name": "THUDM/GLM-4-9B-0414", + "display_name": "THUDM/GLM-4-9B-0414", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 66000, - "output": 66000 + "context": 33000, + "output": 33000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-10-04", + "release_date": "2025-04-18", "last_updated": "2025-11-25", "cost": { - "input": 0.1, - "output": 0.4 + "input": 0.086, + "output": 0.086 } }, { - "id": "qwen-qwen3-coder-480b-a35b-instruct", - "name": "Qwen/Qwen3-Coder-480B-A35B-Instruct", - "display_name": "Qwen/Qwen3-Coder-480B-A35B-Instruct", + "id": "zai-org-glm-4.5-air", + "name": "zai-org/GLM-4.5-Air", + "display_name": "zai-org/GLM-4.5-Air", "modalities": { "input": [ "text" @@ -15811,8 +16722,8 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -15821,17 +16732,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-07-31", + "release_date": "2025-07-28", "last_updated": "2025-11-25", "cost": { - "input": 0.25, - "output": 1 + "input": 0.14, + "output": 0.86 } }, { - "id": "inclusionai-ling-mini-2.0", - "name": "inclusionAI/Ling-mini-2.0", - "display_name": "inclusionAI/Ling-mini-2.0", + "id": "deepseek-ai-deepseek-v3.1-terminus", + "name": "deepseek-ai/DeepSeek-V3.1-Terminus", + "display_name": "deepseek-ai/DeepSeek-V3.1-Terminus", "modalities": { "input": [ "text" @@ -15841,27 +16752,28 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 164000, + "output": 164000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-09-10", + "release_date": "2025-09-29", "last_updated": "2025-11-25", "cost": { - "input": 0.07, - "output": 0.28 + "input": 0.27, + "output": 1 } }, { - "id": "moonshotai-kimi-k2-instruct", - "name": "moonshotai/Kimi-K2-Instruct", - "display_name": "moonshotai/Kimi-K2-Instruct", + "id": "minimaxai-minimax-m1-80k", + "name": "MiniMaxAI/MiniMax-M1-80k", + "display_name": "MiniMaxAI/MiniMax-M1-80k", "modalities": { "input": [ "text" @@ -15877,21 +16789,22 @@ "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-07-13", + "release_date": "2025-06-17", "last_updated": "2025-11-25", "cost": { - "input": 0.58, - "output": 2.29 + "input": 0.55, + "output": 2.2 } }, { - "id": "inclusionai-ling-flash-2.0", - "name": "inclusionAI/Ling-flash-2.0", - "display_name": "inclusionAI/Ling-flash-2.0", + "id": "openai-gpt-oss-120b", + "name": "openai/gpt-oss-120b", + "display_name": "openai/gpt-oss-120b", "modalities": { "input": [ "text" @@ -15902,57 +16815,57 @@ }, "limit": { "context": 131000, - "output": 131000 + "output": 8000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-09-18", + "release_date": "2025-08-13", "last_updated": "2025-11-25", "cost": { - "input": 0.14, - "output": 0.57 + "input": 0.05, + "output": 0.45 } }, { - "id": "qwen-qwen3-vl-32b-instruct", - "name": "Qwen/Qwen3-VL-32B-Instruct", - "display_name": "Qwen/Qwen3-VL-32B-Instruct", + "id": "qwen-qwen3-30b-a3b", + "name": "Qwen/Qwen3-30B-A3B", + "display_name": "Qwen/Qwen3-30B-A3B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-10-21", + "release_date": "2025-04-30", "last_updated": "2025-11-25", "cost": { - "input": 0.2, - "output": 0.6 + "input": 0.09, + "output": 0.45 } }, { - "id": "qwen-qwen3-235b-a22b-thinking-2507", - "name": "Qwen/Qwen3-235B-A22B-Thinking-2507", - "display_name": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "id": "tencent-hunyuan-mt-7b", + "name": "tencent/Hunyuan-MT-7B", + "display_name": "tencent/Hunyuan-MT-7B", "modalities": { "input": [ "text" @@ -15962,28 +16875,27 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 33000, + "output": 33000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-07-28", + "release_date": "2025-09-18", "last_updated": "2025-11-25", "cost": { - "input": 0.13, - "output": 0.6 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen2.5-vl-32b-instruct", - "name": "Qwen/Qwen2.5-VL-32B-Instruct", - "display_name": "Qwen/Qwen2.5-VL-32B-Instruct", + "id": "qwen-qwen3-vl-32b-thinking", + "name": "Qwen/Qwen3-VL-32B-Thinking", + "display_name": "Qwen/Qwen3-VL-32B-Thinking", "modalities": { "input": [ "text", @@ -15994,38 +16906,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 - }, - "temperature": true, - "tool_call": true, - "reasoning": { - "supported": false - }, - "attachment": true, - "open_weights": false, - "release_date": "2025-03-24", - "last_updated": "2025-11-25", - "cost": { - "input": 0.27, - "output": 0.27 - } - }, - { - "id": "deepseek-ai-deepseek-v3.2-exp", - "name": "deepseek-ai/DeepSeek-V3.2-Exp", - "display_name": "deepseek-ai/DeepSeek-V3.2-Exp", - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "limit": { - "context": 164000, - "output": 164000 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, @@ -16033,19 +16915,19 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-10-10", + "release_date": "2025-10-21", "last_updated": "2025-11-25", "cost": { - "input": 0.27, - "output": 0.41 + "input": 0.2, + "output": 1.5 } }, { - "id": "qwen-qwen3-vl-30b-a3b-thinking", - "name": "Qwen/Qwen3-VL-30B-A3B-Thinking", - "display_name": "Qwen/Qwen3-VL-30B-A3B-Thinking", + "id": "qwen-qwen2.5-vl-72b-instruct", + "name": "Qwen/Qwen2.5-VL-72B-Instruct", + "display_name": "Qwen/Qwen2.5-VL-72B-Instruct", "modalities": { "input": [ "text", @@ -16056,28 +16938,27 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2025-10-11", + "release_date": "2025-01-28", "last_updated": "2025-11-25", "cost": { - "input": 0.29, - "output": 1 + "input": 0.59, + "output": 0.59 } }, { - "id": "thudm-glm-z1-9b-0414", - "name": "THUDM/GLM-Z1-9B-0414", - "display_name": "THUDM/GLM-Z1-9B-0414", + "id": "thudm-glm-z1-32b-0414", + "name": "THUDM/GLM-Z1-32B-0414", + "display_name": "THUDM/GLM-Z1-32B-0414", "modalities": { "input": [ "text" @@ -16101,26 +16982,25 @@ "release_date": "2025-04-18", "last_updated": "2025-11-25", "cost": { - "input": 0.086, - "output": 0.086 + "input": 0.14, + "output": 0.57 } }, { - "id": "qwen-qwen3-vl-235b-a22b-thinking", - "name": "Qwen/Qwen3-VL-235B-A22B-Thinking", - "display_name": "Qwen/Qwen3-VL-235B-A22B-Thinking", + "id": "inclusionai-ring-flash-2.0", + "name": "inclusionAI/Ring-flash-2.0", + "display_name": "inclusionAI/Ring-flash-2.0", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -16128,22 +17008,23 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-10-04", + "release_date": "2025-09-29", "last_updated": "2025-11-25", "cost": { - "input": 0.45, - "output": 3.5 + "input": 0.14, + "output": 0.57 } }, { - "id": "qwen-qwen3-omni-30b-a3b-captioner", - "name": "Qwen/Qwen3-Omni-30B-A3B-Captioner", - "display_name": "Qwen/Qwen3-Omni-30B-A3B-Captioner", + "id": "zai-org-glm-4.5v", + "name": "zai-org/GLM-4.5V", + "display_name": "zai-org/GLM-4.5V", "modalities": { "input": [ - "audio" + "text", + "image" ], "output": [ "text" @@ -16160,17 +17041,17 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-10-04", + "release_date": "2025-08-13", "last_updated": "2025-11-25", "cost": { - "input": 0.1, - "output": 0.4 + "input": 0.14, + "output": 0.86 } }, { - "id": "qwen-qwen2.5-coder-32b-instruct", - "name": "Qwen/Qwen2.5-Coder-32B-Instruct", - "display_name": "Qwen/Qwen2.5-Coder-32B-Instruct", + "id": "qwen-qwen3-30b-a3b-instruct-2507", + "name": "Qwen/Qwen3-30B-A3B-Instruct-2507", + "display_name": "Qwen/Qwen3-30B-A3B-Instruct-2507", "modalities": { "input": [ "text" @@ -16180,8 +17061,8 @@ ] }, "limit": { - "context": 33000, - "output": 4000 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, @@ -16190,17 +17071,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2024-11-11", + "release_date": "2025-07-30", "last_updated": "2025-11-25", "cost": { - "input": 0.18, - "output": 0.18 + "input": 0.09, + "output": 0.3 } }, { - "id": "moonshotai-kimi-dev-72b", - "name": "moonshotai/Kimi-Dev-72B", - "display_name": "moonshotai/Kimi-Dev-72B", + "id": "z-ai-glm-4.5", + "name": "z-ai/GLM-4.5", + "display_name": "z-ai/GLM-4.5", "modalities": { "input": [ "text" @@ -16220,48 +17101,48 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-06-19", + "release_date": "2025-07-28", "last_updated": "2025-11-25", "cost": { - "input": 0.29, - "output": 1.15 + "input": 0.4, + "output": 2 } }, { - "id": "deepseek-ai-deepseek-vl2", - "name": "deepseek-ai/deepseek-vl2", - "display_name": "deepseek-ai/deepseek-vl2", + "id": "deepseek-ai-deepseek-v3.1", + "name": "deepseek-ai/DeepSeek-V3.1", + "display_name": "deepseek-ai/DeepSeek-V3.1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 4000, - "output": 4000 + "context": 164000, + "output": 164000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2024-12-13", + "release_date": "2025-08-25", "last_updated": "2025-11-25", "cost": { - "input": 0.15, - "output": 0.15 + "input": 0.27, + "output": 1 } }, { - "id": "qwen-qwen2.5-72b-instruct-128k", - "name": "Qwen/Qwen2.5-72B-Instruct-128K", - "display_name": "Qwen/Qwen2.5-72B-Instruct-128K", + "id": "deepseek-ai-deepseek-r1", + "name": "deepseek-ai/DeepSeek-R1", + "display_name": "deepseek-ai/DeepSeek-R1", "modalities": { "input": [ "text" @@ -16271,27 +17152,28 @@ ] }, "limit": { - "context": 131000, - "output": 4000 + "context": 164000, + "output": 164000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2024-09-18", + "release_date": "2025-05-28", "last_updated": "2025-11-25", "cost": { - "input": 0.59, - "output": 0.59 + "input": 0.5, + "output": 2.18 } }, { - "id": "z-ai-glm-4.5-air", - "name": "z-ai/GLM-4.5-Air", - "display_name": "z-ai/GLM-4.5-Air", + "id": "qwen-qwen3-14b", + "name": "Qwen/Qwen3-14B", + "display_name": "Qwen/Qwen3-14B", "modalities": { "input": [ "text" @@ -16311,17 +17193,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-07-28", + "release_date": "2025-04-30", "last_updated": "2025-11-25", "cost": { - "input": 0.14, - "output": 0.86 + "input": 0.07, + "output": 0.28 } }, { - "id": "deepseek-ai-deepseek-r1-distill-qwen-7b", - "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", - "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "id": "qwen-qwen3-30b-a3b-thinking-2507", + "name": "Qwen/Qwen3-30B-A3B-Thinking-2507", + "display_name": "Qwen/Qwen3-30B-A3B-Thinking-2507", "modalities": { "input": [ "text" @@ -16331,8 +17213,8 @@ ] }, "limit": { - "context": 33000, - "output": 16000 + "context": 262000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -16342,17 +17224,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-01-20", + "release_date": "2025-07-31", "last_updated": "2025-11-25", "cost": { - "input": 0.05, - "output": 0.05 + "input": 0.09, + "output": 0.3 } }, { - "id": "stepfun-ai/step3", - "name": "stepfun-ai/step3", - "display_name": "stepfun-ai/step3", + "id": "moonshotai-kimi-k2-instruct-0905", + "name": "moonshotai/Kimi-K2-Instruct-0905", + "display_name": "moonshotai/Kimi-K2-Instruct-0905", "modalities": { "input": [ "text" @@ -16362,84 +17244,119 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 262000, + "output": 262000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2025-09-08", + "last_updated": "2025-11-25", + "cost": { + "input": 0.4, + "output": 2 + } }, { - "id": "ascend-tribe/pangu-pro-moe", - "name": "ascend-tribe/pangu-pro-moe", - "display_name": "ascend-tribe/pangu-pro-moe", + "id": "qwen-qwen3-omni-30b-a3b-instruct", + "name": "Qwen/Qwen3-Omni-30B-A3B-Instruct", + "display_name": "Qwen/Qwen3-Omni-30B-A3B-Instruct", "modalities": { "input": [ - "text" + "text", + "image", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 66000, + "output": 66000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", + "cost": { + "input": 0.1, + "output": 0.4 + } }, { - "id": "netease-youdao/bce-embedding-base_v1", - "name": "netease-youdao/bce-embedding-base_v1", - "display_name": "netease-youdao/bce-embedding-base_v1", + "id": "qwen-qwen3-coder-480b-a35b-instruct", + "name": "Qwen/Qwen3-Coder-480B-A35B-Instruct", + "display_name": "Qwen/Qwen3-Coder-480B-A35B-Instruct", "modalities": { "input": [ "text" ], "output": [ - "embedding" + "text" ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 262000, + "output": 262000 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "embedding" + "attachment": false, + "open_weights": false, + "release_date": "2025-07-31", + "last_updated": "2025-11-25", + "cost": { + "input": 0.25, + "output": 1 + } }, { - "id": "netease-youdao/bce-reranker-base_v1", - "name": "netease-youdao/bce-reranker-base_v1", - "display_name": "netease-youdao/bce-reranker-base_v1", + "id": "inclusionai-ling-mini-2.0", + "name": "inclusionAI/Ling-mini-2.0", + "display_name": "inclusionAI/Ling-mini-2.0", "modalities": { "input": [ "text" ], "output": [ - "score" + "text" ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 131000, + "output": 131000 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-09-10", + "last_updated": "2025-11-25", + "cost": { + "input": 0.07, + "output": 0.28 } }, { - "id": "deepseek-ai/deepseek-vl2", - "name": "deepseek-ai/deepseek-vl2", - "display_name": "deepseek-ai/deepseek-vl2", + "id": "moonshotai-kimi-k2-instruct", + "name": "moonshotai/Kimi-K2-Instruct", + "display_name": "moonshotai/Kimi-K2-Instruct", "modalities": { "input": [ "text" @@ -16449,19 +17366,27 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 131000, + "output": 131000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2025-07-13", + "last_updated": "2025-11-25", + "cost": { + "input": 0.58, + "output": 2.29 + } }, { - "id": "internlm/internlm2_5-7b-chat", - "name": "internlm/internlm2_5-7b-chat", - "display_name": "internlm/internlm2_5-7b-chat", + "id": "inclusionai-ling-flash-2.0", + "name": "inclusionAI/Ling-flash-2.0", + "display_name": "inclusionAI/Ling-flash-2.0", "modalities": { "input": [ "text" @@ -16471,96 +17396,151 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 131000, + "output": 131000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2025-09-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0.14, + "output": 0.57 + } }, { - "id": "stabilityai/stable-diffusion-xl-base-1.0", - "name": "stabilityai/stable-diffusion-xl-base-1.0", - "display_name": "stabilityai/stable-diffusion-xl-base-1.0", + "id": "qwen-qwen3-vl-32b-instruct", + "name": "Qwen/Qwen3-VL-32B-Instruct", + "display_name": "Qwen/Qwen3-VL-32B-Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ - "image" + "text" ] }, - "tool_call": false, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-10-21", + "last_updated": "2025-11-25", + "cost": { + "input": 0.2, + "output": 0.6 } }, { - "id": "stabilityai/stable-diffusion-3-5-large", - "name": "stabilityai/stable-diffusion-3-5-large", - "display_name": "stabilityai/stable-diffusion-3-5-large", + "id": "qwen-qwen3-235b-a22b-thinking-2507", + "name": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "display_name": "Qwen/Qwen3-235B-A22B-Thinking-2507", "modalities": { "input": [ "text" ], "output": [ - "image" + "text" ] }, - "tool_call": false, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-07-28", + "last_updated": "2025-11-25", + "cost": { + "input": 0.13, + "output": 0.6 } }, { - "id": "fishaudio/fish-speech-1.4", - "name": "fishaudio/fish-speech-1.4", - "display_name": "fishaudio/fish-speech-1.4", + "id": "qwen-qwen2.5-vl-32b-instruct", + "name": "Qwen/Qwen2.5-VL-32B-Instruct", + "display_name": "Qwen/Qwen2.5-VL-32B-Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ - "audio" + "text" ] }, - "tool_call": false, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-03-24", + "last_updated": "2025-11-25", + "cost": { + "input": 0.27, + "output": 0.27 } }, { - "id": "fishaudio/fish-speech-1.5", - "name": "fishaudio/fish-speech-1.5", - "display_name": "fishaudio/fish-speech-1.5", + "id": "deepseek-ai-deepseek-v3.2-exp", + "name": "deepseek-ai/DeepSeek-V3.2-Exp", + "display_name": "deepseek-ai/DeepSeek-V3.2-Exp", "modalities": { "input": [ "text" ], "output": [ - "audio" + "text" ] }, - "tool_call": false, + "limit": { + "context": 164000, + "output": 164000 + }, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-10-10", + "last_updated": "2025-11-25", + "cost": { + "input": 0.27, + "output": 0.41 } - } - ] - }, - "chutes": { - "id": "chutes", - "name": "Chutes", - "display_name": "Chutes", - "api": "https://llm.chutes.ai/v1", - "doc": "https://llm.chutes.ai/v1/models", - "models": [ + }, { - "id": "rednote-hilab/dots.ocr", - "name": "Dots.Ocr", - "display_name": "Dots.Ocr", + "id": "qwen-qwen3-vl-30b-a3b-thinking", + "name": "Qwen/Qwen3-VL-30B-A3B-Thinking", + "display_name": "Qwen/Qwen3-VL-30B-A3B-Thinking", "modalities": { "input": [ "text", @@ -16571,27 +17551,28 @@ ] }, "limit": { - "context": 131072, - "output": 131072 - }, + "context": 262000, + "output": 262000 + }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "release_date": "2025-11-08", - "last_updated": "2025-11-08", + "attachment": true, + "open_weights": false, + "release_date": "2025-10-11", + "last_updated": "2025-11-25", "cost": { - "input": 0.01, - "output": 0.01 + "input": 0.29, + "output": 1 } }, { - "id": "openai/gpt-oss-20b", - "name": "Gpt Oss 20b", - "display_name": "Gpt Oss 20b", + "id": "thudm-glm-z1-9b-0414", + "name": "THUDM/GLM-Z1-9B-0414", + "display_name": "THUDM/GLM-Z1-9B-0414", "modalities": { "input": [ "text" @@ -16601,8 +17582,8 @@ ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -16611,29 +17592,30 @@ "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2025-11-08", - "last_updated": "2025-11-08", + "open_weights": false, + "release_date": "2025-04-18", + "last_updated": "2025-11-25", "cost": { - "input": 0, - "output": 0 + "input": 0.086, + "output": 0.086 } }, { - "id": "openai/gpt-oss-120b", - "name": "GPT OSS 120B", - "display_name": "GPT OSS 120B", + "id": "qwen-qwen3-vl-235b-a22b-thinking", + "name": "Qwen/Qwen3-VL-235B-A22B-Thinking", + "display_name": "Qwen/Qwen3-VL-235B-A22B-Thinking", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, @@ -16641,93 +17623,90 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-11-08", + "attachment": true, + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", "cost": { - "input": 0.04, - "output": 0.4 + "input": 0.45, + "output": 3.5 } }, { - "id": "unsloth/gemma-3-4b-it", - "name": "Gemma 3 4b It", - "display_name": "Gemma 3 4b It", + "id": "qwen-qwen3-omni-30b-a3b-captioner", + "name": "Qwen/Qwen3-Omni-30B-A3B-Captioner", + "display_name": "Qwen/Qwen3-Omni-30B-A3B-Captioner", "modalities": { "input": [ - "text", - "image" + "audio" ], "output": [ "text" ] }, "limit": { - "context": 96000, - "output": 96000 + "context": 66000, + "output": 66000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "release_date": "2025-11-08", - "last_updated": "2025-11-08", + "attachment": true, + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", "cost": { - "input": 0, - "output": 0 + "input": 0.1, + "output": 0.4 } }, { - "id": "unsloth/gemma-3-12b-it", - "name": "Gemma 3 12b It", - "display_name": "Gemma 3 12b It", + "id": "qwen-qwen2.5-coder-32b-instruct", + "name": "Qwen/Qwen2.5-Coder-32B-Instruct", + "display_name": "Qwen/Qwen2.5-Coder-32B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 33000, + "output": 4000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2025-11-08", - "last_updated": "2025-11-08", + "open_weights": false, + "release_date": "2024-11-11", + "last_updated": "2025-11-25", "cost": { - "input": 0.03, - "output": 0.1 + "input": 0.18, + "output": 0.18 } }, { - "id": "unsloth/gemma-3-27b-it", - "name": "Gemma 3 27b It", - "display_name": "Gemma 3 27b It", + "id": "moonshotai-kimi-dev-72b", + "name": "moonshotai/Kimi-Dev-72B", + "display_name": "moonshotai/Kimi-Dev-72B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 96000, - "output": 96000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -16735,82 +17714,60 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2025-11-08", - "last_updated": "2025-12-11", + "open_weights": false, + "release_date": "2025-06-19", + "last_updated": "2025-11-25", "cost": { - "input": 0.04, - "output": 0.15 + "input": 0.29, + "output": 1.15 } - } - ] - }, - "kimi-for-coding": { - "id": "kimi-for-coding", - "name": "Kimi For Coding", - "display_name": "Kimi For Coding", - "api": "https://api.kimi.com/coding/v1", - "doc": "https://www.kimi.com/coding/docs/en/third-party-agents.html", - "models": [ + }, { - "id": "kimi-k2-thinking", - "name": "Kimi K2 Thinking", - "display_name": "Kimi K2 Thinking", + "id": "deepseek-ai-deepseek-vl2", + "name": "deepseek-ai/deepseek-vl2", + "display_name": "deepseek-ai/deepseek-vl2", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 32768 + "context": 4000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-07", - "release_date": "2025-11", - "last_updated": "2025-12", + "attachment": true, + "open_weights": false, + "release_date": "2024-12-13", + "last_updated": "2025-11-25", "cost": { - "input": 0, - "output": 0, - "cache_read": 0, - "cache_write": 0 + "input": 0.15, + "output": 0.15 } - } - ] - }, - "cortecs": { - "id": "cortecs", - "name": "Cortecs", - "display_name": "Cortecs", - "api": "https://api.cortecs.ai/v1", - "doc": "https://api.cortecs.ai/v1/models", - "models": [ + }, { - "id": "nova-pro-v1", - "name": "Nova Pro 1.0", - "display_name": "Nova Pro 1.0", + "id": "qwen-qwen2.5-72b-instruct-128k", + "name": "Qwen/Qwen2.5-72B-Instruct-128K", + "display_name": "Qwen/Qwen2.5-72B-Instruct-128K", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 300000, - "output": 5000 + "context": 131000, + "output": 4000 }, "temperature": true, "tool_call": true, @@ -16819,18 +17776,17 @@ }, "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-12-03", - "last_updated": "2024-12-03", + "release_date": "2024-09-18", + "last_updated": "2025-11-25", "cost": { - "input": 1.016, - "output": 4.061 + "input": 0.59, + "output": 0.59 } }, { - "id": "devstral-2512", - "name": "Devstral 2 2512", - "display_name": "Devstral 2 2512", + "id": "z-ai-glm-4.5-air", + "name": "z-ai/GLM-4.5-Air", + "display_name": "z-ai/GLM-4.5-Air", "modalities": { "input": [ "text" @@ -16840,8 +17796,8 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -16849,19 +17805,18 @@ "supported": false }, "attachment": false, - "open_weights": true, - "knowledge": "2025-12", - "release_date": "2025-12-09", - "last_updated": "2025-12-09", + "open_weights": false, + "release_date": "2025-07-28", + "last_updated": "2025-11-25", "cost": { - "input": 0, - "output": 0 + "input": 0.14, + "output": 0.86 } }, { - "id": "intellect-3", - "name": "INTELLECT 3", - "display_name": "INTELLECT 3", + "id": "deepseek-ai-deepseek-r1-distill-qwen-7b", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", "modalities": { "input": [ "text" @@ -16871,8 +17826,8 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 33000, + "output": 16000 }, "temperature": true, "tool_call": true, @@ -16880,54 +17835,42 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": true, - "knowledge": "2025-11", - "release_date": "2025-11-26", - "last_updated": "2025-11-26", + "attachment": false, + "open_weights": false, + "release_date": "2025-01-20", + "last_updated": "2025-11-25", "cost": { - "input": 0.219, - "output": 1.202 + "input": 0.05, + "output": 0.05 } }, { - "id": "claude-4-5-sonnet", - "name": "Claude 4.5 Sonnet", - "display_name": "Claude 4.5 Sonnet", + "id": "deepseek-ai/DeepSeek-V3.1-Terminus", + "name": "deepseek-ai/DeepSeek-V3.1-Terminus", + "display_name": "deepseek-ai/DeepSeek-V3.1-Terminus", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 200000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-07-31", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", - "cost": { - "input": 3.259, - "output": 16.296 - } + "type": "chat" }, { - "id": "deepseek-v3-0324", - "name": "DeepSeek V3 0324", - "display_name": "DeepSeek V3 0324", + "id": "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", + "name": "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", + "display_name": "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", "modalities": { "input": [ "text" @@ -16937,28 +17880,20 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-03-24", - "last_updated": "2025-03-24", - "cost": { - "input": 0.551, - "output": 1.654 - } + "type": "chat" }, { - "id": "kimi-k2-thinking", - "name": "Kimi K2 Thinking", - "display_name": "Kimi K2 Thinking", + "id": "deepseek-ai/DeepSeek-V3.2-Exp", + "name": "deepseek-ai/DeepSeek-V3.2-Exp", + "display_name": "deepseek-ai/DeepSeek-V3.2-Exp", "modalities": { "input": [ "text" @@ -16968,29 +17903,19 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": true, - "knowledge": "2025-12", - "release_date": "2025-12-08", - "last_updated": "2025-12-08", - "cost": { - "input": 0.656, - "output": 2.731 - } + "type": "chat" }, { - "id": "kimi-k2-instruct", - "name": "Kimi K2 Instruct", - "display_name": "Kimi K2 Instruct", + "id": "Pro/deepseek-ai/DeepSeek-V3.2-Exp", + "name": "Pro/deepseek-ai/DeepSeek-V3.2-Exp", + "display_name": "Pro/deepseek-ai/DeepSeek-V3.2-Exp", "modalities": { "input": [ "text" @@ -17000,92 +17925,65 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-07-11", - "last_updated": "2025-09-05", - "cost": { - "input": 0.551, - "output": 2.646 - } + "type": "chat" }, { - "id": "gpt-4.1", - "name": "GPT 4.1", - "display_name": "GPT 4.1", + "id": "deepseek-ai/DeepSeek-R1", + "name": "deepseek-ai/DeepSeek-R1", + "display_name": "deepseek-ai/DeepSeek-R1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-06", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", - "cost": { - "input": 2.354, - "output": 9.417 - } + "type": "chat" }, { - "id": "gemini-2.5-pro", - "name": "Gemini 2.5 Pro", - "display_name": "Gemini 2.5 Pro", + "id": "Pro/deepseek-ai/DeepSeek-R1", + "name": "Pro/deepseek-ai/DeepSeek-R1", + "display_name": "Pro/deepseek-ai/DeepSeek-R1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65535 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-03-20", - "last_updated": "2025-06-17", - "cost": { - "input": 1.654, - "output": 11.024 - } + "type": "chat" }, { - "id": "gpt-oss-120b", - "name": "GPT Oss 120b", - "display_name": "GPT Oss 120b", + "id": "deepseek-ai/DeepSeek-V3", + "name": "deepseek-ai/DeepSeek-V3", + "display_name": "deepseek-ai/DeepSeek-V3", "modalities": { "input": [ "text" @@ -17095,60 +17993,41 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-01", - "release_date": "2025-08-05", - "last_updated": "2025-08-05", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "devstral-small-2512", - "name": "Devstral Small 2 2512", - "display_name": "Devstral Small 2 2512", + "id": "Pro/deepseek-ai/DeepSeek-V3", + "name": "Pro/deepseek-ai/DeepSeek-V3", + "display_name": "Pro/deepseek-ai/DeepSeek-V3", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-12", - "release_date": "2025-12-09", - "last_updated": "2025-12-09", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "qwen3-coder-480b-a35b-instruct", - "name": "Qwen3 Coder 480B A35B Instruct", - "display_name": "Qwen3 Coder 480B A35B Instruct", + "id": "inclusionAI/Ring-1T", + "name": "inclusionAI/Ring-1T", + "display_name": "inclusionAI/Ring-1T", "modalities": { "input": [ "text" @@ -17158,61 +18037,42 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-01", - "release_date": "2025-07-25", - "last_updated": "2025-07-25", - "cost": { - "input": 0.441, - "output": 1.984 - } + "type": "chat" }, { - "id": "claude-sonnet-4", - "name": "Claude Sonnet 4", - "display_name": "Claude Sonnet 4", + "id": "inclusionAI/Ling-1T", + "name": "inclusionAI/Ling-1T", + "display_name": "inclusionAI/Ling-1T", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2025-03", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", - "cost": { - "input": 3.307, - "output": 16.536 - } + "type": "chat" }, { - "id": "llama-3.1-405b-instruct", - "name": "Llama 3.1 405B Instruct", - "display_name": "Llama 3.1 405B Instruct", + "id": "zai-org/GLM-4.6", + "name": "zai-org/GLM-4.6", + "display_name": "zai-org/GLM-4.6", "modalities": { "input": [ "text" @@ -17222,28 +18082,19 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "qwen3-next-80b-a3b-thinking", - "name": "Qwen3 Next 80B A3B Thinking", - "display_name": "Qwen3 Next 80B A3B Thinking", + "id": "Qwen/Qwen3-VL-30B-A3B-Instruct", + "name": "Qwen/Qwen3-VL-30B-A3B-Instruct", + "display_name": "Qwen/Qwen3-VL-30B-A3B-Instruct", "modalities": { "input": [ "text" @@ -17253,29 +18104,19 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-09-11", - "last_updated": "2025-09-11", - "cost": { - "input": 0.164, - "output": 1.311 - } + "type": "chat" }, { - "id": "qwen3-32b", - "name": "Qwen3 32B", - "display_name": "Qwen3 32B", + "id": "Qwen/Qwen3-VL-30B-A3B-Thinking", + "name": "Qwen/Qwen3-VL-30B-A3B-Thinking", + "display_name": "Qwen/Qwen3-VL-30B-A3B-Thinking", "modalities": { "input": [ "text" @@ -17285,37 +18126,20 @@ ] }, "limit": { - "context": 16384, - "output": 16384 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-12", - "release_date": "2025-04-29", - "last_updated": "2025-04-29", - "cost": { - "input": 0.099, - "output": 0.33 - } - } - ] - }, - "github-models": { - "id": "github-models", - "name": "GitHub Models", - "display_name": "GitHub Models", - "api": "https://models.github.ai/inference", - "doc": "https://docs.github.com/en/github-models", - "models": [ + "type": "chat" + }, { - "id": "core42/jais-30b-chat", - "name": "JAIS 30b Chat", - "display_name": "JAIS 30b Chat", + "id": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "name": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "display_name": "Qwen/Qwen3-VL-235B-A22B-Instruct", "modalities": { "input": [ "text" @@ -17325,29 +18149,19 @@ ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-03", - "release_date": "2023-08-30", - "last_updated": "2023-08-30", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "xai/grok-3", - "name": "Grok 3", - "display_name": "Grok 3", + "id": "Qwen/Qwen3-VL-235B-A22B-Thinking", + "name": "Qwen/Qwen3-VL-235B-A22B-Thinking", + "display_name": "Qwen/Qwen3-VL-235B-A22B-Thinking", "modalities": { "input": [ "text" @@ -17357,29 +18171,20 @@ ] }, "limit": { - "context": 128000, + "context": 131072, "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-12-09", - "last_updated": "2024-12-09", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "xai/grok-3-mini", - "name": "Grok 3 Mini", - "display_name": "Grok 3 Mini", + "id": "Qwen/Qwen3-Omni-30B-A3B-Instruct", + "name": "Qwen/Qwen3-Omni-30B-A3B-Instruct", + "display_name": "Qwen/Qwen3-Omni-30B-A3B-Instruct", "modalities": { "input": [ "text" @@ -17389,29 +18194,19 @@ ] }, "limit": { - "context": 128000, + "context": 131072, "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-12-09", - "last_updated": "2024-12-09", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "cohere/cohere-command-r-08-2024", - "name": "Cohere Command R 08-2024", - "display_name": "Cohere Command R 08-2024", + "id": "Qwen/Qwen3-Omni-30B-A3B-Thinking", + "name": "Qwen/Qwen3-Omni-30B-A3B-Thinking", + "display_name": "Qwen/Qwen3-Omni-30B-A3B-Thinking", "modalities": { "input": [ "text" @@ -17421,29 +18216,20 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-03", - "release_date": "2024-08-01", - "last_updated": "2024-08-01", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "cohere/cohere-command-a", - "name": "Cohere Command A", - "display_name": "Cohere Command A", + "id": "Qwen/Qwen3-Omni-30B-A3B-Captioner", + "name": "Qwen/Qwen3-Omni-30B-A3B-Captioner", + "display_name": "Qwen/Qwen3-Omni-30B-A3B-Captioner", "modalities": { "input": [ "text" @@ -17453,29 +18239,19 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-03", - "release_date": "2024-11-01", - "last_updated": "2024-11-01", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "cohere/cohere-command-r-plus-08-2024", - "name": "Cohere Command R+ 08-2024", - "display_name": "Cohere Command R+ 08-2024", + "id": "moonshotai/Kimi-K2-Instruct-0905", + "name": "moonshotai/Kimi-K2-Instruct-0905", + "display_name": "moonshotai/Kimi-K2-Instruct-0905", "modalities": { "input": [ "text" @@ -17485,29 +18261,19 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-03", - "release_date": "2024-08-01", - "last_updated": "2024-08-01", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "cohere/cohere-command-r", - "name": "Cohere Command R", - "display_name": "Cohere Command R", + "id": "Pro/moonshotai/Kimi-K2-Instruct-0905", + "name": "Pro/moonshotai/Kimi-K2-Instruct-0905", + "display_name": "Pro/moonshotai/Kimi-K2-Instruct-0905", "modalities": { "input": [ "text" @@ -17517,29 +18283,19 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-03", - "release_date": "2024-03-11", - "last_updated": "2024-08-01", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "cohere/cohere-command-r-plus", - "name": "Cohere Command R+", - "display_name": "Cohere Command R+", + "id": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "name": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "display_name": "Qwen/Qwen3-Next-80B-A3B-Instruct", "modalities": { "input": [ "text" @@ -17549,29 +18305,19 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-03", - "release_date": "2024-04-04", - "last_updated": "2024-08-01", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "deepseek/deepseek-r1-0528", - "name": "DeepSeek-R1-0528", - "display_name": "DeepSeek-R1-0528", + "id": "Qwen/Qwen3-Next-80B-A3B-Thinking", + "name": "Qwen/Qwen3-Next-80B-A3B-Thinking", + "display_name": "Qwen/Qwen3-Next-80B-A3B-Thinking", "modalities": { "input": [ "text" @@ -17581,29 +18327,20 @@ ] }, "limit": { - "context": 65536, + "context": 131072, "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-06", - "release_date": "2025-05-28", - "last_updated": "2025-05-28", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "deepseek/deepseek-r1", - "name": "DeepSeek-R1", - "display_name": "DeepSeek-R1", + "id": "inclusionAI/Ring-flash-2.0", + "name": "inclusionAI/Ring-flash-2.0", + "display_name": "inclusionAI/Ring-flash-2.0", "modalities": { "input": [ "text" @@ -17613,29 +18350,20 @@ ] }, "limit": { - "context": 65536, + "context": 131072, "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-06", - "release_date": "2025-01-20", - "last_updated": "2025-01-20", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "deepseek/deepseek-v3-0324", - "name": "DeepSeek-V3-0324", - "display_name": "DeepSeek-V3-0324", + "id": "inclusionAI/Ling-flash-2.0", + "name": "inclusionAI/Ling-flash-2.0", + "display_name": "inclusionAI/Ling-flash-2.0", "modalities": { "input": [ "text" @@ -17645,158 +18373,94 @@ ] }, "limit": { - "context": 128000, + "context": 131072, "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-06", - "release_date": "2025-03-24", - "last_updated": "2025-03-24", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "mistral-ai/mistral-medium-2505", - "name": "Mistral Medium 3 (25.05)", - "display_name": "Mistral Medium 3 (25.05)", + "id": "inclusionAI/Ling-mini-2.0", + "name": "inclusionAI/Ling-mini-2.0", + "display_name": "inclusionAI/Ling-mini-2.0", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-09", - "release_date": "2025-05-01", - "last_updated": "2025-05-01", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "mistral-ai/ministral-3b", - "name": "Ministral 3B", - "display_name": "Ministral 3B", + "id": "Qwen/Qwen-Image-Edit-2509", + "name": "Qwen/Qwen-Image-Edit-2509", + "display_name": "Qwen/Qwen-Image-Edit-2509", "modalities": { "input": [ + "image", "text" ], "output": [ - "text" + "image" ] }, - "limit": { - "context": 128000, - "output": 8192 - }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true - }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-03", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", - "cost": { - "input": 0, - "output": 0 + "supported": false } }, { - "id": "mistral-ai/mistral-nemo", - "name": "Mistral Nemo", - "display_name": "Mistral Nemo", + "id": "Qwen/Qwen-Image-Edit", + "name": "Qwen/Qwen-Image-Edit", + "display_name": "Qwen/Qwen-Image-Edit", "modalities": { "input": [ + "image", "text" ], "output": [ - "text" + "image" ] }, - "limit": { - "context": 128000, - "output": 8192 - }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true - }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-03", - "release_date": "2024-07-18", - "last_updated": "2024-07-18", - "cost": { - "input": 0, - "output": 0 + "supported": false } }, { - "id": "mistral-ai/mistral-large-2411", - "name": "Mistral Large 24.11", - "display_name": "Mistral Large 24.11", + "id": "Qwen/Qwen-Image", + "name": "Qwen/Qwen-Image", + "display_name": "Qwen/Qwen-Image", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, - "limit": { - "context": 128000, - "output": 32768 - }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true - }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-09", - "release_date": "2024-11-01", - "last_updated": "2024-11-01", - "cost": { - "input": 0, - "output": 0 + "supported": false } }, { - "id": "mistral-ai/codestral-2501", - "name": "Codestral 25.01", - "display_name": "Codestral 25.01", + "id": "tencent/Hunyuan-MT-7B", + "name": "tencent/Hunyuan-MT-7B", + "display_name": "tencent/Hunyuan-MT-7B", "modalities": { "input": [ "text" @@ -17806,94 +18470,76 @@ ] }, "limit": { - "context": 32000, + "context": 131072, "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-03", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "mistral-ai/mistral-small-2503", - "name": "Mistral Small 3.1", - "display_name": "Mistral Small 3.1", + "id": "ByteDance-Seed/Seed-OSS-36B-Instruct", + "name": "ByteDance-Seed/Seed-OSS-36B-Instruct", + "display_name": "ByteDance-Seed/Seed-OSS-36B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-09", - "release_date": "2025-03-01", - "last_updated": "2025-03-01", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "microsoft/phi-3-medium-128k-instruct", - "name": "Phi-3-medium instruct (128k)", - "display_name": "Phi-3-medium instruct (128k)", + "id": "Wan-AI/Wan2.2-I2V-A14B", + "name": "Wan-AI/Wan2.2-I2V-A14B", + "display_name": "Wan-AI/Wan2.2-I2V-A14B", "modalities": { "input": [ + "image", "text" ], "output": [ - "text" + "video" ] }, - "limit": { - "context": 128000, - "output": 4096 - }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false + } + }, + { + "id": "Wan-AI/Wan2.2-T2V-A14B", + "name": "Wan-AI/Wan2.2-T2V-A14B", + "display_name": "Wan-AI/Wan2.2-T2V-A14B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "video" + ] }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", - "cost": { - "input": 0, - "output": 0 + "tool_call": false, + "reasoning": { + "supported": false } }, { - "id": "microsoft/phi-3-mini-4k-instruct", - "name": "Phi-3-mini instruct (4k)", - "display_name": "Phi-3-mini instruct (4k)", + "id": "zai-org/GLM-4.5V", + "name": "zai-org/GLM-4.5V", + "display_name": "zai-org/GLM-4.5V", "modalities": { "input": [ "text" @@ -17903,29 +18549,19 @@ ] }, "limit": { - "context": 4096, - "output": 1024 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "microsoft/phi-3-small-128k-instruct", - "name": "Phi-3-small instruct (128k)", - "display_name": "Phi-3-small instruct (128k)", + "id": "zai-org/GLM-4.5", + "name": "zai-org/GLM-4.5", + "display_name": "zai-org/GLM-4.5", "modalities": { "input": [ "text" @@ -17935,62 +18571,41 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "microsoft/phi-3.5-vision-instruct", - "name": "Phi-3.5-vision instruct (128k)", - "display_name": "Phi-3.5-vision instruct (128k)", + "id": "zai-org/GLM-4.5-Air", + "name": "zai-org/GLM-4.5-Air", + "display_name": "zai-org/GLM-4.5-Air", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-08-20", - "last_updated": "2024-08-20", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "microsoft/phi-4", - "name": "Phi-4", - "display_name": "Phi-4", + "id": "stepfun-ai/step3", + "name": "stepfun-ai/step3", + "display_name": "stepfun-ai/step3", "modalities": { "input": [ "text" @@ -18000,29 +18615,36 @@ ] }, "limit": { - "context": 16000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", - "cost": { - "input": 0, - "output": 0 + "type": "chat" + }, + { + "id": "TeleAI/TeleSpeechASR", + "name": "TeleAI/TeleSpeechASR", + "display_name": "TeleAI/TeleSpeechASR", + "modalities": { + "input": [ + "audio" + ], + "output": [ + "text" + ] + }, + "tool_call": false, + "reasoning": { + "supported": false } }, { - "id": "microsoft/phi-4-mini-reasoning", - "name": "Phi-4-mini-reasoning", - "display_name": "Phi-4-mini-reasoning", + "id": "Qwen/Qwen3-Coder-30B-A3B-Instruct", + "name": "Qwen/Qwen3-Coder-30B-A3B-Instruct", + "display_name": "Qwen/Qwen3-Coder-30B-A3B-Instruct", "modalities": { "input": [ "text" @@ -18032,29 +18654,18 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true - }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", - "cost": { - "input": 0, - "output": 0 + "supported": false } }, { - "id": "microsoft/phi-3-small-8k-instruct", - "name": "Phi-3-small instruct (8k)", - "display_name": "Phi-3-small instruct (8k)", + "id": "Qwen/Qwen3-Coder-480B-A35B-Instruct", + "name": "Qwen/Qwen3-Coder-480B-A35B-Instruct", + "display_name": "Qwen/Qwen3-Coder-480B-A35B-Instruct", "modalities": { "input": [ "text" @@ -18064,29 +18675,18 @@ ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true - }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", - "cost": { - "input": 0, - "output": 0 + "supported": false } }, { - "id": "microsoft/phi-3.5-mini-instruct", - "name": "Phi-3.5-mini instruct (128k)", - "display_name": "Phi-3.5-mini instruct (128k)", + "id": "Qwen/Qwen3-30B-A3B-Thinking-2507", + "name": "Qwen/Qwen3-30B-A3B-Thinking-2507", + "display_name": "Qwen/Qwen3-30B-A3B-Thinking-2507", "modalities": { "input": [ "text" @@ -18096,63 +18696,42 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-08-20", - "last_updated": "2024-08-20", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "microsoft/phi-4-multimodal-instruct", - "name": "Phi-4-multimodal-instruct", - "display_name": "Phi-4-multimodal-instruct", + "id": "Qwen/Qwen3-30B-A3B-Instruct-2507", + "name": "Qwen/Qwen3-30B-A3B-Instruct-2507", + "display_name": "Qwen/Qwen3-30B-A3B-Instruct-2507", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "microsoft/phi-3-mini-128k-instruct", - "name": "Phi-3-mini instruct (128k)", - "display_name": "Phi-3-mini instruct (128k)", + "id": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "name": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "display_name": "Qwen/Qwen3-235B-A22B-Thinking-2507", "modalities": { "input": [ "text" @@ -18162,29 +18741,20 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "microsoft/phi-3.5-moe-instruct", - "name": "Phi-3.5-MoE instruct (128k)", - "display_name": "Phi-3.5-MoE instruct (128k)", + "id": "Qwen/Qwen3-235B-A22B-Instruct-2507", + "name": "Qwen/Qwen3-235B-A22B-Instruct-2507", + "display_name": "Qwen/Qwen3-235B-A22B-Instruct-2507", "modalities": { "input": [ "text" @@ -18194,29 +18764,19 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-08-20", - "last_updated": "2024-08-20", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "microsoft/phi-4-mini-instruct", - "name": "Phi-4-mini-instruct", - "display_name": "Phi-4-mini-instruct", + "id": "THUDM/GLM-4.1V-9B-Thinking", + "name": "THUDM/GLM-4.1V-9B-Thinking", + "display_name": "THUDM/GLM-4.1V-9B-Thinking", "modalities": { "input": [ "text" @@ -18226,29 +18786,20 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "microsoft/phi-3-medium-4k-instruct", - "name": "Phi-3-medium instruct (4k)", - "display_name": "Phi-3-medium instruct (4k)", + "id": "Pro/THUDM/GLM-4.1V-9B-Thinking", + "name": "Pro/THUDM/GLM-4.1V-9B-Thinking", + "display_name": "Pro/THUDM/GLM-4.1V-9B-Thinking", "modalities": { "input": [ "text" @@ -18258,29 +18809,20 @@ ] }, "limit": { - "context": 4096, - "output": 1024 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "microsoft/phi-4-reasoning", - "name": "Phi-4-Reasoning", - "display_name": "Phi-4-Reasoning", + "id": "baidu/ERNIE-4.5-300B-A47B", + "name": "baidu/ERNIE-4.5-300B-A47B", + "display_name": "baidu/ERNIE-4.5-300B-A47B", "modalities": { "input": [ "text" @@ -18290,29 +18832,19 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "microsoft/mai-ds-r1", - "name": "MAI-DS-R1", - "display_name": "MAI-DS-R1", + "id": "tencent/Hunyuan-A13B-Instruct", + "name": "tencent/Hunyuan-A13B-Instruct", + "display_name": "tencent/Hunyuan-A13B-Instruct", "modalities": { "input": [ "text" @@ -18322,93 +18854,63 @@ ] }, "limit": { - "context": 65536, + "context": 131072, "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-06", - "release_date": "2025-01-20", - "last_updated": "2025-01-20", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "openai/gpt-4.1-nano", - "name": "GPT-4.1-nano", - "display_name": "GPT-4.1-nano", + "id": "moonshotai/Kimi-Dev-72B", + "name": "moonshotai/Kimi-Dev-72B", + "display_name": "moonshotai/Kimi-Dev-72B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "openai/gpt-4.1-mini", - "name": "GPT-4.1-mini", - "display_name": "GPT-4.1-mini", + "id": "MiniMaxAI/MiniMax-M1-80k", + "name": "MiniMaxAI/MiniMax-M1-80k", + "display_name": "MiniMaxAI/MiniMax-M1-80k", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "openai/o1-preview", - "name": "OpenAI o1-preview", - "display_name": "OpenAI o1-preview", + "id": "Tongyi-Zhiwen/QwenLong-L1-32B", + "name": "Tongyi-Zhiwen/QwenLong-L1-32B", + "display_name": "Tongyi-Zhiwen/QwenLong-L1-32B", "modalities": { "input": [ "text" @@ -18418,29 +18920,20 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 131072, + "output": 8192 }, - "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": false, - "knowledge": "2023-10", - "release_date": "2024-09-12", - "last_updated": "2024-09-12", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "openai/o3-mini", - "name": "OpenAI o3-mini", - "display_name": "OpenAI o3-mini", + "id": "deepseek-ai/DeepSeek-R1-0528-Qwen3-8B", + "name": "deepseek-ai/DeepSeek-R1-0528-Qwen3-8B", + "display_name": "deepseek-ai/DeepSeek-R1-0528-Qwen3-8B", "modalities": { "input": [ "text" @@ -18450,357 +18943,237 @@ ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 131072, + "output": 8192 }, - "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-01-31", - "last_updated": "2025-01-31", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "openai/gpt-4o", - "name": "GPT-4o", - "display_name": "GPT-4o", + "id": "Qwen/Qwen3-30B-A3B", + "name": "Qwen/Qwen3-30B-A3B", + "display_name": "Qwen/Qwen3-30B-A3B", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-10", - "release_date": "2024-05-13", - "last_updated": "2024-05-13", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "openai/gpt-4.1", - "name": "GPT-4.1", - "display_name": "GPT-4.1", + "id": "Qwen/Qwen3-32B", + "name": "Qwen/Qwen3-32B", + "display_name": "Qwen/Qwen3-32B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "openai/o4-mini", - "name": "OpenAI o4-mini", - "display_name": "OpenAI o4-mini", + "id": "Qwen/Qwen3-14B", + "name": "Qwen/Qwen3-14B", + "display_name": "Qwen/Qwen3-14B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 131072, + "output": 8192 }, - "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-01-31", - "last_updated": "2025-01-31", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "openai/o1", - "name": "OpenAI o1", - "display_name": "OpenAI o1", + "id": "Qwen/Qwen3-8B", + "name": "Qwen/Qwen3-8B", + "display_name": "Qwen/Qwen3-8B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 131072, + "output": 8192 }, - "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2023-10", - "release_date": "2024-09-12", - "last_updated": "2024-12-17", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "openai/o1-mini", - "name": "OpenAI o1-mini", - "display_name": "OpenAI o1-mini", + "id": "Qwen/Qwen3-Reranker-8B", + "name": "Qwen/Qwen3-Reranker-8B", + "display_name": "Qwen/Qwen3-Reranker-8B", "modalities": { "input": [ "text" ], "output": [ - "text" + "score" ] }, "limit": { - "context": 128000, - "output": 65536 + "context": 8192, + "output": 2048 }, - "temperature": false, "tool_call": false, "reasoning": { - "supported": true, - "default": true - }, - "attachment": false, - "open_weights": false, - "knowledge": "2023-10", - "release_date": "2024-09-12", - "last_updated": "2024-12-17", - "cost": { - "input": 0, - "output": 0 + "supported": false } }, { - "id": "openai/o3", - "name": "OpenAI o3", - "display_name": "OpenAI o3", + "id": "Qwen/Qwen3-Embedding-8B", + "name": "Qwen/Qwen3-Embedding-8B", + "display_name": "Qwen/Qwen3-Embedding-8B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text" + "embedding" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 8192, + "output": 2048 }, - "temperature": false, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-01-31", - "last_updated": "2025-01-31", - "cost": { - "input": 0, - "output": 0 - } + "type": "embedding" }, { - "id": "openai/gpt-4o-mini", - "name": "GPT-4o mini", - "display_name": "GPT-4o mini", + "id": "Qwen/Qwen3-Reranker-4B", + "name": "Qwen/Qwen3-Reranker-4B", + "display_name": "Qwen/Qwen3-Reranker-4B", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ - "text" + "score" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 8192, + "output": 2048 }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false - }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-10", - "release_date": "2024-07-18", - "last_updated": "2024-07-18", - "cost": { - "input": 0, - "output": 0 } }, { - "id": "meta/llama-3.2-11b-vision-instruct", - "name": "Llama-3.2-11B-Vision-Instruct", - "display_name": "Llama-3.2-11B-Vision-Instruct", + "id": "Qwen/Qwen3-Embedding-4B", + "name": "Qwen/Qwen3-Embedding-4B", + "display_name": "Qwen/Qwen3-Embedding-4B", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ - "text" + "embedding" ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 8192, + "output": 2048 }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-09-25", - "last_updated": "2024-09-25", - "cost": { - "input": 0, - "output": 0 - } + "type": "embedding" }, { - "id": "meta/meta-llama-3.1-405b-instruct", - "name": "Meta-Llama-3.1-405B-Instruct", - "display_name": "Meta-Llama-3.1-405B-Instruct", + "id": "Qwen/Qwen3-Reranker-0.6B", + "name": "Qwen/Qwen3-Reranker-0.6B", + "display_name": "Qwen/Qwen3-Reranker-0.6B", "modalities": { "input": [ "text" ], "output": [ - "text" + "score" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 8192, + "output": 2048 }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true - }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", - "cost": { - "input": 0, - "output": 0 + "supported": false } }, { - "id": "meta/llama-4-maverick-17b-128e-instruct-fp8", - "name": "Llama 4 Maverick 17B 128E Instruct FP8", - "display_name": "Llama 4 Maverick 17B 128E Instruct FP8", + "id": "Qwen/Qwen3-Embedding-0.6B", + "name": "Qwen/Qwen3-Embedding-0.6B", + "display_name": "Qwen/Qwen3-Embedding-0.6B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text" + "embedding" ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 8192, + "output": 2048 }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-12", - "release_date": "2025-01-31", - "last_updated": "2025-01-31", - "cost": { - "input": 0, - "output": 0 - } + "type": "embedding" }, { - "id": "meta/meta-llama-3-70b-instruct", - "name": "Meta-Llama-3-70B-Instruct", - "display_name": "Meta-Llama-3-70B-Instruct", + "id": "ascend-tribe/pangu-pro-moe", + "name": "ascend-tribe/pangu-pro-moe", + "display_name": "ascend-tribe/pangu-pro-moe", "modalities": { "input": [ "text" @@ -18810,29 +19183,19 @@ ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-04-18", - "last_updated": "2024-04-18", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "meta/meta-llama-3.1-70b-instruct", - "name": "Meta-Llama-3.1-70B-Instruct", - "display_name": "Meta-Llama-3.1-70B-Instruct", + "id": "THUDM/GLM-Z1-32B-0414", + "name": "THUDM/GLM-Z1-32B-0414", + "display_name": "THUDM/GLM-Z1-32B-0414", "modalities": { "input": [ "text" @@ -18842,29 +19205,19 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "meta/llama-3.3-70b-instruct", - "name": "Llama-3.3-70B-Instruct", - "display_name": "Llama-3.3-70B-Instruct", + "id": "THUDM/GLM-4-32B-0414", + "name": "THUDM/GLM-4-32B-0414", + "display_name": "THUDM/GLM-4-32B-0414", "modalities": { "input": [ "text" @@ -18874,63 +19227,41 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-12-06", - "last_updated": "2024-12-06", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "meta/llama-3.2-90b-vision-instruct", - "name": "Llama-3.2-90B-Vision-Instruct", - "display_name": "Llama-3.2-90B-Vision-Instruct", + "id": "THUDM/GLM-Z1-9B-0414", + "name": "THUDM/GLM-Z1-9B-0414", + "display_name": "THUDM/GLM-Z1-9B-0414", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, + "context": 131072, "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-09-25", - "last_updated": "2024-09-25", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "meta/meta-llama-3-8b-instruct", - "name": "Meta-Llama-3-8B-Instruct", - "display_name": "Meta-Llama-3-8B-Instruct", + "id": "THUDM/GLM-4-9B-0414", + "name": "THUDM/GLM-4-9B-0414", + "display_name": "THUDM/GLM-4-9B-0414", "modalities": { "input": [ "text" @@ -18940,62 +19271,41 @@ ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-04-18", - "last_updated": "2024-04-18", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "meta/llama-4-scout-17b-16e-instruct", - "name": "Llama 4 Scout 17B 16E Instruct", - "display_name": "Llama 4 Scout 17B 16E Instruct", + "id": "Qwen/Qwen2.5-VL-32B-Instruct", + "name": "Qwen/Qwen2.5-VL-32B-Instruct", + "display_name": "Qwen/Qwen2.5-VL-32B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, + "context": 131072, "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-12", - "release_date": "2025-01-31", - "last_updated": "2025-01-31", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "meta/meta-llama-3.1-8b-instruct", - "name": "Meta-Llama-3.1-8B-Instruct", - "display_name": "Meta-Llama-3.1-8B-Instruct", + "id": "Qwen/Qwen3-235B-A22B", + "name": "Qwen/Qwen3-235B-A22B", + "display_name": "Qwen/Qwen3-235B-A22B", "modalities": { "input": [ "text" @@ -19005,29 +19315,19 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "ai21-labs/ai21-jamba-1.5-large", - "name": "AI21 Jamba 1.5 Large", - "display_name": "AI21 Jamba 1.5 Large", + "id": "Qwen/QwQ-32B", + "name": "Qwen/QwQ-32B", + "display_name": "Qwen/QwQ-32B", "modalities": { "input": [ "text" @@ -19037,29 +19337,19 @@ ] }, "limit": { - "context": 256000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-03", - "release_date": "2024-08-29", - "last_updated": "2024-08-29", - "cost": { - "input": 0, - "output": 0 - } + "type": "chat" }, { - "id": "ai21-labs/ai21-jamba-1.5-mini", - "name": "AI21 Jamba 1.5 Mini", - "display_name": "AI21 Jamba 1.5 Mini", + "id": "Qwen/Qwen2.5-VL-72B-Instruct", + "name": "Qwen/Qwen2.5-VL-72B-Instruct", + "display_name": "Qwen/Qwen2.5-VL-72B-Instruct", "modalities": { "input": [ "text" @@ -19069,37 +19359,19 @@ ] }, "limit": { - "context": 256000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-03", - "release_date": "2024-08-29", - "last_updated": "2024-08-29", - "cost": { - "input": 0, - "output": 0 - } - } - ] - }, - "togetherai": { - "id": "togetherai", - "name": "Together AI", - "display_name": "Together AI", - "doc": "https://docs.together.ai/docs/serverless-models", - "models": [ + "type": "chat" + }, { - "id": "openai/gpt-oss-120b", - "name": "GPT OSS 120B", - "display_name": "GPT OSS 120B", + "id": "Pro/Qwen/Qwen2.5-VL-7B-Instruct", + "name": "Pro/Qwen/Qwen2.5-VL-7B-Instruct", + "display_name": "Pro/Qwen/Qwen2.5-VL-7B-Instruct", "modalities": { "input": [ "text" @@ -19110,69 +19382,41 @@ }, "limit": { "context": 131072, - "output": 131072 + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-08", - "release_date": "2025-08-05", - "last_updated": "2025-08-05", - "cost": { - "input": 0.15, - "output": 0.6 - } - } - ] - }, - "azure": { - "id": "azure", - "name": "Azure", - "display_name": "Azure", - "doc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "models": [ + "type": "chat" + }, { - "id": "gpt-4.1-nano", - "name": "GPT-4.1 nano", - "display_name": "GPT-4.1 nano", + "id": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", - "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.03 - } + "type": "chat" }, { - "id": "text-embedding-3-small", - "name": "text-embedding-3-small", - "display_name": "text-embedding-3-small", + "id": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", "modalities": { "input": [ "text" @@ -19182,59 +19426,43 @@ ] }, "limit": { - "context": 8191, - "output": 1536 + "context": 131072, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": false, - "release_date": "2024-01-25", - "last_updated": "2024-01-25", - "cost": { - "input": 0.02, - "output": 0 - } + "type": "chat" }, { - "id": "grok-4-fast-non-reasoning", - "name": "Grok 4 Fast (Non-Reasoning)", - "display_name": "Grok 4 Fast (Non-Reasoning)", + "id": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 2000000, - "output": 30000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-09-19", - "last_updated": "2025-09-19", - "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05 - } + "type": "chat" }, { - "id": "deepseek-r1-0528", - "name": "DeepSeek-R1-0528", - "display_name": "DeepSeek-R1-0528", + "id": "Qwen/QVQ-72B-Preview", + "name": "Qwen/QVQ-72B-Preview", + "display_name": "Qwen/QVQ-72B-Preview", "modalities": { "input": [ "text" @@ -19244,324 +19472,196 @@ ] }, "limit": { - "context": 163840, - "output": 163840 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-05-28", - "last_updated": "2025-05-28", - "cost": { - "input": 1.35, - "output": 5.4 - } + "type": "chat" }, { - "id": "grok-4-fast-reasoning", - "name": "Grok 4 Fast (Reasoning)", - "display_name": "Grok 4 Fast (Reasoning)", + "id": "deepseek-ai/DeepSeek-V2.5", + "name": "deepseek-ai/DeepSeek-V2.5", + "display_name": "deepseek-ai/DeepSeek-V2.5", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 2000000, - "output": 30000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-09-19", - "last_updated": "2025-09-19", - "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05 - } + "type": "chat" }, { - "id": "phi-3-medium-128k-instruct", - "name": "Phi-3-medium-instruct (128k)", - "display_name": "Phi-3-medium-instruct (128k)", + "id": "fnlp/MOSS-TTSD-v0.5", + "name": "fnlp/MOSS-TTSD-v0.5", + "display_name": "fnlp/MOSS-TTSD-v0.5", "modalities": { "input": [ "text" ], "output": [ - "text" + "audio" ] }, - "limit": { - "context": 128000, - "output": 4096 - }, - "temperature": true, "tool_call": false, "reasoning": { "supported": false - }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", - "cost": { - "input": 0.17, - "output": 0.68 } }, { - "id": "gpt-4", - "name": "GPT-4", - "display_name": "GPT-4", + "id": "FunAudioLLM/CosyVoice2-0.5B", + "name": "FunAudioLLM/CosyVoice2-0.5B", + "display_name": "FunAudioLLM/CosyVoice2-0.5B", "modalities": { "input": [ "text" ], "output": [ - "text" + "audio" ] }, - "limit": { - "context": 8192, - "output": 8192 - }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false - }, - "attachment": false, - "open_weights": false, - "knowledge": "2023-11", - "release_date": "2023-03-14", - "last_updated": "2023-03-14", - "cost": { - "input": 60, - "output": 120 } }, { - "id": "claude-opus-4-1", - "name": "Claude Opus 4.1", - "display_name": "Claude Opus 4.1", + "id": "FunAudioLLM/SenseVoiceSmall", + "name": "FunAudioLLM/SenseVoiceSmall", + "display_name": "FunAudioLLM/SenseVoiceSmall", "modalities": { "input": [ - "text", - "image", - "pdf" + "audio" ], "output": [ "text" ] }, - "limit": { - "context": 200000, - "output": 32000 - }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true - }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", - "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "supported": false } }, { - "id": "gpt-5.2-chat", - "name": "GPT-5.2 Chat", - "display_name": "GPT-5.2 Chat", + "id": "IndexTeam/IndexTTS-2", + "name": "IndexTeam/IndexTTS-2", + "display_name": "IndexTeam/IndexTTS-2", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text" + "audio" ] }, - "limit": { - "context": 128000, - "output": 16384 - }, - "temperature": false, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true - }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-08-31", - "release_date": "2025-12-11", - "last_updated": "2025-12-11", - "cost": { - "input": 1.75, - "output": 14, - "cache_read": 0.175 + "supported": false } }, { - "id": "llama-3.2-11b-vision-instruct", - "name": "Llama-3.2-11B-Vision-Instruct", - "display_name": "Llama-3.2-11B-Vision-Instruct", + "id": "BAAI/bge-m3", + "name": "BAAI/bge-m3", + "display_name": "BAAI/bge-m3", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, + "context": 131072, "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-09-25", - "last_updated": "2024-09-25", - "cost": { - "input": 0.37, - "output": 0.37 - } + "type": "chat" }, { - "id": "cohere-embed-v-4-0", - "name": "Embed v4", - "display_name": "Embed v4", + "id": "BAAI/bge-reranker-v2-m3", + "name": "BAAI/bge-reranker-v2-m3", + "display_name": "BAAI/bge-reranker-v2-m3", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text" + "score" ] }, "limit": { - "context": 128000, - "output": 1536 + "context": 8192, + "output": 2048 }, - "temperature": false, "tool_call": false, "reasoning": { "supported": false - }, - "attachment": true, - "open_weights": true, - "release_date": "2025-04-15", - "last_updated": "2025-04-15", - "cost": { - "input": 0.12, - "output": 0 } }, { - "id": "cohere-command-r-08-2024", - "name": "Command R", - "display_name": "Command R", + "id": "netease-youdao/bce-embedding-base_v1", + "name": "netease-youdao/bce-embedding-base_v1", + "display_name": "netease-youdao/bce-embedding-base_v1", "modalities": { "input": [ "text" ], "output": [ - "text" + "embedding" ] }, "limit": { - "context": 128000, - "output": 4000 + "context": 8192, + "output": 2048 }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-06-01", - "release_date": "2024-08-30", - "last_updated": "2024-08-30", - "cost": { - "input": 0.15, - "output": 0.6 - } + "type": "embedding" }, { - "id": "grok-4", - "name": "Grok 4", - "display_name": "Grok 4", + "id": "netease-youdao/bce-reranker-base_v1", + "name": "netease-youdao/bce-reranker-base_v1", + "display_name": "netease-youdao/bce-reranker-base_v1", "modalities": { "input": [ "text" ], "output": [ - "text" + "score" ] }, "limit": { - "context": 256000, - "output": 64000 + "context": 8192, + "output": 2048 }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true - }, - "attachment": false, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-07-09", - "last_updated": "2025-07-09", - "cost": { - "input": 3, - "output": 15, - "reasoning": 15, - "cache_read": 0.75 + "supported": false } }, { - "id": "cohere-embed-v3-multilingual", - "name": "Embed v3 Multilingual", - "display_name": "Embed v3 Multilingual", + "id": "Qwen/Qwen2.5-Coder-32B-Instruct", + "name": "Qwen/Qwen2.5-Coder-32B-Instruct", + "display_name": "Qwen/Qwen2.5-Coder-32B-Instruct", "modalities": { "input": [ "text" @@ -19571,58 +19671,35 @@ ] }, "limit": { - "context": 512, - "output": 1024 + "context": 131072, + "output": 8192 }, - "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false - }, - "attachment": false, - "open_weights": true, - "release_date": "2023-11-07", - "last_updated": "2023-11-07", - "cost": { - "input": 0.1, - "output": 0 } }, { - "id": "phi-4-mini", - "name": "Phi-4-mini", - "display_name": "Phi-4-mini", + "id": "Kwai-Kolors/Kolors", + "name": "Kwai-Kolors/Kolors", + "display_name": "Kwai-Kolors/Kolors", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, - "limit": { - "context": 128000, - "output": 4096 - }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false - }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", - "cost": { - "input": 0.075, - "output": 0.3 } }, { - "id": "gpt-4-32k", - "name": "GPT-4 32K", - "display_name": "GPT-4 32K", + "id": "Qwen/Qwen2-VL-72B-Instruct", + "name": "Qwen/Qwen2-VL-72B-Instruct", + "display_name": "Qwen/Qwen2-VL-72B-Instruct", "modalities": { "input": [ "text" @@ -19632,28 +19709,19 @@ ] }, "limit": { - "context": 32768, - "output": 32768 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2023-11", - "release_date": "2023-03-14", - "last_updated": "2023-03-14", - "cost": { - "input": 60, - "output": 120 - } + "type": "chat" }, { - "id": "meta-llama-3.1-405b-instruct", - "name": "Meta-Llama-3.1-405B-Instruct", - "display_name": "Meta-Llama-3.1-405B-Instruct", + "id": "Qwen/Qwen2.5-72B-Instruct-128K", + "name": "Qwen/Qwen2.5-72B-Instruct-128K", + "display_name": "Qwen/Qwen2.5-72B-Instruct-128K", "modalities": { "input": [ "text" @@ -19663,28 +19731,19 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", - "cost": { - "input": 5.33, - "output": 16 - } + "type": "chat" }, { - "id": "deepseek-r1", - "name": "DeepSeek-R1", - "display_name": "DeepSeek-R1", + "id": "Qwen/Qwen2.5-72B-Instruct", + "name": "Qwen/Qwen2.5-72B-Instruct", + "display_name": "Qwen/Qwen2.5-72B-Instruct", "modalities": { "input": [ "text" @@ -19694,29 +19753,19 @@ ] }, "limit": { - "context": 163840, - "output": 163840 + "context": 131072, + "output": 8192 }, - "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-01-20", - "last_updated": "2025-01-20", - "cost": { - "input": 1.35, - "output": 5.4 - } + "type": "chat" }, { - "id": "grok-code-fast-1", - "name": "Grok Code Fast 1", - "display_name": "Grok Code Fast 1", + "id": "deepseek-ai/deepseek-vl2", + "name": "deepseek-ai/deepseek-vl2", + "display_name": "deepseek-ai/deepseek-vl2", "modalities": { "input": [ "text" @@ -19726,67 +19775,41 @@ ] }, "limit": { - "context": 256000, - "output": 10000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2023-10", - "release_date": "2025-08-28", - "last_updated": "2025-08-28", - "cost": { - "input": 0.2, - "output": 1.5, - "cache_read": 0.02 - } + "type": "chat" }, { - "id": "gpt-5.1-codex", - "name": "GPT-5.1 Codex", - "display_name": "GPT-5.1 Codex", + "id": "Qwen/Qwen2.5-32B-Instruct", + "name": "Qwen/Qwen2.5-32B-Instruct", + "display_name": "Qwen/Qwen2.5-32B-Instruct", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ - "text", - "image", - "audio" + "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 131072, + "output": 8192 }, - "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-14", - "last_updated": "2025-11-14", - "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 - } + "type": "chat" }, { - "id": "phi-3-mini-4k-instruct", - "name": "Phi-3-mini-instruct (4k)", - "display_name": "Phi-3-mini-instruct (4k)", + "id": "Qwen/Qwen2.5-14B-Instruct", + "name": "Qwen/Qwen2.5-14B-Instruct", + "display_name": "Qwen/Qwen2.5-14B-Instruct", "modalities": { "input": [ "text" @@ -19796,64 +19819,41 @@ ] }, "limit": { - "context": 4096, - "output": 1024 + "context": 131072, + "output": 8192 }, - "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", - "cost": { - "input": 0.13, - "output": 0.52 - } + "type": "chat" }, { - "id": "claude-haiku-4-5", - "name": "Claude Haiku 4.5", - "display_name": "Claude Haiku 4.5", + "id": "Qwen/Qwen2.5-7B-Instruct", + "name": "Qwen/Qwen2.5-7B-Instruct", + "display_name": "Qwen/Qwen2.5-7B-Instruct", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-02-31", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", - "cost": { - "input": 1, - "output": 5, - "cache_read": 0.1, - "cache_write": 1.25 - } + "type": "chat" }, { - "id": "deepseek-v3.2-speciale", - "name": "DeepSeek-V3.2-Speciale", - "display_name": "DeepSeek-V3.2-Speciale", + "id": "Qwen/Qwen2.5-Coder-7B-Instruct", + "name": "Qwen/Qwen2.5-Coder-7B-Instruct", + "display_name": "Qwen/Qwen2.5-Coder-7B-Instruct", "modalities": { "input": [ "text" @@ -19863,97 +19863,62 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131072, + "output": 8192 }, - "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true - }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-12-01", - "last_updated": "2025-12-01", - "cost": { - "input": 0.28, - "output": 0.42 + "supported": false } }, { - "id": "mistral-medium-2505", - "name": "Mistral Medium 3", - "display_name": "Mistral Medium 3", + "id": "internlm/internlm2_5-7b-chat", + "name": "internlm/internlm2_5-7b-chat", + "display_name": "internlm/internlm2_5-7b-chat", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-05", - "release_date": "2025-05-07", - "last_updated": "2025-05-07", - "cost": { - "input": 0.4, - "output": 2 - } + "type": "chat" }, { - "id": "claude-opus-4-5", - "name": "Claude Opus 4.5", - "display_name": "Claude Opus 4.5", + "id": "Qwen/Qwen2-7B-Instruct", + "name": "Qwen/Qwen2-7B-Instruct", + "display_name": "Qwen/Qwen2-7B-Instruct", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-11-24", - "last_updated": "2025-08-01", - "cost": { - "input": 5, - "output": 25, - "cache_read": 1.5, - "cache_write": 18.75 - } + "type": "chat" }, { - "id": "phi-3-small-128k-instruct", - "name": "Phi-3-small-instruct (128k)", - "display_name": "Phi-3-small-instruct (128k)", + "id": "THUDM/glm-4-9b-chat", + "name": "THUDM/glm-4-9b-chat", + "display_name": "THUDM/glm-4-9b-chat", "modalities": { "input": [ "text" @@ -19963,28 +19928,19 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", - "cost": { - "input": 0.15, - "output": 0.6 - } + "type": "chat" }, { - "id": "cohere-command-a", - "name": "Command A", - "display_name": "Command A", + "id": "BAAI/bge-large-en-v1.5", + "name": "BAAI/bge-large-en-v1.5", + "display_name": "BAAI/bge-large-en-v1.5", "modalities": { "input": [ "text" @@ -19994,29 +19950,19 @@ ] }, "limit": { - "context": 256000, - "output": 8000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-06-01", - "release_date": "2025-03-13", - "last_updated": "2025-03-13", - "cost": { - "input": 2.5, - "output": 10 - } + "type": "chat" }, { - "id": "cohere-command-r-plus-08-2024", - "name": "Command R+", - "display_name": "Command R+", + "id": "BAAI/bge-large-zh-v1.5", + "name": "BAAI/bge-large-zh-v1.5", + "display_name": "BAAI/bge-large-zh-v1.5", "modalities": { "input": [ "text" @@ -20026,160 +19972,107 @@ ] }, "limit": { - "context": 128000, - "output": 4000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-06-01", - "release_date": "2024-08-30", - "last_updated": "2024-08-30", - "cost": { - "input": 2.5, - "output": 10 - } + "type": "chat" }, { - "id": "llama-4-maverick-17b-128e-instruct-fp8", - "name": "Llama 4 Maverick 17B 128E Instruct FP8", - "display_name": "Llama 4 Maverick 17B 128E Instruct FP8", + "id": "LoRA/Qwen/Qwen2.5-32B-Instruct", + "name": "LoRA/Qwen/Qwen2.5-32B-Instruct", + "display_name": "LoRA/Qwen/Qwen2.5-32B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, + "context": 131072, "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": true, - "knowledge": "2024-08", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", - "cost": { - "input": 0.25, - "output": 1 - } + "type": "chat" }, { - "id": "gpt-4.1-mini", - "name": "GPT-4.1 mini", - "display_name": "GPT-4.1 mini", + "id": "LoRA/Qwen/Qwen2.5-14B-Instruct", + "name": "LoRA/Qwen/Qwen2.5-14B-Instruct", + "display_name": "LoRA/Qwen/Qwen2.5-14B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", - "cost": { - "input": 0.4, - "output": 1.6, - "cache_read": 0.1 - } + "type": "chat" }, { - "id": "gpt-5-chat", - "name": "GPT-5 Chat", - "display_name": "GPT-5 Chat", + "id": "Pro/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "name": "Pro/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "display_name": "Pro/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 8192 }, - "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-10-24", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", - "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.13 - } + "type": "chat" }, { - "id": "deepseek-v3.1", - "name": "DeepSeek-V3.1", - "display_name": "DeepSeek-V3.1", + "id": "deepseek-ai/DeepSeek-OCR", + "name": "deepseek-ai/DeepSeek-OCR", + "display_name": "deepseek-ai/DeepSeek-OCR", "modalities": { "input": [ - "text" + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 8192, + "output": 8192 }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true - }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-08-21", - "last_updated": "2025-08-21", - "cost": { - "input": 0.56, - "output": 1.68 + "supported": false } }, { - "id": "phi-4", - "name": "Phi-4", - "display_name": "Phi-4", + "id": "Pro/Qwen/Qwen2.5-Coder-7B-Instruct", + "name": "Pro/Qwen/Qwen2.5-Coder-7B-Instruct", + "display_name": "Pro/Qwen/Qwen2.5-Coder-7B-Instruct", "modalities": { "input": [ "text" @@ -20189,28 +20082,18 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false - }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", - "cost": { - "input": 0.125, - "output": 0.5 } }, { - "id": "phi-4-mini-reasoning", - "name": "Phi-4-mini-reasoning", - "display_name": "Phi-4-mini-reasoning", + "id": "Pro/BAAI/bge-m3", + "name": "Pro/BAAI/bge-m3", + "display_name": "Pro/BAAI/bge-m3", "modalities": { "input": [ "text" @@ -20220,96 +20103,62 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", - "cost": { - "input": 0.075, - "output": 0.3 - } + "type": "chat" }, { - "id": "claude-sonnet-4-5", - "name": "Claude Sonnet 4.5", - "display_name": "Claude Sonnet 4.5", + "id": "Pro/Qwen/Qwen2.5-7B-Instruct", + "name": "Pro/Qwen/Qwen2.5-7B-Instruct", + "display_name": "Pro/Qwen/Qwen2.5-7B-Instruct", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 131072, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-07-31", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", - "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 - } + "type": "chat" }, { - "id": "gpt-3.5-turbo-0125", - "name": "GPT-3.5 Turbo 0125", - "display_name": "GPT-3.5 Turbo 0125", + "id": "Pro/BAAI/bge-reranker-v2-m3", + "name": "Pro/BAAI/bge-reranker-v2-m3", + "display_name": "Pro/BAAI/bge-reranker-v2-m3", "modalities": { "input": [ "text" ], "output": [ - "text" + "score" ] }, "limit": { - "context": 16384, - "output": 16384 + "context": 8192, + "output": 2048 }, - "temperature": true, "tool_call": false, "reasoning": { "supported": false - }, - "attachment": false, - "open_weights": false, - "knowledge": "2021-08", - "release_date": "2024-01-25", - "last_updated": "2024-01-25", - "cost": { - "input": 0.5, - "output": 1.5 } }, { - "id": "grok-3", - "name": "Grok 3", - "display_name": "Grok 3", + "id": "LoRA/Qwen/Qwen2.5-72B-Instruct", + "name": "LoRA/Qwen/Qwen2.5-72B-Instruct", + "display_name": "LoRA/Qwen/Qwen2.5-72B-Instruct", "modalities": { "input": [ "text" @@ -20322,26 +20171,16 @@ "context": 131072, "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-11", - "release_date": "2025-02-17", - "last_updated": "2025-02-17", - "cost": { - "input": 3, - "output": 15, - "cache_read": 0.75 - } + "type": "chat" }, { - "id": "text-embedding-3-large", - "name": "text-embedding-3-large", - "display_name": "text-embedding-3-large", + "id": "Pro/Qwen/Qwen2-7B-Instruct", + "name": "Pro/Qwen/Qwen2-7B-Instruct", + "display_name": "Pro/Qwen/Qwen2-7B-Instruct", "modalities": { "input": [ "text" @@ -20351,26 +20190,19 @@ ] }, "limit": { - "context": 8191, - "output": 3072 + "context": 131072, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false, - "release_date": "2024-01-25", - "last_updated": "2024-01-25", - "cost": { - "input": 0.13, - "output": 0 - } + "type": "chat" }, { - "id": "meta-llama-3-70b-instruct", - "name": "Meta-Llama-3-70B-Instruct", - "display_name": "Meta-Llama-3-70B-Instruct", + "id": "LoRA/Qwen/Qwen2.5-7B-Instruct", + "name": "LoRA/Qwen/Qwen2.5-7B-Instruct", + "display_name": "LoRA/Qwen/Qwen2.5-7B-Instruct", "modalities": { "input": [ "text" @@ -20380,28 +20212,19 @@ ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 131072, + "output": 8192 }, - "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-04-18", - "last_updated": "2024-04-18", - "cost": { - "input": 2.68, - "output": 3.54 - } + "type": "chat" }, { - "id": "deepseek-v3-0324", - "name": "DeepSeek-V3-0324", - "display_name": "DeepSeek-V3-0324", + "id": "Pro/THUDM/glm-4-9b-chat", + "name": "Pro/THUDM/glm-4-9b-chat", + "display_name": "Pro/THUDM/glm-4-9b-chat", "modalities": { "input": [ "text" @@ -20412,27 +20235,18 @@ }, "limit": { "context": 131072, - "output": 131072 + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-03-24", - "last_updated": "2025-03-24", - "cost": { - "input": 1.14, - "output": 4.56 - } + "type": "chat" }, { - "id": "phi-3-small-8k-instruct", - "name": "Phi-3-small-instruct (8k)", - "display_name": "Phi-3-small-instruct (8k)", + "id": "THUDM/GLM-Z1-Rumination-32B-0414", + "name": "THUDM/GLM-Z1-Rumination-32B-0414", + "display_name": "THUDM/GLM-Z1-Rumination-32B-0414", "modalities": { "input": [ "text" @@ -20442,153 +20256,190 @@ ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 131072, + "output": 8192 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "stabilityai/stable-diffusion-xl-base-1.0", + "name": "stabilityai/stable-diffusion-xl-base-1.0", + "display_name": "stabilityai/stable-diffusion-xl-base-1.0", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] }, - "temperature": true, "tool_call": false, "reasoning": { "supported": false - }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", - "cost": { - "input": 0.15, - "output": 0.6 } }, { - "id": "meta-llama-3.1-70b-instruct", - "name": "Meta-Llama-3.1-70B-Instruct", - "display_name": "Meta-Llama-3.1-70B-Instruct", + "id": "black-forest-labs/FLUX.1-schnell", + "name": "black-forest-labs/FLUX.1-schnell", + "display_name": "black-forest-labs/FLUX.1-schnell", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, - "limit": { - "context": 128000, - "output": 32768 - }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false - }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", - "cost": { - "input": 2.68, - "output": 3.54 } }, { - "id": "gpt-4-turbo", - "name": "GPT-4 Turbo", - "display_name": "GPT-4 Turbo", + "id": "black-forest-labs/FLUX.1-dev", + "name": "black-forest-labs/FLUX.1-dev", + "display_name": "black-forest-labs/FLUX.1-dev", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text" + "image" ] }, - "limit": { - "context": 128000, - "output": 4096 - }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false - }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-11", - "release_date": "2023-11-06", - "last_updated": "2024-04-09", - "cost": { - "input": 10, - "output": 30 } }, { - "id": "gpt-3.5-turbo-0613", - "name": "GPT-3.5 Turbo 0613", - "display_name": "GPT-3.5 Turbo 0613", + "id": "Pro/black-forest-labs/FLUX.1-schnell", + "name": "Pro/black-forest-labs/FLUX.1-schnell", + "display_name": "Pro/black-forest-labs/FLUX.1-schnell", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, - "limit": { - "context": 16384, - "output": 16384 + "tool_call": false, + "reasoning": { + "supported": false + } + }, + { + "id": "stabilityai/stable-diffusion-3-5-large", + "name": "stabilityai/stable-diffusion-3-5-large", + "display_name": "stabilityai/stable-diffusion-3-5-large", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] }, - "temperature": true, "tool_call": false, "reasoning": { "supported": false + } + }, + { + "id": "fishaudio/fish-speech-1.4", + "name": "fishaudio/fish-speech-1.4", + "display_name": "fishaudio/fish-speech-1.4", + "modalities": { + "input": [ + "text" + ], + "output": [ + "audio" + ] }, - "attachment": false, - "open_weights": false, - "knowledge": "2021-08", - "release_date": "2023-06-13", - "last_updated": "2023-06-13", - "cost": { - "input": 3, - "output": 4 + "tool_call": false, + "reasoning": { + "supported": false } }, { - "id": "phi-3.5-mini-instruct", - "name": "Phi-3.5-mini-instruct", - "display_name": "Phi-3.5-mini-instruct", + "id": "RVC-Boss/GPT-SoVITS", + "name": "RVC-Boss/GPT-SoVITS", + "display_name": "RVC-Boss/GPT-SoVITS", "modalities": { "input": [ "text" ], "output": [ + "audio" + ] + }, + "tool_call": false, + "reasoning": { + "supported": false + } + }, + { + "id": "fishaudio/fish-speech-1.5", + "name": "fishaudio/fish-speech-1.5", + "display_name": "fishaudio/fish-speech-1.5", + "modalities": { + "input": [ "text" + ], + "output": [ + "audio" ] }, - "limit": { - "context": 128000, - "output": 4096 + "tool_call": false, + "reasoning": { + "supported": false + } + }, + { + "id": "black-forest-labs/FLUX.1-pro", + "name": "black-forest-labs/FLUX.1-pro", + "display_name": "black-forest-labs/FLUX.1-pro", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] }, - "temperature": true, "tool_call": false, "reasoning": { "supported": false + } + }, + { + "id": "LoRA/black-forest-labs/FLUX.1-dev", + "name": "LoRA/black-forest-labs/FLUX.1-dev", + "display_name": "LoRA/black-forest-labs/FLUX.1-dev", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-08-20", - "last_updated": "2024-08-20", - "cost": { - "input": 0.13, - "output": 0.52 + "tool_call": false, + "reasoning": { + "supported": false } }, { - "id": "o1-preview", - "name": "o1-preview", - "display_name": "o1-preview", + "id": "SeedLLM/Seed-Rice-7B", + "name": "SeedLLM/Seed-Rice-7B", + "display_name": "SeedLLM/Seed-Rice-7B", "modalities": { "input": [ "text" @@ -20598,30 +20449,28 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 131072, + "output": 8192 }, - "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-09-12", - "last_updated": "2024-09-12", - "cost": { - "input": 16.5, - "output": 66, - "cache_read": 8.25 - } - }, + "type": "chat" + } + ] + }, + "chutes": { + "id": "chutes", + "name": "Chutes", + "display_name": "Chutes", + "api": "https://llm.chutes.ai/v1", + "doc": "https://llm.chutes.ai/v1/models", + "models": [ { - "id": "llama-3.3-70b-instruct", - "name": "Llama-3.3-70B-Instruct", - "display_name": "Llama-3.3-70B-Instruct", + "id": "NousResearch/Hermes-4.3-36B", + "name": "Hermes 4.3 36B", + "display_name": "Hermes 4.3 36B", "modalities": { "input": [ "text" @@ -20631,65 +20480,58 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 32768, + "output": 8192 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-12-06", - "last_updated": "2024-12-06", + "release_date": "2025-12-11", + "last_updated": "2025-12-11", "cost": { - "input": 0.71, - "output": 0.71 + "input": 0.15, + "output": 0.6 } }, { - "id": "gpt-5.1-codex-mini", - "name": "GPT-5.1 Codex Mini", - "display_name": "GPT-5.1 Codex Mini", + "id": "NousResearch/Hermes-4-70B", + "name": "Hermes 4 70B", + "display_name": "Hermes 4 70B", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ - "text", - "image", - "audio" + "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 131072, + "output": 131072 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.025 + "input": 0.11, + "output": 0.38 } }, { - "id": "kimi-k2-thinking", - "name": "Kimi K2 Thinking", - "display_name": "Kimi K2 Thinking", + "id": "NousResearch/Hermes-4-14B", + "name": "Hermes 4 14B", + "display_name": "Hermes 4 14B", "modalities": { "input": [ "text" @@ -20699,8 +20541,8 @@ ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 40960, + "output": 40960 }, "temperature": true, "tool_call": true, @@ -20710,49 +20552,48 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-08", - "release_date": "2025-11-06", - "last_updated": "2025-12-02", + "release_date": "2025-11-08", + "last_updated": "2025-12-03", "cost": { - "input": 0.6, - "output": 2.5, - "cache_read": 0.15 - } + "input": 0.01, + "output": 0.05 + } }, { - "id": "model-router", - "name": "Model Router", - "display_name": "Model Router", + "id": "NousResearch/Hermes-4-405B-FP8", + "name": "Hermes 4 405B FP8", + "display_name": "Hermes 4 405B FP8", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 131072 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-05-19", - "last_updated": "2025-11-18", + "attachment": false, + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 0.14, - "output": 0 + "input": 0.3, + "output": 1.2 } }, { - "id": "o3-mini", - "name": "o3-mini", - "display_name": "o3-mini", + "id": "NousResearch/DeepHermes-3-Mistral-24B-Preview", + "name": "DeepHermes 3 Mistral 24B Preview", + "display_name": "DeepHermes 3 Mistral 24B Preview", "modalities": { "input": [ "text" @@ -20762,167 +20603,151 @@ ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 32768, + "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-05", - "release_date": "2024-12-20", - "last_updated": "2025-01-29", + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-12-03", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.55 + "input": 0.05, + "output": 0.2 } }, { - "id": "gpt-5.1", - "name": "GPT-5.1", - "display_name": "GPT-5.1", + "id": "rednote-hilab/dots.ocr", + "name": "Dots.Ocr", + "display_name": "Dots.Ocr", "modalities": { "input": [ "text", - "image", - "audio" + "image" ], "output": [ - "text", - "image", - "audio" + "text" ] }, "limit": { - "context": 272000, - "output": 128000 + "context": 131072, + "output": 131072 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "attachment": false, + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 0.01, + "output": 0.01 } }, { - "id": "gpt-5-nano", - "name": "GPT-5 Nano", - "display_name": "GPT-5 Nano", + "id": "moonshotai/Kimi-K2-Instruct-0905", + "name": "Kimi K2 Instruct 0905", + "display_name": "Kimi K2 Instruct 0905", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 272000, - "output": 128000 + "context": 262144, + "output": 262144 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-05-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "release_date": "2024-09-05", + "last_updated": "2025-11-08", "cost": { - "input": 0.05, - "output": 0.4, - "cache_read": 0.01 + "input": 0.39, + "output": 1.9 } }, { - "id": "gpt-5-codex", - "name": "GPT-5-Codex", - "display_name": "GPT-5-Codex", + "id": "moonshotai/Kimi-K2-Thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 262144, + "output": 16384 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-09-15", - "last_updated": "2025-09-15", + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-12-03", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.13 + "input": 0.45, + "output": 2.35 } }, { - "id": "llama-3.2-90b-vision-instruct", - "name": "Llama-3.2-90B-Vision-Instruct", - "display_name": "Llama-3.2-90B-Vision-Instruct", + "id": "MiniMaxAI/MiniMax-M2", + "name": "MiniMax M2", + "display_name": "MiniMax M2", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 196608, + "output": 196608 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-09-25", - "last_updated": "2024-09-25", + "knowledge": "2024-10", + "release_date": "2025-10-27", + "last_updated": "2025-11-08", "cost": { - "input": 2.04, - "output": 2.04 + "input": 0.26, + "output": 1.02 } }, { - "id": "phi-3-mini-128k-instruct", - "name": "Phi-3-mini-instruct (128k)", - "display_name": "Phi-3-mini-instruct (128k)", + "id": "ArliAI/QwQ-32B-ArliAI-RpR-v1", + "name": "QwQ 32B ArliAI RpR V1", + "display_name": "QwQ 32B ArliAI RpR V1", "modalities": { "input": [ "text" @@ -20932,61 +20757,60 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 32768, + "output": 32768 }, "temperature": true, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 0.13, - "output": 0.52 + "input": 0.03, + "output": 0.11 } }, { - "id": "gpt-4o", - "name": "GPT-4o", - "display_name": "GPT-4o", + "id": "tngtech/DeepSeek-R1T-Chimera", + "name": "DeepSeek R1T Chimera", + "display_name": "DeepSeek R1T Chimera", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 163840, + "output": 163840 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-05-13", - "last_updated": "2024-05-13", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-26", + "last_updated": "2025-11-08", "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 + "input": 0.3, + "output": 1.2 } }, { - "id": "gpt-3.5-turbo-0301", - "name": "GPT-3.5 Turbo 0301", - "display_name": "GPT-3.5 Turbo 0301", + "id": "tngtech/DeepSeek-TNG-R1T2-Chimera", + "name": "DeepSeek TNG R1T2 Chimera", + "display_name": "DeepSeek TNG R1T2 Chimera", "modalities": { "input": [ "text" @@ -20996,28 +20820,29 @@ ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 163840, + "output": 163840 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2021-08", - "release_date": "2023-03-01", - "last_updated": "2023-03-01", + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-07-08", + "last_updated": "2025-11-08", "cost": { - "input": 1.5, - "output": 2 + "input": 0.3, + "output": 1.2 } }, { - "id": "ministral-3b", - "name": "Ministral 3B", - "display_name": "Ministral 3B", + "id": "tngtech/TNG-R1T-Chimera-TEE", + "name": "TNG R1T Chimera TEE", + "display_name": "TNG R1T Chimera TEE", "modalities": { "input": [ "text" @@ -21027,28 +20852,28 @@ ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 163840, + "output": 163840 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2024-03", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "release_date": "2025-12-11", + "last_updated": "2025-12-11", "cost": { - "input": 0.04, - "output": 0.04 + "input": 0.3, + "output": 1.2 } }, { - "id": "gpt-4.1", - "name": "GPT-4.1", - "display_name": "GPT-4.1", + "id": "OpenGVLab/InternVL3-78B", + "name": "InternVL3 78B", + "display_name": "InternVL3 78B", "modalities": { "input": [ "text", @@ -21059,128 +20884,120 @@ ] }, "limit": { - "context": 1047576, + "context": 32768, "output": 32768 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "attachment": false, + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-12-11", "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 0.1, + "output": 0.39 } }, { - "id": "o4-mini", - "name": "o4-mini", - "display_name": "o4-mini", + "id": "openai/gpt-oss-20b", + "name": "Gpt Oss 20b", + "display_name": "Gpt Oss 20b", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 131072, + "output": 131072 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-16", - "last_updated": "2025-04-16", + "attachment": false, + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.28 + "input": 0, + "output": 0 } }, { - "id": "phi-4-multimodal", - "name": "Phi-4-multimodal", - "display_name": "Phi-4-multimodal", + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 131072 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", + "release_date": "2025-08-05", + "last_updated": "2025-11-08", "cost": { - "input": 0.08, - "output": 0.32, - "input_audio": 4 + "input": 0.04, + "output": 0.4 } }, { - "id": "meta-llama-3-8b-instruct", - "name": "Meta-Llama-3-8B-Instruct", - "display_name": "Meta-Llama-3-8B-Instruct", + "id": "chutesai/Mistral-Small-3.1-24B-Instruct-2503", + "name": "Mistral Small 3.1 24B Instruct 2503", + "display_name": "Mistral Small 3.1 24B Instruct 2503", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 131072, + "output": 131072 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-04-18", - "last_updated": "2024-04-18", + "release_date": "2025-11-08", + "last_updated": "2025-12-03", "cost": { - "input": 0.3, - "output": 0.61 + "input": 0.03, + "output": 0.11 } }, { - "id": "o1", - "name": "o1", - "display_name": "o1", + "id": "chutesai/Mistral-Small-3.2-24B-Instruct-2506", + "name": "Mistral Small 3.2 24B Instruct (2506)", + "display_name": "Mistral Small 3.2 24B Instruct (2506)", "modalities": { "input": [ "text", @@ -21191,30 +21008,27 @@ ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 131072, + "output": 131072 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-12-05", - "last_updated": "2024-12-05", + "open_weights": true, + "release_date": "2025-06-20", + "last_updated": "2025-11-08", "cost": { - "input": 15, - "output": 60, - "cache_read": 7.5 + "input": 0.06, + "output": 0.18 } }, { - "id": "grok-3-mini", - "name": "Grok 3 Mini", - "display_name": "Grok 3 Mini", + "id": "Alibaba-NLP/Tongyi-DeepResearch-30B-A3B", + "name": "Tongyi DeepResearch 30B A3B", + "display_name": "Tongyi DeepResearch 30B A3B", "modalities": { "input": [ "text" @@ -21225,7 +21039,7 @@ }, "limit": { "context": 131072, - "output": 8192 + "output": 131072 }, "temperature": true, "tool_call": true, @@ -21234,58 +21048,48 @@ "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-11", - "release_date": "2025-02-17", - "last_updated": "2025-02-17", + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 0.3, - "output": 0.5, - "reasoning": 0.5, - "cache_read": 0.075 + "input": 0, + "output": 0 } }, { - "id": "gpt-5.1-chat", - "name": "GPT-5.1 Chat", - "display_name": "GPT-5.1 Chat", + "id": "mistralai/Devstral-2-123B-Instruct-2512", + "name": "Devstral 2 123B Instruct 2512", + "display_name": "Devstral 2 123B Instruct 2512", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ - "text", - "image", - "audio" + "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 262144, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "attachment": false, + "open_weights": true, + "release_date": "2025-12-11", + "last_updated": "2025-12-11", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 0.15, + "output": 0.6 } }, { - "id": "phi-3.5-moe-instruct", - "name": "Phi-3.5-MoE-instruct", - "display_name": "Phi-3.5-MoE-instruct", + "id": "unsloth/Mistral-Nemo-Instruct-2407", + "name": "Mistral Nemo Instruct 2407", + "display_name": "Mistral Nemo Instruct 2407", "modalities": { "input": [ "text" @@ -21295,8 +21099,8 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": false, @@ -21305,18 +21109,17 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-08-20", - "last_updated": "2024-08-20", + "release_date": "2025-11-08", + "last_updated": "2025-12-03", "cost": { - "input": 0.16, - "output": 0.64 + "input": 0.02, + "output": 0.04 } }, { - "id": "gpt-5-mini", - "name": "GPT-5 Mini", - "display_name": "GPT-5 Mini", + "id": "unsloth/gemma-3-4b-it", + "name": "Gemma 3 4b It", + "display_name": "Gemma 3 4b It", "modalities": { "input": [ "text", @@ -21327,63 +21130,58 @@ ] }, "limit": { - "context": 272000, - "output": 128000 + "context": 96000, + "output": 96000 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "attachment": false, + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.03 + "input": 0, + "output": 0 } }, { - "id": "o1-mini", - "name": "o1-mini", - "display_name": "o1-mini", + "id": "unsloth/Mistral-Small-24B-Instruct-2501", + "name": "Mistral Small 24B Instruct 2501", + "display_name": "Mistral Small 24B Instruct 2501", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 65536 + "context": 32768, + "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-09-12", - "last_updated": "2024-09-12", + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-12-11", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.55 + "input": 0.03, + "output": 0.11 } }, { - "id": "llama-4-scout-17b-16e-instruct", - "name": "Llama 4 Scout 17B 16E Instruct", - "display_name": "Llama 4 Scout 17B 16E Instruct", + "id": "unsloth/gemma-3-12b-it", + "name": "Gemma 3 12b It", + "display_name": "Gemma 3 12b It", "modalities": { "input": [ "text", @@ -21394,58 +21192,58 @@ ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 131072, + "output": 131072 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2024-08", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 0.2, - "output": 0.78 + "input": 0.03, + "output": 0.1 } }, { - "id": "cohere-embed-v3-english", - "name": "Embed v3 English", - "display_name": "Embed v3 English", + "id": "unsloth/gemma-3-27b-it", + "name": "Gemma 3 27b It", + "display_name": "Gemma 3 27b It", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 512, - "output": 1024 + "context": 96000, + "output": 96000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2023-11-07", - "last_updated": "2023-11-07", + "release_date": "2025-11-08", + "last_updated": "2025-12-11", "cost": { - "input": 0.1, - "output": 0 + "input": 0.04, + "output": 0.15 } }, { - "id": "text-embedding-ada-002", - "name": "text-embedding-ada-002", - "display_name": "text-embedding-ada-002", + "id": "Qwen/Qwen3-30B-A3B", + "name": "Qwen3 30B A3B", + "display_name": "Qwen3 30B A3B", "modalities": { "input": [ "text" @@ -21455,26 +21253,29 @@ ] }, "limit": { - "context": 8192, - "output": 1536 + "context": 40960, + "output": 40960 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2022-12-15", - "last_updated": "2022-12-15", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-28", + "last_updated": "2025-11-08", "cost": { - "input": 0.1, - "output": 0 + "input": 0.06, + "output": 0.22 } }, { - "id": "meta-llama-3.1-8b-instruct", - "name": "Meta-Llama-3.1-8B-Instruct", - "display_name": "Meta-Llama-3.1-8B-Instruct", + "id": "Qwen/Qwen3-14B", + "name": "Qwen3 14B", + "display_name": "Qwen3 14B", "modalities": { "input": [ "text" @@ -21484,28 +21285,28 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 40960, + "output": 40960 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 0.3, - "output": 0.61 + "input": 0.05, + "output": 0.22 } }, { - "id": "gpt-5.1-codex-max", - "name": "GPT-5.1 Codex Max", - "display_name": "GPT-5.1 Codex Max", + "id": "Qwen/Qwen2.5-VL-32B-Instruct", + "name": "Qwen2.5 VL 32B Instruct", + "display_name": "Qwen2.5 VL 32B Instruct", "modalities": { "input": [ "text", @@ -21516,30 +21317,27 @@ ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 16384, + "output": 16384 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-13", - "last_updated": "2025-11-13", + "attachment": false, + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 0.05, + "output": 0.22 } }, { - "id": "gpt-3.5-turbo-instruct", - "name": "GPT-3.5 Turbo Instruct", - "display_name": "GPT-3.5 Turbo Instruct", + "id": "Qwen/Qwen3-235B-A22B-Instruct-2507", + "name": "Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen3 235B A22B Instruct 2507", "modalities": { "input": [ "text" @@ -21549,28 +21347,28 @@ ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 262144, + "output": 262144 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2021-08", - "release_date": "2023-09-21", - "last_updated": "2023-09-21", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-28", + "last_updated": "2025-11-08", "cost": { - "input": 1.5, - "output": 2 + "input": 0.08, + "output": 0.55 } }, { - "id": "mistral-nemo", - "name": "Mistral Nemo", - "display_name": "Mistral Nemo", + "id": "Qwen/Qwen2.5-Coder-32B-Instruct", + "name": "Qwen2.5 Coder 32B Instruct", + "display_name": "Qwen2.5 Coder 32B Instruct", "modalities": { "input": [ "text" @@ -21580,62 +21378,57 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 32768, + "output": 32768 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2024-07", - "release_date": "2024-07-18", - "last_updated": "2024-07-18", + "release_date": "2025-11-08", + "last_updated": "2025-12-03", "cost": { - "input": 0.15, - "output": 0.15 + "input": 0.03, + "output": 0.11 } }, { - "id": "o3", - "name": "o3", - "display_name": "o3", + "id": "Qwen/Qwen2.5-72B-Instruct", + "name": "Qwen2.5 72B Instruct", + "display_name": "Qwen2.5 72B Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 32768, + "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-16", - "last_updated": "2025-04-16", + "attachment": false, + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 0.07, + "output": 0.26 } }, { - "id": "codex-mini", - "name": "Codex Mini", - "display_name": "Codex Mini", + "id": "Qwen/Qwen3-Coder-30B-A3B-Instruct", + "name": "Qwen3 Coder 30B A3B Instruct", + "display_name": "Qwen3 Coder 30B A3B Instruct", "modalities": { "input": [ "text" @@ -21645,30 +21438,28 @@ ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 262144, + "output": 262144 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-05-16", - "last_updated": "2025-05-16", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-25", + "last_updated": "2025-11-08", "cost": { - "input": 1.5, - "output": 6, - "cache_read": 0.375 + "input": 0.06, + "output": 0.25 } }, { - "id": "phi-3-medium-4k-instruct", - "name": "Phi-3-medium-instruct (4k)", - "display_name": "Phi-3-medium-instruct (4k)", + "id": "Qwen/Qwen3-235B-A22B", + "name": "Qwen3 235B A22B", + "display_name": "Qwen3 235B A22B", "modalities": { "input": [ "text" @@ -21678,92 +21469,90 @@ ] }, "limit": { - "context": 4096, - "output": 1024 + "context": 40960, + "output": 40960 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 0.17, - "output": 0.68 + "input": 0.3, + "output": 1.2 } }, { - "id": "phi-4-reasoning", - "name": "Phi-4-reasoning", - "display_name": "Phi-4-reasoning", + "id": "Qwen/Qwen2.5-VL-72B-Instruct", + "name": "Qwen2.5 VL 72B Instruct", + "display_name": "Qwen2.5 VL 72B Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 32000, - "output": 4096 + "context": 32768, + "output": 32768 }, "temperature": true, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", + "release_date": "2025-11-08", + "last_updated": "2025-12-03", "cost": { - "input": 0.125, - "output": 0.5 + "input": 0.03, + "output": 0.13 } }, { - "id": "gpt-4-turbo-vision", - "name": "GPT-4 Turbo Vision", - "display_name": "GPT-4 Turbo Vision", + "id": "Qwen/Qwen3-32B", + "name": "Qwen3 32B", + "display_name": "Qwen3 32B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 40960, + "output": 40960 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-11", - "release_date": "2023-11-06", - "last_updated": "2024-04-09", + "attachment": false, + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-12-03", "cost": { - "input": 10, - "output": 30 + "input": 0.08, + "output": 0.24 } }, { - "id": "phi-4-reasoning-plus", - "name": "Phi-4-reasoning-plus", - "display_name": "Phi-4-reasoning-plus", + "id": "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", + "name": "Qwen3 Coder 480B A35B Instruct (FP8)", + "display_name": "Qwen3 Coder 480B A35B Instruct (FP8)", "modalities": { "input": [ "text" @@ -21773,29 +21562,27 @@ ] }, "limit": { - "context": 32000, - "output": 4096 + "context": 262144, + "output": 262144 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", + "open_weights": false, + "release_date": "2025-08-01", + "last_updated": "2025-11-08", "cost": { - "input": 0.125, - "output": 0.5 + "input": 0.22, + "output": 0.95 } }, { - "id": "gpt-4o-mini", - "name": "GPT-4o mini", - "display_name": "GPT-4o mini", + "id": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "name": "Qwen3 VL 235B A22B Instruct", + "display_name": "Qwen3 VL 235B A22B Instruct", "modalities": { "input": [ "text", @@ -21806,29 +21593,27 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 262144, + "output": 262144 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-07-18", - "last_updated": "2024-07-18", + "attachment": false, + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.08 + "input": 0.3, + "output": 1.2 } }, { - "id": "gpt-5", - "name": "GPT-5", - "display_name": "GPT-5", + "id": "Qwen/Qwen3-VL-235B-A22B-Thinking", + "name": "Qwen3 VL 235B A22B Thinking", + "display_name": "Qwen3 VL 235B A22B Thinking", "modalities": { "input": [ "text", @@ -21839,30 +21624,28 @@ ] }, "limit": { - "context": 272000, - "output": 128000 + "context": 262144, + "output": 262144 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "attachment": false, + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.13 + "input": 0.3, + "output": 1.2 } }, { - "id": "mai-ds-r1", - "name": "MAI-DS-R1", - "display_name": "MAI-DS-R1", + "id": "Qwen/Qwen3-30B-A3B-Instruct-2507", + "name": "Qwen3 30B A3B Instruct 2507", + "display_name": "Qwen3 30B A3B Instruct 2507", "modalities": { "input": [ "text" @@ -21872,29 +21655,28 @@ ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 262144, + "output": 262144 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-06", - "release_date": "2025-01-20", - "last_updated": "2025-01-20", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-25", + "last_updated": "2025-11-08", "cost": { - "input": 1.35, - "output": 5.4 + "input": 0.08, + "output": 0.33 } }, { - "id": "deepseek-v3.2", - "name": "DeepSeek-V3.2", - "display_name": "DeepSeek-V3.2", + "id": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "name": "Qwen3-235B-A22B-Thinking-2507", + "display_name": "Qwen3-235B-A22B-Thinking-2507", "modalities": { "input": [ "text" @@ -21904,8 +21686,8 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 262144, + "output": 262144 }, "temperature": true, "tool_call": true, @@ -21915,52 +21697,49 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-12-01", - "last_updated": "2025-12-01", + "knowledge": "2025-04", + "release_date": "2025-07-25", + "last_updated": "2025-11-08", "cost": { - "input": 0.28, - "output": 0.42, - "cache_read": 0.028 + "input": 0.11, + "output": 0.6 } }, { - "id": "gpt-5-pro", - "name": "GPT-5 Pro", - "display_name": "GPT-5 Pro", + "id": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "name": "Qwen3 Next 80B A3B Instruct", + "display_name": "Qwen3 Next 80B A3B Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 272000 + "context": 262144, + "output": 262144 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-10-06", - "last_updated": "2025-10-06", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-11", + "last_updated": "2025-09-11", "cost": { - "input": 15, - "output": 120 + "input": 0.1, + "output": 0.8 } }, { - "id": "mistral-large-2411", - "name": "Mistral Large 24.11", - "display_name": "Mistral Large 24.11", + "id": "zai-org/GLM-4.6-TEE", + "name": "GLM 4.6 TEE", + "display_name": "GLM 4.6 TEE", "modalities": { "input": [ "text" @@ -21970,28 +21749,27 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 32768, + "output": 8192 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-09", - "release_date": "2024-11-01", - "last_updated": "2024-11-01", + "open_weights": true, + "release_date": "2025-12-11", + "last_updated": "2025-12-11", "cost": { - "input": 2, - "output": 6 + "input": 0.3, + "output": 1.2 } }, { - "id": "gpt-5.2", - "name": "GPT-5.2", - "display_name": "GPT-5.2", + "id": "zai-org/GLM-4.6V", + "name": "GLM 4.6V", + "display_name": "GLM 4.6V", "modalities": { "input": [ "text", @@ -22002,30 +21780,28 @@ ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 131072, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-08-31", + "attachment": false, + "open_weights": true, "release_date": "2025-12-11", "last_updated": "2025-12-11", "cost": { - "input": 1.75, - "output": 14, - "cache_read": 0.125 + "input": 0.3, + "output": 0.9 } }, { - "id": "codestral-2501", - "name": "Codestral 25.01", - "display_name": "Codestral 25.01", + "id": "zai-org/GLM-4.5", + "name": "GLM 4.5", + "display_name": "GLM 4.5", "modalities": { "input": [ "text" @@ -22035,60 +21811,61 @@ ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-03", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-10-30", + "last_updated": "2025-10-30", "cost": { - "input": 0.3, - "output": 0.9 + "input": 0.35, + "output": 1.55 } }, { - "id": "mistral-small-2503", - "name": "Mistral Small 3.1", - "display_name": "Mistral Small 3.1", + "id": "zai-org/GLM-4.6", + "name": "GLM 4.6", + "display_name": "GLM 4.6", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 202752, + "output": 202752 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-09", - "release_date": "2025-03-01", - "last_updated": "2025-03-01", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-10-30", + "last_updated": "2025-11-08", "cost": { - "input": 0.1, - "output": 0.3 + "input": 0.4, + "output": 1.75 } }, { - "id": "gpt-3.5-turbo-1106", - "name": "GPT-3.5 Turbo 1106", - "display_name": "GPT-3.5 Turbo 1106", + "id": "zai-org/GLM-4.5-Air", + "name": "GLM 4.5 Air", + "display_name": "GLM 4.5 Air", "modalities": { "input": [ "text" @@ -22098,37 +21875,29 @@ ] }, "limit": { - "context": 16384, - "output": 16384 + "context": 131072, + "output": 131072 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2021-08", - "release_date": "2023-11-06", - "last_updated": "2023-11-06", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-11-08", "cost": { - "input": 1, - "output": 2 + "input": 0, + "output": 0 } - } - ] - }, - "siliconflow-com": { - "id": "siliconflow-com", - "name": "SiliconFlow", - "display_name": "SiliconFlow", - "api": "https://api.siliconflow.com/v1", - "doc": "https://cloud.siliconflow.com/models", - "models": [ + }, { - "id": "deepseek-ai-deepseek-r1-distill-qwen-7b", - "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", - "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "id": "deepseek-ai/DeepSeek-R1", + "name": "DeepSeek R1", + "display_name": "DeepSeek R1", "modalities": { "input": [ "text" @@ -22138,28 +21907,28 @@ ] }, "limit": { - "context": 33000, - "output": 16000 + "context": 163840, + "output": 163840 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": true, "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-01-20", - "last_updated": "2025-11-25", + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 0.05, - "output": 0.05 + "input": 0.3, + "output": 1.2 } }, { - "id": "z-ai-glm-4.5-air", - "name": "z-ai/GLM-4.5-Air", - "display_name": "z-ai/GLM-4.5-Air", + "id": "deepseek-ai/DeepSeek-R1-0528-Qwen3-8B", + "name": "DeepSeek R1 0528 Qwen3 8B", + "display_name": "DeepSeek R1 0528 Qwen3 8B", "modalities": { "input": [ "text" @@ -22169,27 +21938,29 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 32768, + "output": 32768 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-07-28", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-05-29", + "last_updated": "2025-11-08", "cost": { - "input": 0.14, - "output": 0.86 + "input": 0.02, + "output": 0.1 } }, { - "id": "qwen-qwen2.5-72b-instruct-128k", - "name": "Qwen/Qwen2.5-72B-Instruct-128K", - "display_name": "Qwen/Qwen2.5-72B-Instruct-128K", + "id": "deepseek-ai/DeepSeek-R1-0528", + "name": "DeepSeek R1 (0528)", + "display_name": "DeepSeek R1 (0528)", "modalities": { "input": [ "text" @@ -22199,58 +21970,60 @@ ] }, "limit": { - "context": 131000, - "output": 4000 + "context": 163840, + "output": 163840 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2024-09-18", - "last_updated": "2025-11-25", + "release_date": "2025-08-01", + "last_updated": "2025-11-08", "cost": { - "input": 0.59, - "output": 0.59 + "input": 0.4, + "output": 1.75 } }, { - "id": "deepseek-ai-deepseek-vl2", - "name": "deepseek-ai/deepseek-vl2", - "display_name": "deepseek-ai/deepseek-vl2", + "id": "deepseek-ai/DeepSeek-V3.1-Terminus", + "name": "DeepSeek V3.1 Terminus", + "display_name": "DeepSeek V3.1 Terminus", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 4000, - "output": 4000 + "context": 163840, + "output": 163840 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2024-12-13", - "last_updated": "2025-11-25", + "attachment": false, + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-09-22", + "last_updated": "2025-11-08", "cost": { - "input": 0.15, - "output": 0.15 + "input": 0.23, + "output": 0.9 } }, { - "id": "moonshotai-kimi-dev-72b", - "name": "moonshotai/Kimi-Dev-72B", - "display_name": "moonshotai/Kimi-Dev-72B", + "id": "deepseek-ai/DeepSeek-V3.2", + "name": "DeepSeek V3.2", + "display_name": "DeepSeek V3.2", "modalities": { "input": [ "text" @@ -22260,27 +22033,29 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 163840, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-06-19", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2025-12", + "release_date": "2025-12-01", + "last_updated": "2025-12-11", "cost": { - "input": 0.29, - "output": 1.15 + "input": 0.27, + "output": 0.41 } }, { - "id": "qwen-qwen2.5-coder-32b-instruct", - "name": "Qwen/Qwen2.5-Coder-32B-Instruct", - "display_name": "Qwen/Qwen2.5-Coder-32B-Instruct", + "id": "deepseek-ai/DeepSeek-V3.2-Speciale-TEE", + "name": "DeepSeek V3.2 Speciale TEE", + "display_name": "DeepSeek V3.2 Speciale TEE", "modalities": { "input": [ "text" @@ -22290,69 +22065,69 @@ ] }, "limit": { - "context": 33000, - "output": 4000 + "context": 163840, + "output": 65536 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2024-11-11", - "last_updated": "2025-11-25", + "open_weights": true, + "release_date": "2025-12-11", + "last_updated": "2025-12-11", "cost": { - "input": 0.18, - "output": 0.18 + "input": 0.27, + "output": 0.41 } }, { - "id": "qwen-qwen3-omni-30b-a3b-captioner", - "name": "Qwen/Qwen3-Omni-30B-A3B-Captioner", - "display_name": "Qwen/Qwen3-Omni-30B-A3B-Captioner", + "id": "deepseek-ai/DeepSeek-V3", + "name": "DeepSeek V3", + "display_name": "DeepSeek V3", "modalities": { "input": [ - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 66000, - "output": 66000 + "context": 163840, + "output": 163840 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-10-04", - "last_updated": "2025-11-25", + "attachment": false, + "open_weights": true, + "release_date": "2025-11-08", + "last_updated": "2025-11-08", "cost": { - "input": 0.1, - "output": 0.4 + "input": 0.3, + "output": 1.2 } }, { - "id": "qwen-qwen3-vl-235b-a22b-thinking", - "name": "Qwen/Qwen3-VL-235B-A22B-Thinking", - "display_name": "Qwen/Qwen3-VL-235B-A22B-Thinking", + "id": "deepseek-ai/DeepSeek-R1-Distill-Llama-70B", + "name": "DeepSeek R1 Distill Llama 70B", + "display_name": "DeepSeek R1 Distill Llama 70B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -22360,19 +22135,20 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-10-04", - "last_updated": "2025-11-25", + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-01-23", + "last_updated": "2025-11-08", "cost": { - "input": 0.45, - "output": 3.5 + "input": 0.03, + "output": 0.13 } }, { - "id": "thudm-glm-z1-9b-0414", - "name": "THUDM/GLM-Z1-9B-0414", - "display_name": "THUDM/GLM-Z1-9B-0414", + "id": "deepseek-ai/DeepSeek-V3.1", + "name": "DeepSeek V3.1", + "display_name": "DeepSeek V3.1", "modalities": { "input": [ "text" @@ -22382,8 +22158,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 163840, + "output": 163840 }, "temperature": true, "tool_call": true, @@ -22393,49 +22169,56 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-18", - "last_updated": "2025-11-25", + "release_date": "2025-08-21", + "last_updated": "2025-11-08", "cost": { - "input": 0.086, - "output": 0.086 + "input": 0.2, + "output": 0.8 } }, { - "id": "qwen-qwen3-vl-30b-a3b-thinking", - "name": "Qwen/Qwen3-VL-30B-A3B-Thinking", - "display_name": "Qwen/Qwen3-VL-30B-A3B-Thinking", + "id": "deepseek-ai/DeepSeek-V3-0324", + "name": "DeepSeek V3 (0324)", + "display_name": "DeepSeek V3 (0324)", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 163840, + "output": 163840 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-10-11", - "last_updated": "2025-11-25", + "release_date": "2025-08-01", + "last_updated": "2025-11-08", "cost": { - "input": 0.29, - "output": 1 + "input": 0.24, + "output": 0.84 } - }, + } + ] + }, + "kimi-for-coding": { + "id": "kimi-for-coding", + "name": "Kimi For Coding", + "display_name": "Kimi For Coding", + "api": "https://api.kimi.com/coding/v1", + "doc": "https://www.kimi.com/coding/docs/en/third-party-agents.html", + "models": [ { - "id": "deepseek-ai-deepseek-v3.2-exp", - "name": "deepseek-ai/DeepSeek-V3.2-Exp", - "display_name": "deepseek-ai/DeepSeek-V3.2-Exp", + "id": "kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ "text" @@ -22445,8 +22228,8 @@ ] }, "limit": { - "context": 164000, - "output": 164000 + "context": 262144, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -22455,18 +22238,30 @@ "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-10-10", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-11", + "last_updated": "2025-12", "cost": { - "input": 0.27, - "output": 0.41 + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 } - }, + } + ] + }, + "cortecs": { + "id": "cortecs", + "name": "Cortecs", + "display_name": "Cortecs", + "api": "https://api.cortecs.ai/v1", + "doc": "https://api.cortecs.ai/v1/models", + "models": [ { - "id": "qwen-qwen2.5-vl-32b-instruct", - "name": "Qwen/Qwen2.5-VL-32B-Instruct", - "display_name": "Qwen/Qwen2.5-VL-32B-Instruct", + "id": "nova-pro-v1", + "name": "Nova Pro 1.0", + "display_name": "Nova Pro 1.0", "modalities": { "input": [ "text", @@ -22477,27 +22272,28 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 300000, + "output": 5000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-03-24", - "last_updated": "2025-11-25", + "knowledge": "2024-04", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", "cost": { - "input": 0.27, - "output": 0.27 + "input": 1.016, + "output": 4.061 } }, { - "id": "qwen-qwen3-235b-a22b-thinking-2507", - "name": "Qwen/Qwen3-235B-A22B-Thinking-2507", - "display_name": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "id": "devstral-2512", + "name": "Devstral 2 2512", + "display_name": "Devstral 2 2512", "modalities": { "input": [ "text" @@ -22513,83 +22309,88 @@ "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-07-28", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2025-12", + "release_date": "2025-12-09", + "last_updated": "2025-12-09", "cost": { - "input": 0.13, - "output": 0.6 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-vl-32b-instruct", - "name": "Qwen/Qwen3-VL-32B-Instruct", - "display_name": "Qwen/Qwen3-VL-32B-Instruct", + "id": "intellect-3", + "name": "INTELLECT 3", + "display_name": "INTELLECT 3", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, - "open_weights": false, - "release_date": "2025-10-21", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2025-11", + "release_date": "2025-11-26", + "last_updated": "2025-11-26", "cost": { - "input": 0.2, - "output": 0.6 + "input": 0.219, + "output": 1.202 } }, { - "id": "inclusionai-ling-flash-2.0", - "name": "inclusionAI/Ling-flash-2.0", - "display_name": "inclusionAI/Ling-flash-2.0", + "id": "claude-4-5-sonnet", + "name": "Claude 4.5 Sonnet", + "display_name": "Claude 4.5 Sonnet", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 200000, + "output": 200000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-09-18", - "last_updated": "2025-11-25", + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "cost": { - "input": 0.14, - "output": 0.57 + "input": 3.259, + "output": 16.296 } }, { - "id": "moonshotai-kimi-k2-instruct", - "name": "moonshotai/Kimi-K2-Instruct", - "display_name": "moonshotai/Kimi-K2-Instruct", + "id": "deepseek-v3-0324", + "name": "DeepSeek V3 0324", + "display_name": "DeepSeek V3 0324", "modalities": { "input": [ "text" @@ -22599,8 +22400,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -22608,18 +22409,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-07-13", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-03-24", + "last_updated": "2025-03-24", "cost": { - "input": 0.58, - "output": 2.29 + "input": 0.551, + "output": 1.654 } }, { - "id": "inclusionai-ling-mini-2.0", - "name": "inclusionAI/Ling-mini-2.0", - "display_name": "inclusionAI/Ling-mini-2.0", + "id": "kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ "text" @@ -22629,27 +22431,29 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": false, - "release_date": "2025-09-10", - "last_updated": "2025-11-25", + "attachment": true, + "open_weights": true, + "knowledge": "2025-12", + "release_date": "2025-12-08", + "last_updated": "2025-12-08", "cost": { - "input": 0.07, - "output": 0.28 + "input": 0.656, + "output": 2.731 } }, { - "id": "qwen-qwen3-coder-480b-a35b-instruct", - "name": "Qwen/Qwen3-Coder-480B-A35B-Instruct", - "display_name": "Qwen/Qwen3-Coder-480B-A35B-Instruct", + "id": "kimi-k2-instruct", + "name": "Kimi K2 Instruct", + "display_name": "Kimi K2 Instruct", "modalities": { "input": [ "text" @@ -22659,8 +22463,8 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -22668,61 +22472,63 @@ "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-07-31", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-07-11", + "last_updated": "2025-09-05", "cost": { - "input": 0.25, - "output": 1 + "input": 0.551, + "output": 2.646 } }, { - "id": "qwen-qwen3-omni-30b-a3b-instruct", - "name": "Qwen/Qwen3-Omni-30B-A3B-Instruct", - "display_name": "Qwen/Qwen3-Omni-30B-A3B-Instruct", + "id": "gpt-4.1", + "name": "GPT 4.1", + "display_name": "GPT 4.1", "modalities": { "input": [ "text", - "image", - "audio" + "image" ], "output": [ "text" ] }, "limit": { - "context": 66000, - "output": 66000 + "context": 1047576, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-10-04", - "last_updated": "2025-11-25", - "cost": { - "input": 0.1, - "output": 0.4 + "knowledge": "2024-06", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 2.354, + "output": 9.417 } }, { - "id": "moonshotai-kimi-k2-instruct-0905", - "name": "moonshotai/Kimi-K2-Instruct-0905", - "display_name": "moonshotai/Kimi-K2-Instruct-0905", + "id": "gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 1048576, + "output": 65535 }, "temperature": true, "tool_call": true, @@ -22731,17 +22537,18 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-09-08", - "last_updated": "2025-11-25", + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-17", "cost": { - "input": 0.4, - "output": 2 + "input": 1.654, + "output": 11.024 } }, { - "id": "qwen-qwen3-30b-a3b-thinking-2507", - "name": "Qwen/Qwen3-30B-A3B-Thinking-2507", - "display_name": "Qwen/Qwen3-30B-A3B-Thinking-2507", + "id": "gpt-oss-120b", + "name": "GPT Oss 120b", + "display_name": "GPT Oss 120b", "modalities": { "input": [ "text" @@ -22751,39 +22558,40 @@ ] }, "limit": { - "context": 262000, - "output": 131000 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-07-31", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2024-01", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0.09, - "output": 0.3 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-14b", - "name": "Qwen/Qwen3-14B", - "display_name": "Qwen/Qwen3-14B", + "id": "devstral-small-2512", + "name": "Devstral Small 2 2512", + "display_name": "Devstral Small 2 2512", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, @@ -22791,18 +22599,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-04-30", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2025-12", + "release_date": "2025-12-09", + "last_updated": "2025-12-09", "cost": { - "input": 0.07, - "output": 0.28 + "input": 0, + "output": 0 } }, { - "id": "deepseek-ai-deepseek-r1", - "name": "deepseek-ai/DeepSeek-R1", - "display_name": "deepseek-ai/DeepSeek-R1", + "id": "qwen3-coder-480b-a35b-instruct", + "name": "Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen3 Coder 480B A35B Instruct", "modalities": { "input": [ "text" @@ -22812,59 +22621,61 @@ ] }, "limit": { - "context": 164000, - "output": 164000 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-05-28", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2025-01", + "release_date": "2025-07-25", + "last_updated": "2025-07-25", "cost": { - "input": 0.5, - "output": 2.18 + "input": 0.441, + "output": 1.984 } }, { - "id": "deepseek-ai-deepseek-v3.1", - "name": "deepseek-ai/DeepSeek-V3.1", - "display_name": "deepseek-ai/DeepSeek-V3.1", + "id": "claude-sonnet-4", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 164000, - "output": 164000 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-08-25", - "last_updated": "2025-11-25", + "knowledge": "2025-03", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { - "input": 0.27, - "output": 1 + "input": 3.307, + "output": 16.536 } }, { - "id": "z-ai-glm-4.5", - "name": "z-ai/GLM-4.5", - "display_name": "z-ai/GLM-4.5", + "id": "llama-3.1-405b-instruct", + "name": "Llama 3.1 405B Instruct", + "display_name": "Llama 3.1 405B Instruct", "modalities": { "input": [ "text" @@ -22874,8 +22685,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -22883,18 +22694,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-07-28", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 0.4, - "output": 2 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-30b-a3b-instruct-2507", - "name": "Qwen/Qwen3-30B-A3B-Instruct-2507", - "display_name": "Qwen/Qwen3-30B-A3B-Instruct-2507", + "id": "qwen3-next-80b-a3b-thinking", + "name": "Qwen3 Next 80B A3B Thinking", + "display_name": "Qwen3 Next 80B A3B Thinking", "modalities": { "input": [ "text" @@ -22904,58 +22716,69 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-07-30", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-11", + "last_updated": "2025-09-11", "cost": { - "input": 0.09, - "output": 0.3 + "input": 0.164, + "output": 1.311 } }, { - "id": "zai-org-glm-4.5v", - "name": "zai-org/GLM-4.5V", - "display_name": "zai-org/GLM-4.5V", + "id": "qwen3-32b", + "name": "Qwen3 32B", + "display_name": "Qwen3 32B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 66000, - "output": 66000 + "context": 16384, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-08-13", - "last_updated": "2025-11-25", + "attachment": false, + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-04-29", + "last_updated": "2025-04-29", "cost": { - "input": 0.14, - "output": 0.86 + "input": 0.099, + "output": 0.33 } - }, + } + ] + }, + "github-models": { + "id": "github-models", + "name": "GitHub Models", + "display_name": "GitHub Models", + "api": "https://models.github.ai/inference", + "doc": "https://docs.github.com/en/github-models", + "models": [ { - "id": "inclusionai-ring-flash-2.0", - "name": "inclusionAI/Ring-flash-2.0", - "display_name": "inclusionAI/Ring-flash-2.0", + "id": "core42/jais-30b-chat", + "name": "JAIS 30b Chat", + "display_name": "JAIS 30b Chat", "modalities": { "input": [ "text" @@ -22965,8 +22788,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 8192, + "output": 2048 }, "temperature": true, "tool_call": true, @@ -22975,18 +22798,19 @@ "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-09-29", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-03", + "release_date": "2023-08-30", + "last_updated": "2023-08-30", "cost": { - "input": 0.14, - "output": 0.57 + "input": 0, + "output": 0 } }, { - "id": "thudm-glm-z1-32b-0414", - "name": "THUDM/GLM-Z1-32B-0414", - "display_name": "THUDM/GLM-Z1-32B-0414", + "id": "xai/grok-3", + "name": "Grok 3", + "display_name": "Grok 3", "modalities": { "input": [ "text" @@ -22996,8 +22820,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 128000, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -23007,60 +22831,61 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-18", - "last_updated": "2025-11-25", + "knowledge": "2024-10", + "release_date": "2024-12-09", + "last_updated": "2024-12-09", "cost": { - "input": 0.14, - "output": 0.57 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen2.5-vl-72b-instruct", - "name": "Qwen/Qwen2.5-VL-72B-Instruct", - "display_name": "Qwen/Qwen2.5-VL-72B-Instruct", + "id": "xai/grok-3-mini", + "name": "Grok 3 Mini", + "display_name": "Grok 3 Mini", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 131000, - "output": 4000 + "context": 128000, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-01-28", - "last_updated": "2025-11-25", + "knowledge": "2024-10", + "release_date": "2024-12-09", + "last_updated": "2024-12-09", "cost": { - "input": 0.59, - "output": 0.59 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-vl-32b-thinking", - "name": "Qwen/Qwen3-VL-32B-Thinking", - "display_name": "Qwen/Qwen3-VL-32B-Thinking", + "id": "cohere/cohere-command-r-08-2024", + "name": "Cohere Command R 08-2024", + "display_name": "Cohere Command R 08-2024", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -23068,19 +22893,20 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-10-21", - "last_updated": "2025-11-25", + "knowledge": "2024-03", + "release_date": "2024-08-01", + "last_updated": "2024-08-01", "cost": { - "input": 0.2, - "output": 1.5 + "input": 0, + "output": 0 } }, { - "id": "tencent-hunyuan-mt-7b", - "name": "tencent/Hunyuan-MT-7B", - "display_name": "tencent/Hunyuan-MT-7B", + "id": "cohere/cohere-command-a", + "name": "Cohere Command A", + "display_name": "Cohere Command A", "modalities": { "input": [ "text" @@ -23090,27 +22916,29 @@ ] }, "limit": { - "context": 33000, - "output": 33000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-09-18", - "last_updated": "2025-11-25", + "knowledge": "2024-03", + "release_date": "2024-11-01", + "last_updated": "2024-11-01", "cost": { "input": 0, "output": 0 } }, { - "id": "qwen-qwen3-30b-a3b", - "name": "Qwen/Qwen3-30B-A3B", - "display_name": "Qwen/Qwen3-30B-A3B", + "id": "cohere/cohere-command-r-plus-08-2024", + "name": "Cohere Command R+ 08-2024", + "display_name": "Cohere Command R+ 08-2024", "modalities": { "input": [ "text" @@ -23120,27 +22948,29 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-04-30", - "last_updated": "2025-11-25", + "knowledge": "2024-03", + "release_date": "2024-08-01", + "last_updated": "2024-08-01", "cost": { - "input": 0.09, - "output": 0.45 + "input": 0, + "output": 0 } }, { - "id": "openai-gpt-oss-120b", - "name": "openai/gpt-oss-120b", - "display_name": "openai/gpt-oss-120b", + "id": "cohere/cohere-command-r", + "name": "Cohere Command R", + "display_name": "Cohere Command R", "modalities": { "input": [ "text" @@ -23150,8 +22980,8 @@ ] }, "limit": { - "context": 131000, - "output": 8000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -23161,17 +22991,18 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-08-13", - "last_updated": "2025-11-25", + "knowledge": "2024-03", + "release_date": "2024-03-11", + "last_updated": "2024-08-01", "cost": { - "input": 0.05, - "output": 0.45 + "input": 0, + "output": 0 } }, { - "id": "minimaxai-minimax-m1-80k", - "name": "MiniMaxAI/MiniMax-M1-80k", - "display_name": "MiniMaxAI/MiniMax-M1-80k", + "id": "cohere/cohere-command-r-plus", + "name": "Cohere Command R+", + "display_name": "Cohere Command R+", "modalities": { "input": [ "text" @@ -23181,8 +23012,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -23192,17 +23023,18 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-06-17", - "last_updated": "2025-11-25", + "knowledge": "2024-03", + "release_date": "2024-04-04", + "last_updated": "2024-08-01", "cost": { - "input": 0.55, - "output": 2.2 + "input": 0, + "output": 0 } }, { - "id": "deepseek-ai-deepseek-v3.1-terminus", - "name": "deepseek-ai/DeepSeek-V3.1-Terminus", - "display_name": "deepseek-ai/DeepSeek-V3.1-Terminus", + "id": "deepseek/deepseek-r1-0528", + "name": "DeepSeek-R1-0528", + "display_name": "DeepSeek-R1-0528", "modalities": { "input": [ "text" @@ -23212,8 +23044,8 @@ ] }, "limit": { - "context": 164000, - "output": 164000 + "context": 65536, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -23222,18 +23054,19 @@ "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-09-29", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2024-06", + "release_date": "2025-05-28", + "last_updated": "2025-05-28", "cost": { - "input": 0.27, - "output": 1 + "input": 0, + "output": 0 } }, { - "id": "zai-org-glm-4.5-air", - "name": "zai-org/GLM-4.5-Air", - "display_name": "zai-org/GLM-4.5-Air", + "id": "deepseek/deepseek-r1", + "name": "DeepSeek-R1", + "display_name": "DeepSeek-R1", "modalities": { "input": [ "text" @@ -23243,27 +23076,29 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 65536, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-07-28", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2024-06", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", "cost": { - "input": 0.14, - "output": 0.86 + "input": 0, + "output": 0 } }, { - "id": "thudm-glm-4-9b-0414", - "name": "THUDM/GLM-4-9B-0414", - "display_name": "THUDM/GLM-4-9B-0414", + "id": "deepseek/deepseek-v3-0324", + "name": "DeepSeek-V3-0324", + "display_name": "DeepSeek-V3-0324", "modalities": { "input": [ "text" @@ -23273,57 +23108,62 @@ ] }, "limit": { - "context": 33000, - "output": 33000 + "context": 128000, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-04-18", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2024-06", + "release_date": "2025-03-24", + "last_updated": "2025-03-24", "cost": { - "input": 0.086, - "output": 0.086 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-coder-30b-a3b-instruct", - "name": "Qwen/Qwen3-Coder-30B-A3B-Instruct", - "display_name": "Qwen/Qwen3-Coder-30B-A3B-Instruct", + "id": "mistral-ai/mistral-medium-2505", + "name": "Mistral Medium 3 (25.05)", + "display_name": "Mistral Medium 3 (25.05)", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-08-01", - "last_updated": "2025-11-25", + "knowledge": "2024-09", + "release_date": "2025-05-01", + "last_updated": "2025-05-01", "cost": { - "input": 0.07, - "output": 0.28 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwq-32b", - "name": "Qwen/QwQ-32B", - "display_name": "Qwen/QwQ-32B", + "id": "mistral-ai/ministral-3b", + "name": "Ministral 3B", + "display_name": "Ministral 3B", "modalities": { "input": [ "text" @@ -23333,8 +23173,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 128000, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -23343,61 +23183,62 @@ "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-03-06", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2024-03", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { - "input": 0.15, - "output": 0.58 + "input": 0, + "output": 0 } }, { - "id": "stepfun-ai-step3", - "name": "stepfun-ai/step3", - "display_name": "stepfun-ai/step3", + "id": "mistral-ai/mistral-nemo", + "name": "Mistral Nemo", + "display_name": "Mistral Nemo", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 66000, - "output": 66000 + "context": 128000, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-08-06", - "last_updated": "2025-11-25", + "attachment": false, + "open_weights": true, + "knowledge": "2024-03", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", "cost": { - "input": 0.57, - "output": 1.42 + "input": 0, + "output": 0 } }, { - "id": "thudm-glm-4.1v-9b-thinking", - "name": "THUDM/GLM-4.1V-9B-Thinking", - "display_name": "THUDM/GLM-4.1V-9B-Thinking", + "id": "mistral-ai/mistral-large-2411", + "name": "Mistral Large 24.11", + "display_name": "Mistral Large 24.11", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 66000, - "output": 66000 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -23405,19 +23246,20 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-07-04", - "last_updated": "2025-11-25", + "knowledge": "2024-09", + "release_date": "2024-11-01", + "last_updated": "2024-11-01", "cost": { - "input": 0.035, - "output": 0.14 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-next-80b-a3b-thinking", - "name": "Qwen/Qwen3-Next-80B-A3B-Thinking", - "display_name": "Qwen/Qwen3-Next-80B-A3B-Thinking", + "id": "mistral-ai/codestral-2501", + "name": "Codestral 25.01", + "display_name": "Codestral 25.01", "modalities": { "input": [ "text" @@ -23427,8 +23269,8 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 32000, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -23438,17 +23280,18 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-09-25", - "last_updated": "2025-11-25", + "knowledge": "2024-03", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.14, - "output": 0.57 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-vl-235b-a22b-instruct", - "name": "Qwen/Qwen3-VL-235B-A22B-Instruct", - "display_name": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "id": "mistral-ai/mistral-small-2503", + "name": "Mistral Small 3.1", + "display_name": "Mistral Small 3.1", "modalities": { "input": [ "text", @@ -23459,27 +23302,29 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-10-04", - "last_updated": "2025-11-25", + "knowledge": "2024-09", + "release_date": "2025-03-01", + "last_updated": "2025-03-01", "cost": { - "input": 0.3, - "output": 1.5 + "input": 0, + "output": 0 } }, { - "id": "zai-org-glm-4.5", - "name": "zai-org/GLM-4.5", - "display_name": "zai-org/GLM-4.5", + "id": "microsoft/phi-3-medium-128k-instruct", + "name": "Phi-3-medium instruct (128k)", + "display_name": "Phi-3-medium instruct (128k)", "modalities": { "input": [ "text" @@ -23489,27 +23334,29 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-07-28", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", "cost": { - "input": 0.4, - "output": 2 + "input": 0, + "output": 0 } }, { - "id": "deepseek-ai-deepseek-r1-distill-qwen-14b", - "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", - "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + "id": "microsoft/phi-3-mini-4k-instruct", + "name": "Phi-3-mini instruct (4k)", + "display_name": "Phi-3-mini instruct (4k)", "modalities": { "input": [ "text" @@ -23519,8 +23366,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 4096, + "output": 1024 }, "temperature": true, "tool_call": true, @@ -23529,18 +23376,19 @@ "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-01-20", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", "cost": { - "input": 0.1, - "output": 0.1 + "input": 0, + "output": 0 } }, { - "id": "deepseek-ai-deepseek-v3", - "name": "deepseek-ai/DeepSeek-V3", - "display_name": "deepseek-ai/DeepSeek-V3", + "id": "microsoft/phi-3-small-128k-instruct", + "name": "Phi-3-small instruct (128k)", + "display_name": "Phi-3-small instruct (128k)", "modalities": { "input": [ "text" @@ -23550,57 +23398,62 @@ ] }, "limit": { - "context": 164000, - "output": 164000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2024-12-26", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", "cost": { - "input": 0.25, - "output": 1 + "input": 0, + "output": 0 } }, { - "id": "openai-gpt-oss-20b", - "name": "openai/gpt-oss-20b", - "display_name": "openai/gpt-oss-20b", + "id": "microsoft/phi-3.5-vision-instruct", + "name": "Phi-3.5-vision instruct (128k)", + "display_name": "Phi-3.5-vision instruct (128k)", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131000, - "output": 8000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-08-13", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", "cost": { - "input": 0.04, - "output": 0.18 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen2.5-7b-instruct", - "name": "Qwen/Qwen2.5-7B-Instruct", - "display_name": "Qwen/Qwen2.5-7B-Instruct", + "id": "microsoft/phi-4", + "name": "Phi-4", + "display_name": "Phi-4", "modalities": { "input": [ "text" @@ -23610,27 +23463,29 @@ ] }, "limit": { - "context": 33000, - "output": 4000 + "context": 16000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2024-09-18", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 0.05, - "output": 0.05 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen2.5-32b-instruct", - "name": "Qwen/Qwen2.5-32B-Instruct", - "display_name": "Qwen/Qwen2.5-32B-Instruct", + "id": "microsoft/phi-4-mini-reasoning", + "name": "Phi-4-mini-reasoning", + "display_name": "Phi-4-mini-reasoning", "modalities": { "input": [ "text" @@ -23640,27 +23495,29 @@ ] }, "limit": { - "context": 33000, - "output": 4000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2024-09-19", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 0.18, - "output": 0.18 + "input": 0, + "output": 0 } }, { - "id": "minimaxai-minimax-m2", - "name": "MiniMaxAI/MiniMax-M2", - "display_name": "MiniMaxAI/MiniMax-M2", + "id": "microsoft/phi-3-small-8k-instruct", + "name": "Phi-3-small instruct (8k)", + "display_name": "Phi-3-small instruct (8k)", "modalities": { "input": [ "text" @@ -23670,27 +23527,29 @@ ] }, "limit": { - "context": 197000, - "output": 131000 + "context": 8192, + "output": 2048 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-10-28", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", "cost": { - "input": 0.3, - "output": 1.2 + "input": 0, + "output": 0 } }, { - "id": "bytedance-seed-seed-oss-36b-instruct", - "name": "ByteDance-Seed/Seed-OSS-36B-Instruct", - "display_name": "ByteDance-Seed/Seed-OSS-36B-Instruct", + "id": "microsoft/phi-3.5-mini-instruct", + "name": "Phi-3.5-mini instruct (128k)", + "display_name": "Phi-3.5-mini instruct (128k)", "modalities": { "input": [ "text" @@ -23700,70 +23559,74 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-09-04", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", "cost": { - "input": 0.21, - "output": 0.57 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen2.5-vl-7b-instruct", - "name": "Qwen/Qwen2.5-VL-7B-Instruct", - "display_name": "Qwen/Qwen2.5-VL-7B-Instruct", + "id": "microsoft/phi-4-multimodal-instruct", + "name": "Phi-4-multimodal-instruct", + "display_name": "Phi-4-multimodal-instruct", "modalities": { "input": [ "text", - "image" + "image", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 33000, - "output": 4000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-01-28", - "last_updated": "2025-11-25", + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 0.05, - "output": 0.05 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-vl-8b-thinking", - "name": "Qwen/Qwen3-VL-8B-Thinking", - "display_name": "Qwen/Qwen3-VL-8B-Thinking", + "id": "microsoft/phi-3-mini-128k-instruct", + "name": "Phi-3-mini instruct (128k)", + "display_name": "Phi-3-mini instruct (128k)", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -23771,50 +23634,52 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-10-15", - "last_updated": "2025-11-25", + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", "cost": { - "input": 0.18, - "output": 2 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-vl-8b-instruct", - "name": "Qwen/Qwen3-VL-8B-Instruct", - "display_name": "Qwen/Qwen3-VL-8B-Instruct", + "id": "microsoft/phi-3.5-moe-instruct", + "name": "Phi-3.5-MoE instruct (128k)", + "display_name": "Phi-3.5-MoE instruct (128k)", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-10-15", - "last_updated": "2025-11-25", + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", "cost": { - "input": 0.18, - "output": 0.68 + "input": 0, + "output": 0 } }, { - "id": "nex-agi-deepseek-v3.1-nex-n1", - "name": "nex-agi/DeepSeek-V3.1-Nex-N1", - "display_name": "nex-agi/DeepSeek-V3.1-Nex-N1", + "id": "microsoft/phi-4-mini-instruct", + "name": "Phi-4-mini-instruct", + "display_name": "Phi-4-mini-instruct", "modalities": { "input": [ "text" @@ -23824,8 +23689,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -23834,18 +23699,19 @@ "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-01-01", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 0.5, - "output": 2 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-8b", - "name": "Qwen/Qwen3-8B", - "display_name": "Qwen/Qwen3-8B", + "id": "microsoft/phi-3-medium-4k-instruct", + "name": "Phi-3-medium instruct (4k)", + "display_name": "Phi-3-medium instruct (4k)", "modalities": { "input": [ "text" @@ -23855,27 +23721,29 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 4096, + "output": 1024 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-04-30", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", "cost": { - "input": 0.06, - "output": 0.06 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen2.5-72b-instruct", - "name": "Qwen/Qwen2.5-72B-Instruct", - "display_name": "Qwen/Qwen2.5-72B-Instruct", + "id": "microsoft/phi-4-reasoning", + "name": "Phi-4-Reasoning", + "display_name": "Phi-4-Reasoning", "modalities": { "input": [ "text" @@ -23885,27 +23753,29 @@ ] }, "limit": { - "context": 33000, - "output": 4000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2024-09-18", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 0.59, - "output": 0.59 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-235b-a22b", - "name": "Qwen/Qwen3-235B-A22B", - "display_name": "Qwen/Qwen3-235B-A22B", + "id": "microsoft/mai-ds-r1", + "name": "MAI-DS-R1", + "display_name": "MAI-DS-R1", "modalities": { "input": [ "text" @@ -23915,87 +23785,93 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 65536, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-04-30", - "last_updated": "2025-11-25", + "knowledge": "2024-06", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", "cost": { - "input": 0.35, - "output": 1.42 + "input": 0, + "output": 0 } }, { - "id": "meta-llama-meta-llama-3.1-8b-instruct", - "name": "meta-llama/Meta-Llama-3.1-8B-Instruct", - "display_name": "meta-llama/Meta-Llama-3.1-8B-Instruct", + "id": "openai/gpt-4.1-nano", + "name": "GPT-4.1-nano", + "display_name": "GPT-4.1-nano", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 33000, - "output": 4000 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-04-23", - "last_updated": "2025-11-25", + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0.06, - "output": 0.06 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-235b-a22b-instruct-2507", - "name": "Qwen/Qwen3-235B-A22B-Instruct-2507", - "display_name": "Qwen/Qwen3-235B-A22B-Instruct-2507", + "id": "openai/gpt-4.1-mini", + "name": "GPT-4.1-mini", + "display_name": "GPT-4.1-mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-07-23", - "last_updated": "2025-11-25", + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0.09, - "output": 0.6 + "input": 0, + "output": 0 } }, { - "id": "baidu-ernie-4.5-300b-a47b", - "name": "baidu/ERNIE-4.5-300B-A47B", - "display_name": "baidu/ERNIE-4.5-300B-A47B", + "id": "openai/o1-preview", + "name": "OpenAI o1-preview", + "display_name": "OpenAI o1-preview", "modalities": { "input": [ "text" @@ -24005,180 +23881,192 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 128000, + "output": 32768 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-07-02", - "last_updated": "2025-11-25", - "cost": { - "input": 0.28, - "output": 1.1 + "knowledge": "2023-10", + "release_date": "2024-09-12", + "last_updated": "2024-09-12", + "cost": { + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-omni-30b-a3b-thinking", - "name": "Qwen/Qwen3-Omni-30B-A3B-Thinking", - "display_name": "Qwen/Qwen3-Omni-30B-A3B-Thinking", + "id": "openai/o3-mini", + "name": "OpenAI o3-mini", + "display_name": "OpenAI o3-mini", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 66000, - "output": 66000 + "context": 200000, + "output": 100000 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-10-04", - "last_updated": "2025-11-25", + "knowledge": "2024-04", + "release_date": "2025-01-31", + "last_updated": "2025-01-31", "cost": { - "input": 0.1, - "output": 0.4 + "input": 0, + "output": 0 } }, { - "id": "zai-org-glm-4.6", - "name": "zai-org/GLM-4.6", - "display_name": "zai-org/GLM-4.6", + "id": "openai/gpt-4o", + "name": "GPT-4o", + "display_name": "GPT-4o", "modalities": { "input": [ - "text" + "text", + "image", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 205000, - "output": 205000 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-10-04", - "last_updated": "2025-11-25", + "knowledge": "2023-10", + "release_date": "2024-05-13", + "last_updated": "2024-05-13", "cost": { - "input": 0.5, - "output": 1.9 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-32b", - "name": "Qwen/Qwen3-32B", - "display_name": "Qwen/Qwen3-32B", + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-04-30", - "last_updated": "2025-11-25", + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0.14, - "output": 0.57 + "input": 0, + "output": 0 } }, { - "id": "tencent-hunyuan-a13b-instruct", - "name": "tencent/Hunyuan-A13B-Instruct", - "display_name": "tencent/Hunyuan-A13B-Instruct", + "id": "openai/o4-mini", + "name": "OpenAI o4-mini", + "display_name": "OpenAI o4-mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 200000, + "output": 100000 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-06-30", - "last_updated": "2025-11-25", + "knowledge": "2024-04", + "release_date": "2025-01-31", + "last_updated": "2025-01-31", "cost": { - "input": 0.14, - "output": 0.57 + "input": 0, + "output": 0 } }, { - "id": "thudm-glm-4-32b-0414", - "name": "THUDM/GLM-4-32B-0414", - "display_name": "THUDM/GLM-4-32B-0414", + "id": "openai/o1", + "name": "OpenAI o1", + "display_name": "OpenAI o1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 33000, - "output": 33000 + "context": 200000, + "output": 100000 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-04-18", - "last_updated": "2025-11-25", + "knowledge": "2023-10", + "release_date": "2024-09-12", + "last_updated": "2024-12-17", "cost": { - "input": 0.27, - "output": 0.27 + "input": 0, + "output": 0 } }, { - "id": "deepseek-ai-deepseek-r1-distill-qwen-32b", - "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + "id": "openai/o1-mini", + "name": "OpenAI o1-mini", + "display_name": "OpenAI o1-mini", "modalities": { "input": [ "text" @@ -24188,70 +24076,75 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 128000, + "output": 65536 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": true, "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-01-20", - "last_updated": "2025-11-25", + "knowledge": "2023-10", + "release_date": "2024-09-12", + "last_updated": "2024-12-17", "cost": { - "input": 0.18, - "output": 0.18 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-next-80b-a3b-instruct", - "name": "Qwen/Qwen3-Next-80B-A3B-Instruct", - "display_name": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "id": "openai/o3", + "name": "OpenAI o3", + "display_name": "OpenAI o3", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 200000, + "output": 100000 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-09-18", - "last_updated": "2025-11-25", + "knowledge": "2024-04", + "release_date": "2025-01-31", + "last_updated": "2025-01-31", "cost": { - "input": 0.14, - "output": 1.4 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen3-vl-30b-a3b-instruct", - "name": "Qwen/Qwen3-VL-30B-A3B-Instruct", - "display_name": "Qwen/Qwen3-VL-30B-A3B-Instruct", + "id": "openai/gpt-4o-mini", + "name": "GPT-4o mini", + "display_name": "GPT-4o mini", "modalities": { "input": [ "text", - "image" + "image", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -24260,28 +24153,31 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-10-05", - "last_updated": "2025-11-25", + "knowledge": "2023-10", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", "cost": { - "input": 0.29, - "output": 1 + "input": 0, + "output": 0 } }, { - "id": "moonshotai-kimi-k2-thinking", - "name": "moonshotai/Kimi-K2-Thinking", - "display_name": "moonshotai/Kimi-K2-Thinking", + "id": "meta/llama-3.2-11b-vision-instruct", + "name": "Llama-3.2-11B-Vision-Instruct", + "display_name": "Llama-3.2-11B-Vision-Instruct", "modalities": { "input": [ - "text" + "text", + "image", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 128000, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -24290,18 +24186,19 @@ "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-11-07", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", "cost": { - "input": 0.55, - "output": 2.5 + "input": 0, + "output": 0 } }, { - "id": "qwen-qwen2.5-14b-instruct", - "name": "Qwen/Qwen2.5-14B-Instruct", - "display_name": "Qwen/Qwen2.5-14B-Instruct", + "id": "meta/meta-llama-3.1-405b-instruct", + "name": "Meta-Llama-3.1-405B-Instruct", + "display_name": "Meta-Llama-3.1-405B-Instruct", "modalities": { "input": [ "text" @@ -24311,36 +24208,29 @@ ] }, "limit": { - "context": 33000, - "output": 4000 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2024-09-18", - "last_updated": "2025-11-25", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 0.1, - "output": 0.1 + "input": 0, + "output": 0 } - } - ] - }, - "helicone": { - "id": "helicone", - "name": "Helicone", - "display_name": "Helicone", - "api": "https://ai-gateway.helicone.ai/v1", - "doc": "https://helicone.ai/models", - "models": [ + }, { - "id": "gpt-4.1-nano", - "name": "OpenAI GPT-4.1 Nano", - "display_name": "OpenAI GPT-4.1 Nano", + "id": "meta/llama-4-maverick-17b-128e-instruct-fp8", + "name": "Llama 4 Maverick 17B 128E Instruct FP8", + "display_name": "Llama 4 Maverick 17B 128E Instruct FP8", "modalities": { "input": [ "text", @@ -24351,97 +24241,93 @@ ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 128000, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-31", + "last_updated": "2025-01-31", "cost": { - "input": 0.09999999999999999, - "output": 0.39999999999999997, - "cache_read": 0.024999999999999998 + "input": 0, + "output": 0 } }, { - "id": "grok-4-fast-non-reasoning", - "name": "xAI Grok 4 Fast Non-Reasoning", - "display_name": "xAI Grok 4 Fast Non-Reasoning", + "id": "meta/meta-llama-3-70b-instruct", + "name": "Meta-Llama-3-70B-Instruct", + "display_name": "Meta-Llama-3-70B-Instruct", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 2000000, - "output": 2000000 + "context": 8192, + "output": 2048 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-09", - "release_date": "2025-09-19", - "last_updated": "2025-09-19", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-04-18", + "last_updated": "2024-04-18", "cost": { - "input": 0.19999999999999998, - "output": 0.5, - "cache_read": 0.049999999999999996 + "input": 0, + "output": 0 } }, { - "id": "qwen3-coder", - "name": "Qwen3 Coder 480B A35B Instruct Turbo", - "display_name": "Qwen3 Coder 480B A35B Instruct Turbo", + "id": "meta/meta-llama-3.1-70b-instruct", + "name": "Meta-Llama-3.1-70B-Instruct", + "display_name": "Meta-Llama-3.1-70B-Instruct", "modalities": { "input": [ - "text", - "image", - "audio", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 16384 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-07-23", - "last_updated": "2025-07-23", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 0.22, - "output": 0.95 + "input": 0, + "output": 0 } }, { - "id": "deepseek-v3", - "name": "DeepSeek V3", - "display_name": "DeepSeek V3", + "id": "meta/llama-3.3-70b-instruct", + "name": "Llama-3.3-70B-Instruct", + "display_name": "Llama-3.3-70B-Instruct", "modalities": { "input": [ "text" @@ -24452,40 +24338,41 @@ }, "limit": { "context": 128000, - "output": 8192 + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-12", - "release_date": "2024-12-26", - "last_updated": "2024-12-26", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", "cost": { - "input": 0.56, - "output": 1.68, - "cache_read": 0.07 + "input": 0, + "output": 0 } }, { - "id": "claude-opus-4", - "name": "Anthropic: Claude Opus 4", - "display_name": "Anthropic: Claude Opus 4", + "id": "meta/llama-3.2-90b-vision-instruct", + "name": "Llama-3.2-90B-Vision-Instruct", + "display_name": "Llama-3.2-90B-Vision-Instruct", "modalities": { "input": [ "text", - "image" + "image", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 128000, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -24494,33 +24381,30 @@ "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-05", - "release_date": "2025-05-14", - "last_updated": "2025-05-14", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0, + "output": 0 } }, { - "id": "grok-4-fast-reasoning", - "name": "xAI: Grok 4 Fast Reasoning", - "display_name": "xAI: Grok 4 Fast Reasoning", + "id": "meta/meta-llama-3-8b-instruct", + "name": "Meta-Llama-3-8B-Instruct", + "display_name": "Meta-Llama-3-8B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 2000000, - "output": 2000000 + "context": 8192, + "output": 2048 }, "temperature": true, "tool_call": true, @@ -24529,63 +24413,63 @@ "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-09", - "release_date": "2025-09-01", - "last_updated": "2025-09-01", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-04-18", + "last_updated": "2024-04-18", "cost": { - "input": 0.19999999999999998, - "output": 0.5, - "cache_read": 0.049999999999999996 + "input": 0, + "output": 0 } }, { - "id": "llama-3.1-8b-instant", - "name": "Meta Llama 3.1 8B Instant", - "display_name": "Meta Llama 3.1 8B Instant", + "id": "meta/llama-4-scout-17b-16e-instruct", + "name": "Llama 4 Scout 17B 16E Instruct", + "display_name": "Llama 4 Scout 17B 16E Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 32678 + "context": 128000, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-07", - "release_date": "2024-07-01", - "last_updated": "2024-07-01", + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-31", + "last_updated": "2025-01-31", "cost": { - "input": 0.049999999999999996, - "output": 0.08 + "input": 0, + "output": 0 } }, { - "id": "claude-opus-4-1", - "name": "Anthropic: Claude Opus 4.1", - "display_name": "Anthropic: Claude Opus 4.1", + "id": "meta/meta-llama-3.1-8b-instruct", + "name": "Meta-Llama-3.1-8B-Instruct", + "display_name": "Meta-Llama-3.1-8B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -24594,21 +24478,19 @@ "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-08", - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0, + "output": 0 } }, { - "id": "grok-4", - "name": "xAI Grok 4", - "display_name": "xAI Grok 4", + "id": "ai21-labs/ai21-jamba-1.5-large", + "name": "AI21 Jamba 1.5 Large", + "display_name": "AI21 Jamba 1.5 Large", "modalities": { "input": [ "text" @@ -24619,65 +24501,71 @@ }, "limit": { "context": 256000, - "output": 256000 + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2024-07", - "release_date": "2024-07-09", - "last_updated": "2024-07-09", - "cost": { - "input": 3, - "output": 15, - "cache_read": 0.75 + "knowledge": "2024-03", + "release_date": "2024-08-29", + "last_updated": "2024-08-29", + "cost": { + "input": 0, + "output": 0 } }, { - "id": "qwen3-next-80b-a3b-instruct", - "name": "Qwen3 Next 80B A3B Instruct", - "display_name": "Qwen3 Next 80B A3B Instruct", + "id": "ai21-labs/ai21-jamba-1.5-mini", + "name": "AI21 Jamba 1.5 Mini", + "display_name": "AI21 Jamba 1.5 Mini", "modalities": { "input": [ - "text", - "image", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 16384 + "context": 256000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2024-03", + "release_date": "2024-08-29", + "last_updated": "2024-08-29", "cost": { - "input": 0.14, - "output": 1.4 + "input": 0, + "output": 0 } - }, + } + ] + }, + "togetherai": { + "id": "togetherai", + "name": "Together AI", + "display_name": "Together AI", + "doc": "https://docs.together.ai/docs/serverless-models", + "models": [ { - "id": "llama-4-maverick", - "name": "Meta Llama 4 Maverick 17B 128E", - "display_name": "Meta Llama 4 Maverick 17B 128E", + "id": "moonshotai/Kimi-K2-Instruct", + "name": "Kimi K2 Instruct", + "display_name": "Kimi K2 Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -24685,7 +24573,7 @@ }, "limit": { "context": 131072, - "output": 8192 + "output": 32768 }, "temperature": true, "tool_call": true, @@ -24693,19 +24581,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-07-14", + "last_updated": "2025-07-14", "cost": { - "input": 0.15, - "output": 0.6 + "input": 1, + "output": 3 } }, { - "id": "llama-prompt-guard-2-86m", - "name": "Meta Llama Prompt Guard 2 86M", - "display_name": "Meta Llama Prompt Guard 2 86M", + "id": "moonshotai/Kimi-K2-Thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ "text" @@ -24715,62 +24603,60 @@ ] }, "limit": { - "context": 512, - "output": 2 + "context": 262144, + "output": 32768 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-10-01", - "last_updated": "2024-10-01", + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-11-06", + "last_updated": "2025-11-06", "cost": { - "input": 0.01, - "output": 0.01 + "input": 1.2, + "output": 4 } }, { - "id": "grok-4-1-fast-reasoning", - "name": "xAI Grok 4.1 Fast Reasoning", - "display_name": "xAI Grok 4.1 Fast Reasoning", + "id": "essentialai/Rnj-1-Instruct", + "name": "Rnj-1 Instruct", + "display_name": "Rnj-1 Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 2000000, - "output": 2000000 + "context": 32768, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-11", - "release_date": "2025-11-17", - "last_updated": "2025-11-17", + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-12-05", + "last_updated": "2025-12-05", "cost": { - "input": 0.19999999999999998, - "output": 0.5, - "cache_read": 0.049999999999999996 + "input": 0.15, + "output": 0.15 } }, { - "id": "grok-code-fast-1", - "name": "xAI Grok Code Fast 1", - "display_name": "xAI Grok Code Fast 1", + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", "modalities": { "input": [ "text" @@ -24780,41 +24666,40 @@ ] }, "limit": { - "context": 256000, - "output": 10000 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-08", - "release_date": "2024-08-25", - "last_updated": "2024-08-25", + "open_weights": true, + "knowledge": "2025-08", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0.19999999999999998, - "output": 1.5, - "cache_read": 0.02 + "input": 0.15, + "output": 0.6 } }, { - "id": "claude-4.5-haiku", - "name": "Anthropic: Claude 4.5 Haiku", - "display_name": "Anthropic: Claude 4.5 Haiku", + "id": "meta-llama/Llama-3.3-70B-Instruct-Turbo", + "name": "Llama 3.3 70B", + "display_name": "Llama 3.3 70B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 131072, + "output": 66536 }, "temperature": true, "tool_call": true, @@ -24822,21 +24707,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-10", - "release_date": "2025-10-01", - "last_updated": "2025-10-01", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", "cost": { - "input": 1, - "output": 5, - "cache_read": 0.09999999999999999, - "cache_write": 1.25 + "input": 0.88, + "output": 0.88 } }, { - "id": "llama-3.1-8b-instruct-turbo", - "name": "Meta Llama 3.1 8B Instruct Turbo", - "display_name": "Meta Llama 3.1 8B Instruct Turbo", + "id": "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", + "name": "Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen3 Coder 480B A35B Instruct", "modalities": { "input": [ "text" @@ -24846,8 +24729,8 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 262144, + "output": 66536 }, "temperature": true, "tool_call": true, @@ -24855,90 +24738,85 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-07", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", "cost": { - "input": 0.02, - "output": 0.03 + "input": 2, + "output": 2 } }, { - "id": "gpt-5.1-codex", - "name": "OpenAI: GPT-5.1 Codex", - "display_name": "OpenAI: GPT-5.1 Codex", + "id": "zai-org/GLM-4.6", + "name": "GLM 4.6", + "display_name": "GLM 4.6", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text", - "image" + "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 200000, + "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": true, + "knowledge": "2025-09", + "release_date": "2025-09-30", + "last_updated": "2025-09-30", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.12500000000000003 + "input": 0.6, + "output": 2.2 } }, { - "id": "gpt-4.1-mini-2025-04-14", - "name": "OpenAI GPT-4.1 Mini", - "display_name": "OpenAI GPT-4.1 Mini", + "id": "deepseek-ai/DeepSeek-R1", + "name": "DeepSeek R1", + "display_name": "DeepSeek R1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 163839, + "output": 12288 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2024-12-26", + "last_updated": "2025-03-24", "cost": { - "input": 0.39999999999999997, - "output": 1.5999999999999999, - "cache_read": 0.09999999999999999 + "input": 3, + "output": 7 } }, { - "id": "llama-guard-4", - "name": "Meta Llama Guard 4 12B", - "display_name": "Meta Llama Guard 4 12B", + "id": "deepseek-ai/DeepSeek-V3", + "name": "DeepSeek V3", + "display_name": "DeepSeek V3", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -24946,27 +24824,28 @@ }, "limit": { "context": 131072, - "output": 1024 + "output": 12288 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-05-29", "cost": { - "input": 0.21, - "output": 0.21 + "input": 1.25, + "output": 1.25 } }, { - "id": "llama-3.1-8b-instruct", - "name": "Meta Llama 3.1 8B Instruct", - "display_name": "Meta Llama 3.1 8B Instruct", + "id": "deepseek-ai/DeepSeek-V3-1", + "name": "DeepSeek V3.1", + "display_name": "DeepSeek V3.1", "modalities": { "input": [ "text" @@ -24976,99 +24855,99 @@ ] }, "limit": { - "context": 16384, - "output": 16384 + "context": 131072, + "output": 12288 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-07", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "open_weights": true, + "knowledge": "2025-08", + "release_date": "2025-08-21", + "last_updated": "2025-08-21", "cost": { - "input": 0.02, - "output": 0.049999999999999996 + "input": 0.6, + "output": 1.7 } - }, + } + ] + }, + "azure": { + "id": "azure", + "name": "Azure", + "display_name": "Azure", + "doc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", + "models": [ { - "id": "gemini-3-pro-preview", - "name": "Google Gemini 3 Pro Preview", - "display_name": "Google Gemini 3 Pro Preview", + "id": "gpt-4.1-nano", + "name": "GPT-4.1 nano", + "display_name": "GPT-4.1 nano", "modalities": { "input": [ "text", - "image", - "audio", - "video" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 1047576, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-11", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", + "knowledge": "2024-05", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 2, - "output": 12, - "cache_read": 0.19999999999999998 + "input": 0.1, + "output": 0.4, + "cache_read": 0.03 } }, { - "id": "gemini-2.5-flash", - "name": "Google Gemini 2.5 Flash", - "display_name": "Google Gemini 2.5 Flash", + "id": "text-embedding-3-small", + "name": "text-embedding-3-small", + "display_name": "text-embedding-3-small", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65535 + "context": 8191, + "output": 1536 }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2025-06", - "release_date": "2025-06-17", - "last_updated": "2025-06-17", + "release_date": "2024-01-25", + "last_updated": "2024-01-25", "cost": { - "input": 0.3, - "output": 2.5, - "cache_read": 0.075, - "cache_write": 0.3 + "input": 0.02, + "output": 0 } }, { - "id": "gpt-4.1-mini", - "name": "OpenAI GPT-4.1 Mini", - "display_name": "OpenAI GPT-4.1 Mini", + "id": "grok-4-fast-non-reasoning", + "name": "Grok 4 Fast (Non-Reasoning)", + "display_name": "Grok 4 Fast (Non-Reasoning)", "modalities": { "input": [ "text", @@ -25079,29 +24958,29 @@ ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 2000000, + "output": 30000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "knowledge": "2025-07", + "release_date": "2025-09-19", + "last_updated": "2025-09-19", "cost": { - "input": 0.39999999999999997, - "output": 1.5999999999999999, - "cache_read": 0.09999999999999999 + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 } }, { - "id": "deepseek-v3.1-terminus", - "name": "DeepSeek V3.1 Terminus", - "display_name": "DeepSeek V3.1 Terminus", + "id": "deepseek-r1-0528", + "name": "DeepSeek-R1-0528", + "display_name": "DeepSeek-R1-0528", "modalities": { "input": [ "text" @@ -25111,8 +24990,8 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 163840, + "output": 163840 }, "temperature": true, "tool_call": true, @@ -25121,85 +25000,84 @@ "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-09", - "release_date": "2025-09-22", - "last_updated": "2025-09-22", + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-05-28", + "last_updated": "2025-05-28", "cost": { - "input": 0.27, - "output": 1, - "cache_read": 0.21600000000000003 + "input": 1.35, + "output": 5.4 } }, { - "id": "llama-prompt-guard-2-22m", - "name": "Meta Llama Prompt Guard 2 22M", - "display_name": "Meta Llama Prompt Guard 2 22M", + "id": "grok-4-fast-reasoning", + "name": "Grok 4 Fast (Reasoning)", + "display_name": "Grok 4 Fast (Reasoning)", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 512, - "output": 2 + "context": 2000000, + "output": 30000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-10-01", - "last_updated": "2024-10-01", + "knowledge": "2025-07", + "release_date": "2025-09-19", + "last_updated": "2025-09-19", "cost": { - "input": 0.01, - "output": 0.01 + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 } }, { - "id": "claude-3.5-sonnet-v2", - "name": "Anthropic: Claude 3.5 Sonnet v2", - "display_name": "Anthropic: Claude 3.5 Sonnet v2", + "id": "phi-3-medium-128k-instruct", + "name": "Phi-3-medium-instruct (128k)", + "display_name": "Phi-3-medium-instruct (128k)", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 128000, + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.30000000000000004, - "cache_write": 3.75 + "input": 0.17, + "output": 0.68 } }, { - "id": "sonar-deep-research", - "name": "Perplexity Sonar Deep Research", - "display_name": "Perplexity Sonar Deep Research", + "id": "gpt-4", + "name": "GPT-4", + "display_name": "GPT-4", "modalities": { "input": [ "text" @@ -25209,64 +25087,64 @@ ] }, "limit": { - "context": 127000, - "output": 4096 + "context": 8192, + "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-27", - "last_updated": "2025-01-27", + "knowledge": "2023-11", + "release_date": "2023-03-14", + "last_updated": "2023-03-14", "cost": { - "input": 2, - "output": 8 + "input": 60, + "output": 120 } }, { - "id": "gemini-2.5-flash-lite", - "name": "Google Gemini 2.5 Flash Lite", - "display_name": "Google Gemini 2.5 Flash Lite", + "id": "claude-opus-4-1", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65535 - }, + "context": 200000, + "output": 32000 + }, "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-07-22", - "last_updated": "2025-07-22", + "knowledge": "2025-03-31", + "release_date": "2025-11-18", + "last_updated": "2025-11-18", "cost": { - "input": 0.09999999999999999, - "output": 0.39999999999999997, - "cache_read": 0.024999999999999998, - "cache_write": 0.09999999999999999 + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } }, { - "id": "claude-sonnet-4-5-20250929", - "name": "Anthropic: Claude Sonnet 4.5 (20250929)", - "display_name": "Anthropic: Claude Sonnet 4.5 (20250929)", + "id": "gpt-5.2-chat", + "name": "GPT-5.2 Chat", + "display_name": "GPT-5.2 Chat", "modalities": { "input": [ "text", @@ -25277,63 +25155,62 @@ ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 128000, + "output": 16384 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-09", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "knowledge": "2025-08-31", + "release_date": "2025-12-11", + "last_updated": "2025-12-11", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.30000000000000004, - "cache_write": 3.75 + "input": 1.75, + "output": 14, + "cache_read": 0.175 } }, { - "id": "grok-3", - "name": "xAI Grok 3", - "display_name": "xAI Grok 3", + "id": "llama-3.2-11b-vision-instruct", + "name": "Llama-3.2-11B-Vision-Instruct", + "display_name": "Llama-3.2-11B-Vision-Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 128000, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-06-01", - "last_updated": "2024-06-01", + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.75 + "input": 0.37, + "output": 0.37 } }, { - "id": "mistral-small", - "name": "Mistral Small", - "display_name": "Mistral Small", + "id": "cohere-embed-v-4-0", + "name": "Embed v4", + "display_name": "Embed v4", "modalities": { "input": [ "text", @@ -25345,27 +25222,26 @@ }, "limit": { "context": 128000, - "output": 128000 + "output": 1536 }, - "temperature": true, + "temperature": false, "tool_call": false, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-02", - "release_date": "2024-02-26", - "last_updated": "2024-02-26", + "attachment": true, + "open_weights": true, + "release_date": "2025-04-15", + "last_updated": "2025-04-15", "cost": { - "input": 75, - "output": 200 + "input": 0.12, + "output": 0 } }, { - "id": "kimi-k2-0711", - "name": "Kimi K2 (07/11)", - "display_name": "Kimi K2 (07/11)", + "id": "cohere-command-r-08-2024", + "name": "Command R", + "display_name": "Command R", "modalities": { "input": [ "text" @@ -25375,61 +25251,63 @@ ] }, "limit": { - "context": 131072, - "output": 16384 + "context": 128000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": true, + "knowledge": "2024-06-01", + "release_date": "2024-08-30", + "last_updated": "2024-08-30", "cost": { - "input": 0.5700000000000001, - "output": 2.3 + "input": 0.15, + "output": 0.6 } }, { - "id": "chatgpt-4o-latest", - "name": "OpenAI ChatGPT-4o", - "display_name": "OpenAI ChatGPT-4o", + "id": "grok-4", + "name": "Grok 4", + "display_name": "Grok 4", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 256000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2024-08", - "release_date": "2024-08-14", - "last_updated": "2024-08-14", + "knowledge": "2025-07", + "release_date": "2025-07-09", + "last_updated": "2025-07-09", "cost": { - "input": 5, - "output": 20, - "cache_read": 2.5 + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.75 } }, { - "id": "qwen3-coder-30b-a3b-instruct", - "name": "Qwen3 Coder 30B A3B Instruct", - "display_name": "Qwen3 Coder 30B A3B Instruct", + "id": "cohere-embed-v3-multilingual", + "name": "Embed v3 Multilingual", + "display_name": "Embed v3 Multilingual", "modalities": { "input": [ "text" @@ -25439,28 +25317,27 @@ ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 512, + "output": 1024 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-07-31", - "last_updated": "2025-07-31", + "open_weights": true, + "release_date": "2023-11-07", + "last_updated": "2023-11-07", "cost": { - "input": 0.09999999999999999, - "output": 0.3 + "input": 0.1, + "output": 0 } }, { - "id": "kimi-k2-0905", - "name": "Kimi K2 (09/05)", - "display_name": "Kimi K2 (09/05)", + "id": "phi-4-mini", + "name": "Phi-4-mini", + "display_name": "Phi-4-mini", "modalities": { "input": [ "text" @@ -25470,8 +25347,8 @@ ] }, "limit": { - "context": 262144, - "output": 16384 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -25479,20 +25356,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-09", - "release_date": "2025-09-05", - "last_updated": "2025-09-05", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 0.5, - "output": 2, - "cache_read": 0.39999999999999997 + "input": 0.075, + "output": 0.3 } }, { - "id": "sonar-reasoning", - "name": "Perplexity Sonar Reasoning", - "display_name": "Perplexity Sonar Reasoning", + "id": "gpt-4-32k", + "name": "GPT-4 32K", + "display_name": "GPT-4 32K", "modalities": { "input": [ "text" @@ -25502,29 +25378,28 @@ ] }, "limit": { - "context": 127000, - "output": 4096 + "context": 32768, + "output": 32768 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-27", - "last_updated": "2025-01-27", + "knowledge": "2023-11", + "release_date": "2023-03-14", + "last_updated": "2023-03-14", "cost": { - "input": 1, - "output": 5 + "input": 60, + "output": 120 } }, { - "id": "llama-3.3-70b-instruct", - "name": "Meta Llama 3.3 70B Instruct", - "display_name": "Meta Llama 3.3 70B Instruct", + "id": "meta-llama-3.1-405b-instruct", + "name": "Meta-Llama-3.1-405B-Instruct", + "display_name": "Meta-Llama-3.1-405B-Instruct", "modalities": { "input": [ "text" @@ -25535,7 +25410,7 @@ }, "limit": { "context": 128000, - "output": 16400 + "output": 32768 }, "temperature": true, "tool_call": true, @@ -25543,53 +25418,51 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-12", - "release_date": "2024-12-06", - "last_updated": "2024-12-06", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 0.13, - "output": 0.39 + "input": 5.33, + "output": 16 } }, { - "id": "gpt-5.1-codex-mini", - "name": "OpenAI: GPT-5.1 Codex Mini", - "display_name": "OpenAI: GPT-5.1 Codex Mini", + "id": "deepseek-r1", + "name": "DeepSeek-R1", + "display_name": "DeepSeek-R1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text", - "image" + "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 163840, + "output": 163840 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.024999999999999998 + "input": 1.35, + "output": 5.4 } }, { - "id": "kimi-k2-thinking", - "name": "Kimi K2 Thinking", - "display_name": "Kimi K2 Thinking", + "id": "grok-code-fast-1", + "name": "Grok Code Fast 1", + "display_name": "Grok Code Fast 1", "modalities": { "input": [ "text" @@ -25600,161 +25473,165 @@ }, "limit": { "context": 256000, - "output": 262144 + "output": 10000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2025-11", - "release_date": "2025-11-06", - "last_updated": "2025-11-06", + "knowledge": "2023-10", + "release_date": "2025-08-28", + "last_updated": "2025-08-28", "cost": { - "input": 0.48, - "output": 2 + "input": 0.2, + "output": 1.5, + "cache_read": 0.02 } }, { - "id": "o3-mini", - "name": "OpenAI o3 Mini", - "display_name": "OpenAI o3 Mini", + "id": "gpt-5.1-codex", + "name": "GPT-5.1 Codex", + "display_name": "GPT-5.1 Codex", "modalities": { "input": [ - "text" + "text", + "image", + "audio" ], "output": [ - "text" + "text", + "image", + "audio" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 400000, + "output": 128000 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2023-10", - "release_date": "2023-10-01", - "last_updated": "2023-10-01", + "knowledge": "2024-09-30", + "release_date": "2025-11-14", + "last_updated": "2025-11-14", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.55 + "input": 1.25, + "output": 10, + "cache_read": 0.125 } }, { - "id": "claude-4.5-sonnet", - "name": "Anthropic: Claude Sonnet 4.5", - "display_name": "Anthropic: Claude Sonnet 4.5", + "id": "phi-3-mini-4k-instruct", + "name": "Phi-3-mini-instruct (4k)", + "display_name": "Phi-3-mini-instruct (4k)", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 4096, + "output": 1024 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-09", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.30000000000000004, - "cache_write": 3.75 + "input": 0.13, + "output": 0.52 } }, { - "id": "gpt-5.1", - "name": "OpenAI GPT-5.1", - "display_name": "OpenAI GPT-5.1", + "id": "claude-haiku-4-5", + "name": "Claude Haiku 4.5", + "display_name": "Claude Haiku 4.5", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ - "text", - "image" + "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 200000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2025-02-31", + "release_date": "2025-11-18", + "last_updated": "2025-11-18", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.12500000000000003 + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 } }, { - "id": "codex-mini-latest", - "name": "OpenAI Codex Mini Latest", - "display_name": "OpenAI Codex Mini Latest", + "id": "deepseek-v3.2-speciale", + "name": "DeepSeek-V3.2-Speciale", + "display_name": "DeepSeek-V3.2-Speciale", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 128000, + "output": 128000 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-12-01", + "last_updated": "2025-12-01", "cost": { - "input": 1.5, - "output": 6, - "cache_read": 0.375 + "input": 0.28, + "output": 0.42 } }, { - "id": "gpt-5-nano", - "name": "OpenAI GPT-5 Nano", - "display_name": "OpenAI GPT-5 Nano", + "id": "mistral-medium-2505", + "name": "Mistral Medium 3", + "display_name": "Mistral Medium 3", "modalities": { "input": [ "text", @@ -25765,65 +25642,67 @@ ] }, "limit": { - "context": 400000, + "context": 128000, "output": 128000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2025-05", + "release_date": "2025-05-07", + "last_updated": "2025-05-07", "cost": { - "input": 0.049999999999999996, - "output": 0.39999999999999997, - "cache_read": 0.005 + "input": 0.4, + "output": 2 } }, { - "id": "gpt-5-codex", - "name": "OpenAI: GPT-5 Codex", - "display_name": "OpenAI: GPT-5 Codex", + "id": "claude-opus-4-5", + "name": "Claude Opus 4.5", + "display_name": "Claude Opus 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 200000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2025-03-31", + "release_date": "2025-11-24", + "last_updated": "2025-08-01", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.12500000000000003 + "input": 5, + "output": 25, + "cache_read": 1.5, + "cache_write": 18.75 } }, { - "id": "gpt-4o", - "name": "OpenAI GPT-4o", - "display_name": "OpenAI GPT-4o", + "id": "phi-3-small-128k-instruct", + "name": "Phi-3-small-instruct (128k)", + "display_name": "Phi-3-small-instruct (128k)", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -25831,28 +25710,27 @@ }, "limit": { "context": 128000, - "output": 16384 + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-05", - "release_date": "2024-05-13", - "last_updated": "2024-05-13", - "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", + "cost": { + "input": 0.15, + "output": 0.6 } }, { - "id": "deepseek-tng-r1t2-chimera", - "name": "DeepSeek TNG R1T2 Chimera", - "display_name": "DeepSeek TNG R1T2 Chimera", + "id": "cohere-command-a", + "name": "Command A", + "display_name": "Command A", "modalities": { "input": [ "text" @@ -25862,40 +25740,40 @@ ] }, "limit": { - "context": 130000, - "output": 163840 + "context": 256000, + "output": 8000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-07-02", - "last_updated": "2025-07-02", + "open_weights": true, + "knowledge": "2024-06-01", + "release_date": "2025-03-13", + "last_updated": "2025-03-13", "cost": { - "input": 0.3, - "output": 1.2 + "input": 2.5, + "output": 10 } }, { - "id": "claude-4.5-opus", - "name": "Anthropic: Claude Opus 4.5", - "display_name": "Anthropic: Claude Opus 4.5", + "id": "cohere-command-r-plus-08-2024", + "name": "Command R+", + "display_name": "Command R+", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 128000, + "output": 4000 }, "temperature": true, "tool_call": true, @@ -25904,21 +25782,51 @@ "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-11", - "release_date": "2025-11-24", - "last_updated": "2025-11-24", + "open_weights": true, + "knowledge": "2024-06-01", + "release_date": "2024-08-30", + "last_updated": "2024-08-30", "cost": { - "input": 5, - "output": 25, - "cache_read": 0.5000000000000001, - "cache_write": 6.25 + "input": 2.5, + "output": 10 } }, { - "id": "gpt-4.1", - "name": "OpenAI GPT-4.1", - "display_name": "OpenAI GPT-4.1", + "id": "llama-4-maverick-17b-128e-instruct-fp8", + "name": "Llama 4 Maverick 17B 128E Instruct FP8", + "display_name": "Llama 4 Maverick 17B 128E Instruct FP8", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0.25, + "output": 1 + } + }, + { + "id": "gpt-4.1-mini", + "name": "GPT-4.1 mini", + "display_name": "GPT-4.1 mini", "modalities": { "input": [ "text", @@ -25937,52 +25845,55 @@ "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-04", + "knowledge": "2024-05", "release_date": "2025-04-14", "last_updated": "2025-04-14", "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 } }, { - "id": "sonar", - "name": "Perplexity Sonar", - "display_name": "Perplexity Sonar", + "id": "gpt-5-chat", + "name": "GPT-5 Chat", + "display_name": "GPT-5 Chat", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 127000, - "output": 4096 + "context": 128000, + "output": 16384 }, - "temperature": true, + "temperature": false, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-27", - "last_updated": "2025-01-27", + "knowledge": "2024-10-24", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 1, - "output": 1 + "input": 1.25, + "output": 10, + "cache_read": 0.13 } }, { - "id": "glm-4.6", - "name": "Zai GLM-4.6", - "display_name": "Zai GLM-4.6", + "id": "deepseek-v3.1", + "name": "DeepSeek-V3.1", + "display_name": "DeepSeek-V3.1", "modalities": { "input": [ "text" @@ -25992,7 +25903,7 @@ ] }, "limit": { - "context": 204800, + "context": 131072, "output": 131072 }, "temperature": true, @@ -26002,117 +25913,118 @@ "default": true }, "attachment": false, - "open_weights": false, + "open_weights": true, "knowledge": "2024-07", - "release_date": "2024-07-18", - "last_updated": "2024-07-18", + "release_date": "2025-08-21", + "last_updated": "2025-08-21", "cost": { - "input": 0.44999999999999996, - "output": 1.5 + "input": 0.56, + "output": 1.68 } }, { - "id": "o4-mini", - "name": "OpenAI o4 Mini", - "display_name": "OpenAI o4 Mini", + "id": "phi-4", + "name": "Phi-4", + "display_name": "Phi-4", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 128000, + "output": 4096 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-06-01", - "last_updated": "2024-06-01", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.275 + "input": 0.125, + "output": 0.5 } }, { - "id": "qwen3-235b-a22b-thinking", - "name": "Qwen3 235B A22B Thinking", - "display_name": "Qwen3 235B A22B Thinking", + "id": "phi-4-mini-reasoning", + "name": "Phi-4-mini-reasoning", + "display_name": "Phi-4-mini-reasoning", "modalities": { "input": [ - "text", - "image", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 81920 + "context": 128000, + "output": 4096 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-07-25", - "last_updated": "2025-07-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 0.3, - "output": 2.9000000000000004 + "input": 0.075, + "output": 0.3 } }, { - "id": "hermes-2-pro-llama-3-8b", - "name": "Hermes 2 Pro Llama 3 8B", - "display_name": "Hermes 2 Pro Llama 3 8B", + "id": "claude-sonnet-4-5", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-05", - "release_date": "2024-05-27", - "last_updated": "2024-05-27", + "knowledge": "2025-07-31", + "release_date": "2025-11-18", + "last_updated": "2025-11-18", "cost": { - "input": 0.14, - "output": 0.14 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "o1", - "name": "OpenAI: o1", - "display_name": "OpenAI: o1", + "id": "gpt-3.5-turbo-0125", + "name": "GPT-3.5 Turbo 0125", + "display_name": "GPT-3.5 Turbo 0125", "modalities": { "input": [ "text" @@ -26122,29 +26034,28 @@ ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 16384, + "output": 16384 }, - "temperature": false, + "temperature": true, "tool_call": false, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2021-08", + "release_date": "2024-01-25", + "last_updated": "2024-01-25", "cost": { - "input": 15, - "output": 60, - "cache_read": 7.5 + "input": 0.5, + "output": 1.5 } }, { - "id": "grok-3-mini", - "name": "xAI Grok 3 Mini", - "display_name": "xAI Grok 3 Mini", + "id": "grok-3", + "name": "Grok 3", + "display_name": "Grok 3", "modalities": { "input": [ "text" @@ -26155,7 +26066,7 @@ }, "limit": { "context": 131072, - "output": 131072 + "output": 8192 }, "temperature": true, "tool_call": true, @@ -26164,19 +26075,19 @@ }, "attachment": false, "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-06-01", - "last_updated": "2024-06-01", + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", "cost": { - "input": 0.3, - "output": 0.5, - "cache_read": 0.075 + "input": 3, + "output": 15, + "cache_read": 0.75 } }, { - "id": "sonar-pro", - "name": "Perplexity Sonar Pro", - "display_name": "Perplexity Sonar Pro", + "id": "text-embedding-3-large", + "name": "text-embedding-3-large", + "display_name": "text-embedding-3-large", "modalities": { "input": [ "text" @@ -26186,61 +26097,57 @@ ] }, "limit": { - "context": 200000, - "output": 4096 + "context": 8191, + "output": 3072 }, - "temperature": true, "tool_call": false, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-27", - "last_updated": "2025-01-27", + "release_date": "2024-01-25", + "last_updated": "2024-01-25", "cost": { - "input": 3, - "output": 15 + "input": 0.13, + "output": 0 } }, { - "id": "gpt-5-mini", - "name": "OpenAI GPT-5 Mini", - "display_name": "OpenAI GPT-5 Mini", + "id": "meta-llama-3-70b-instruct", + "name": "Meta-Llama-3-70B-Instruct", + "display_name": "Meta-Llama-3-70B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 8192, + "output": 2048 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-04-18", + "last_updated": "2024-04-18", "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.024999999999999998 + "input": 2.68, + "output": 3.54 } }, { - "id": "deepseek-r1-distill-llama-70b", - "name": "DeepSeek R1 Distill Llama 70B", - "display_name": "DeepSeek R1 Distill Llama 70B", + "id": "deepseek-v3-0324", + "name": "DeepSeek-V3-0324", + "display_name": "DeepSeek-V3-0324", "modalities": { "input": [ "text" @@ -26250,29 +26157,28 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-20", - "last_updated": "2025-01-20", + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-03-24", + "last_updated": "2025-03-24", "cost": { - "input": 0.03, - "output": 0.13 + "input": 1.14, + "output": 4.56 } }, { - "id": "o1-mini", - "name": "OpenAI: o1-mini", - "display_name": "OpenAI: o1-mini", + "id": "phi-3-small-8k-instruct", + "name": "Phi-3-small-instruct (8k)", + "display_name": "Phi-3-small-instruct (8k)", "modalities": { "input": [ "text" @@ -26282,41 +26188,39 @@ ] }, "limit": { - "context": 128000, - "output": 65536 + "context": 8192, + "output": 2048 }, - "temperature": false, + "temperature": true, "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.55 + "input": 0.15, + "output": 0.6 } }, { - "id": "claude-3.7-sonnet", - "name": "Anthropic: Claude 3.7 Sonnet", - "display_name": "Anthropic: Claude 3.7 Sonnet", + "id": "meta-llama-3.1-70b-instruct", + "name": "Meta-Llama-3.1-70B-Instruct", + "display_name": "Meta-Llama-3.1-70B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -26324,21 +26228,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-02", - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.30000000000000004, - "cache_write": 3.75 + "input": 2.68, + "output": 3.54 } }, { - "id": "claude-3-haiku-20240307", - "name": "Anthropic: Claude 3 Haiku", - "display_name": "Anthropic: Claude 3 Haiku", + "id": "gpt-4-turbo", + "name": "GPT-4 Turbo", + "display_name": "GPT-4 Turbo", "modalities": { "input": [ "text", @@ -26349,7 +26251,7 @@ ] }, "limit": { - "context": 200000, + "context": 128000, "output": 4096 }, "temperature": true, @@ -26357,54 +26259,51 @@ "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-03", - "release_date": "2024-03-07", - "last_updated": "2024-03-07", + "knowledge": "2023-11", + "release_date": "2023-11-06", + "last_updated": "2024-04-09", "cost": { - "input": 0.25, - "output": 1.25, - "cache_read": 0.03, - "cache_write": 0.3 + "input": 10, + "output": 30 } }, { - "id": "o3-pro", - "name": "OpenAI o3 Pro", - "display_name": "OpenAI o3 Pro", + "id": "gpt-3.5-turbo-0613", + "name": "GPT-3.5 Turbo 0613", + "display_name": "GPT-3.5 Turbo 0613", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 16384, + "output": 16384 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-06-01", - "last_updated": "2024-06-01", + "knowledge": "2021-08", + "release_date": "2023-06-13", + "last_updated": "2023-06-13", "cost": { - "input": 20, - "output": 80 + "input": 3, + "output": 4 } }, { - "id": "qwen2.5-coder-7b-fast", - "name": "Qwen2.5 Coder 7B fast", - "display_name": "Qwen2.5 Coder 7B fast", + "id": "phi-3.5-mini-instruct", + "name": "Phi-3.5-mini-instruct", + "display_name": "Phi-3.5-mini-instruct", "modalities": { "input": [ "text" @@ -26414,8 +26313,8 @@ ] }, "limit": { - "context": 32000, - "output": 8192 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": false, @@ -26423,19 +26322,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-09", - "release_date": "2024-09-15", - "last_updated": "2024-09-15", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", "cost": { - "input": 0.03, - "output": 0.09 + "input": 0.13, + "output": 0.52 } }, { - "id": "deepseek-reasoner", - "name": "DeepSeek Reasoner", - "display_name": "DeepSeek Reasoner", + "id": "o1-preview", + "name": "o1-preview", + "display_name": "o1-preview", "modalities": { "input": [ "text" @@ -26446,127 +26345,130 @@ }, "limit": { "context": 128000, - "output": 64000 + "output": 32768 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-20", - "last_updated": "2025-01-20", + "knowledge": "2023-09", + "release_date": "2024-09-12", + "last_updated": "2024-09-12", "cost": { - "input": 0.56, - "output": 1.68, - "cache_read": 0.07 + "input": 16.5, + "output": 66, + "cache_read": 8.25 } }, { - "id": "gemini-2.5-pro", - "name": "Google Gemini 2.5 Pro", - "display_name": "Google Gemini 2.5 Pro", + "id": "llama-3.3-70b-instruct", + "name": "Llama-3.3-70B-Instruct", + "display_name": "Llama-3.3-70B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-06", - "release_date": "2025-06-17", - "last_updated": "2025-06-17", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.3125, - "cache_write": 1.25 + "input": 0.71, + "output": 0.71 } }, { - "id": "gemma-3-12b-it", - "name": "Google Gemma 3 12B", - "display_name": "Google Gemma 3 12B", + "id": "gpt-5.1-codex-mini", + "name": "GPT-5.1 Codex Mini", + "display_name": "GPT-5.1 Codex Mini", "modalities": { "input": [ "text", - "image" + "image", + "audio" ], "output": [ - "text" + "text", + "image", + "audio" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 400000, + "output": 128000 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2024-12", - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2024-09-30", + "release_date": "2025-11-14", + "last_updated": "2025-11-14", "cost": { - "input": 0.049999999999999996, - "output": 0.09999999999999999 + "input": 0.25, + "output": 2, + "cache_read": 0.025 } }, { - "id": "mistral-nemo", - "name": "Mistral Nemo", - "display_name": "Mistral Nemo", + "id": "kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16400 + "context": 262144, + "output": 262144 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-07", - "release_date": "2024-07-18", - "last_updated": "2024-07-18", + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-11-06", + "last_updated": "2025-12-02", "cost": { - "input": 20, - "output": 40 + "input": 0.6, + "output": 2.5, + "cache_read": 0.15 } }, { - "id": "o3", - "name": "OpenAI o3", - "display_name": "OpenAI o3", + "id": "model-router", + "name": "Model Router", + "display_name": "Model Router", "modalities": { "input": [ "text", @@ -26577,29 +26479,26 @@ ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 128000, + "output": 16384 }, - "temperature": false, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-06-01", - "last_updated": "2024-06-01", + "release_date": "2025-05-19", + "last_updated": "2025-11-18", "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 0.14, + "output": 0 } }, { - "id": "gpt-oss-20b", - "name": "OpenAI GPT-OSS 20b", - "display_name": "OpenAI GPT-OSS 20b", + "id": "o3-mini", + "name": "o3-mini", + "display_name": "o3-mini", "modalities": { "input": [ "text" @@ -26609,10 +26508,10 @@ ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, @@ -26620,50 +26519,56 @@ }, "attachment": false, "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-06-01", - "last_updated": "2024-06-01", + "knowledge": "2024-05", + "release_date": "2024-12-20", + "last_updated": "2025-01-29", "cost": { - "input": 0.049999999999999996, - "output": 0.19999999999999998 + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 } }, { - "id": "gpt-oss-120b", - "name": "OpenAI GPT-OSS 120b", - "display_name": "OpenAI GPT-OSS 120b", + "id": "gpt-5.1", + "name": "GPT-5.1", + "display_name": "GPT-5.1", "modalities": { "input": [ - "text" + "text", + "image", + "audio" ], "output": [ - "text" + "text", + "image", + "audio" ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 272000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-06-01", - "last_updated": "2024-06-01", + "knowledge": "2024-09-30", + "release_date": "2025-11-14", + "last_updated": "2025-11-14", "cost": { - "input": 0.04, - "output": 0.16 + "input": 1.25, + "output": 10, + "cache_read": 0.125 } }, { - "id": "claude-3.5-haiku", - "name": "Anthropic: Claude 3.5 Haiku", - "display_name": "Anthropic: Claude 3.5 Haiku", + "id": "gpt-5-nano", + "name": "GPT-5 Nano", + "display_name": "GPT-5 Nano", "modalities": { "input": [ "text", @@ -26674,30 +26579,30 @@ ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 272000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 0.7999999999999999, - "output": 4, - "cache_read": 0.08, - "cache_write": 1 + "input": 0.05, + "output": 0.4, + "cache_read": 0.01 } }, { - "id": "gpt-5-chat-latest", - "name": "OpenAI GPT-5 Chat Latest", - "display_name": "OpenAI GPT-5 Chat Latest", + "id": "gpt-5-codex", + "name": "GPT-5-Codex", + "display_name": "GPT-5-Codex", "modalities": { "input": [ "text", @@ -26708,29 +26613,30 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 400000, + "output": 128000 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2024-09", - "release_date": "2024-09-30", - "last_updated": "2024-09-30", + "knowledge": "2024-09-30", + "release_date": "2025-09-15", + "last_updated": "2025-09-15", "cost": { "input": 1.25, "output": 10, - "cache_read": 0.12500000000000003 + "cache_read": 0.13 } }, { - "id": "gpt-4o-mini", - "name": "OpenAI GPT-4o-mini", - "display_name": "OpenAI GPT-4o-mini", + "id": "llama-3.2-90b-vision-instruct", + "name": "Llama-3.2-90B-Vision-Instruct", + "display_name": "Llama-3.2-90B-Vision-Instruct", "modalities": { "input": [ "text", @@ -26742,28 +26648,27 @@ }, "limit": { "context": 128000, - "output": 16384 + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-07", - "release_date": "2024-07-18", - "last_updated": "2024-07-18", + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.075 + "input": 2.04, + "output": 2.04 } }, { - "id": "gemma2-9b-it", - "name": "Google Gemma 2", - "display_name": "Google Gemma 2", + "id": "phi-3-mini-128k-instruct", + "name": "Phi-3-mini-instruct (128k)", + "display_name": "Phi-3-mini-instruct (128k)", "modalities": { "input": [ "text" @@ -26773,8 +26678,8 @@ ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": false, @@ -26782,19 +26687,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-06-25", - "last_updated": "2024-06-25", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", "cost": { - "input": 0.01, - "output": 0.03 + "input": 0.13, + "output": 0.52 } }, { - "id": "claude-sonnet-4", - "name": "Anthropic: Claude Sonnet 4", - "display_name": "Anthropic: Claude Sonnet 4", + "id": "gpt-4o", + "name": "GPT-4o", + "display_name": "GPT-4o", "modalities": { "input": [ "text", @@ -26805,31 +26710,29 @@ ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-05", - "release_date": "2025-05-14", - "last_updated": "2025-05-14", + "knowledge": "2023-09", + "release_date": "2024-05-13", + "last_updated": "2024-05-13", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.30000000000000004, - "cache_write": 3.75 + "input": 2.5, + "output": 10, + "cache_read": 1.25 } }, { - "id": "sonar-reasoning-pro", - "name": "Perplexity Sonar Reasoning Pro", - "display_name": "Perplexity Sonar Reasoning Pro", + "id": "gpt-3.5-turbo-0301", + "name": "GPT-3.5 Turbo 0301", + "display_name": "GPT-3.5 Turbo 0301", "modalities": { "input": [ "text" @@ -26839,95 +26742,92 @@ ] }, "limit": { - "context": 127000, + "context": 4096, "output": 4096 }, "temperature": true, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-27", - "last_updated": "2025-01-27", + "knowledge": "2021-08", + "release_date": "2023-03-01", + "last_updated": "2023-03-01", "cost": { - "input": 2, - "output": 8 + "input": 1.5, + "output": 2 } }, { - "id": "gpt-5", - "name": "OpenAI GPT-5", - "display_name": "OpenAI GPT-5", + "id": "ministral-3b", + "name": "Ministral 3B", + "display_name": "Ministral 3B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 128000, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": true, + "knowledge": "2024-03", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.12500000000000003 + "input": 0.04, + "output": 0.04 } }, { - "id": "qwen3-vl-235b-a22b-instruct", - "name": "Qwen3 VL 235B A22B Instruct", - "display_name": "Qwen3 VL 235B A22B Instruct", + "id": "gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", "modalities": { "input": [ "text", - "image", - "video" + "image" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 16384 + "context": 1047576, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-09", - "release_date": "2025-09-23", - "last_updated": "2025-09-23", + "knowledge": "2024-05", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0.3, - "output": 1.5 + "input": 2, + "output": 8, + "cache_read": 0.5 } }, { - "id": "qwen3-30b-a3b", - "name": "Qwen3 30B A3B", - "display_name": "Qwen3 30B A3B", + "id": "o4-mini", + "name": "o4-mini", + "display_name": "o4-mini", "modalities": { "input": [ "text", @@ -26938,124 +26838,129 @@ ] }, "limit": { - "context": 41000, - "output": 41000 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-06", - "release_date": "2025-06-01", - "last_updated": "2025-06-01", + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", "cost": { - "input": 0.08, - "output": 0.29 + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 } }, { - "id": "deepseek-v3.2", - "name": "DeepSeek V3.2", - "display_name": "DeepSeek V3.2", + "id": "phi-4-multimodal", + "name": "Phi-4-multimodal", + "display_name": "Phi-4-multimodal", "modalities": { "input": [ - "text" + "text", + "image", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 163840, - "output": 65536 + "context": 128000, + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2025-09", - "release_date": "2025-09-22", - "last_updated": "2025-09-22", + "attachment": true, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 0.27, - "output": 0.41 + "input": 0.08, + "output": 0.32, + "input_audio": 4 } }, { - "id": "grok-4-1-fast-non-reasoning", - "name": "xAI Grok 4.1 Fast Non-Reasoning", - "display_name": "xAI Grok 4.1 Fast Non-Reasoning", + "id": "meta-llama-3-8b-instruct", + "name": "Meta-Llama-3-8B-Instruct", + "display_name": "Meta-Llama-3-8B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text", - "image" + "text" ] }, "limit": { - "context": 2000000, - "output": 30000 + "context": 8192, + "output": 2048 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-11", - "release_date": "2025-11-17", - "last_updated": "2025-11-17", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-04-18", + "last_updated": "2024-04-18", "cost": { - "input": 0.19999999999999998, - "output": 0.5, - "cache_read": 0.049999999999999996 + "input": 0.3, + "output": 0.61 } }, { - "id": "gpt-5-pro", - "name": "OpenAI: GPT-5 Pro", - "display_name": "OpenAI: GPT-5 Pro", + "id": "o1", + "name": "o1", + "display_name": "o1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 200000, + "output": 100000 }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2023-09", + "release_date": "2024-12-05", + "last_updated": "2024-12-05", "cost": { "input": 15, - "output": 120 + "output": 60, + "cache_read": 7.5 } }, { - "id": "llama-3.3-70b-versatile", - "name": "Meta Llama 3.3 70B Versatile", - "display_name": "Meta Llama 3.3 70B Versatile", + "id": "grok-3-mini", + "name": "Grok 3 Mini", + "display_name": "Grok 3 Mini", "modalities": { "input": [ "text" @@ -27066,27 +26971,67 @@ }, "limit": { "context": 131072, - "output": 32678 + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2024-12", - "release_date": "2024-12-06", - "last_updated": "2024-12-06", + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", "cost": { - "input": 0.59, - "output": 0.7899999999999999 + "input": 0.3, + "output": 0.5, + "reasoning": 0.5, + "cache_read": 0.075 } }, { - "id": "mistral-large-2411", - "name": "Mistral-Large", - "display_name": "Mistral-Large", + "id": "gpt-5.1-chat", + "name": "GPT-5.1 Chat", + "display_name": "GPT-5.1 Chat", + "modalities": { + "input": [ + "text", + "image", + "audio" + ], + "output": [ + "text", + "image", + "audio" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-11-14", + "last_updated": "2025-11-14", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + } + }, + { + "id": "phi-3.5-moe-instruct", + "name": "Phi-3.5-MoE-instruct", + "display_name": "Phi-3.5-MoE-instruct", "modalities": { "input": [ "text" @@ -27097,27 +27042,27 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-07", - "release_date": "2024-07-24", - "last_updated": "2024-07-24", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", "cost": { - "input": 2, - "output": 6 + "input": 0.16, + "output": 0.64 } }, { - "id": "claude-opus-4-1-20250805", - "name": "Anthropic: Claude Opus 4.1 (20250805)", - "display_name": "Anthropic: Claude Opus 4.1 (20250805)", + "id": "gpt-5-mini", + "name": "GPT-5 Mini", + "display_name": "GPT-5 Mini", "modalities": { "input": [ "text", @@ -27128,31 +27073,30 @@ ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 272000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-08", - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0.25, + "output": 2, + "cache_read": 0.03 } }, { - "id": "ernie-4.5-21b-a3b-thinking", - "name": "Baidu Ernie 4.5 21B A3B Thinking", - "display_name": "Baidu Ernie 4.5 21B A3B Thinking", + "id": "o1-mini", + "name": "o1-mini", + "display_name": "o1-mini", "modalities": { "input": [ "text" @@ -27163,62 +27107,61 @@ }, "limit": { "context": 128000, - "output": 8000 + "output": 65536 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2025-03", - "release_date": "2025-03-16", - "last_updated": "2025-03-16", + "knowledge": "2023-09", + "release_date": "2024-09-12", + "last_updated": "2024-09-12", "cost": { - "input": 0.07, - "output": 0.28 + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 } }, { - "id": "gpt-5.1-chat-latest", - "name": "OpenAI GPT-5.1 Chat", - "display_name": "OpenAI GPT-5.1 Chat", + "id": "llama-4-scout-17b-16e-instruct", + "name": "Llama 4 Scout 17B 16E Instruct", + "display_name": "Llama 4 Scout 17B 16E Instruct", "modalities": { "input": [ "text", "image" ], "output": [ - "text", - "image" + "text" ] }, "limit": { "context": 128000, - "output": 16384 + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.12500000000000003 + "input": 0.2, + "output": 0.78 } }, { - "id": "qwen3-32b", - "name": "Qwen3 32B", - "display_name": "Qwen3 32B", + "id": "cohere-embed-v3-english", + "name": "Embed v3 English", + "display_name": "Embed v3 English", "modalities": { "input": [ "text" @@ -27228,75 +27171,67 @@ ] }, "limit": { - "context": 131072, - "output": 40960 + "context": 512, + "output": 1024 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-04", - "release_date": "2025-04-28", - "last_updated": "2025-04-28", + "open_weights": true, + "release_date": "2023-11-07", + "last_updated": "2023-11-07", "cost": { - "input": 0.29, - "output": 0.59 + "input": 0.1, + "output": 0 } }, { - "id": "claude-haiku-4-5-20251001", - "name": "Anthropic: Claude 4.5 Haiku (20251001)", - "display_name": "Anthropic: Claude 4.5 Haiku (20251001)", + "id": "text-embedding-ada-002", + "name": "text-embedding-ada-002", + "display_name": "text-embedding-ada-002", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 8192, + "output": 1536 }, - "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2025-10", - "release_date": "2025-10-01", - "last_updated": "2025-10-01", + "release_date": "2022-12-15", + "last_updated": "2022-12-15", "cost": { - "input": 1, - "output": 5, - "cache_read": 0.09999999999999999, - "cache_write": 1.25 + "input": 0.1, + "output": 0 } }, { - "id": "llama-4-scout", - "name": "Meta Llama 4 Scout 17B 16E", - "display_name": "Meta Llama 4 Scout 17B 16E", + "id": "meta-llama-3.1-8b-instruct", + "name": "Meta-Llama-3.1-8B-Instruct", + "display_name": "Meta-Llama-3.1-8B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -27304,95 +27239,84 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 0.08, - "output": 0.3 + "input": 0.3, + "output": 0.61 } - } - ] - }, - "opencode": { - "id": "opencode", - "name": "OpenCode Zen", - "display_name": "OpenCode Zen", - "api": "https://opencode.ai/zen/v1", - "doc": "https://opencode.ai/docs/zen", - "models": [ + }, { - "id": "qwen3-coder", - "name": "Qwen3 Coder", - "display_name": "Qwen3 Coder", + "id": "gpt-5.1-codex-max", + "name": "GPT-5.1 Codex Max", + "display_name": "GPT-5.1 Codex Max", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 65536 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-23", - "last_updated": "2025-07-23", + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-11-13", + "last_updated": "2025-11-13", "cost": { - "input": 0.45, - "output": 1.8 + "input": 1.25, + "output": 10, + "cache_read": 0.125 } }, { - "id": "claude-opus-4-1", - "name": "Claude Opus 4.1", - "display_name": "Claude Opus 4.1", + "id": "gpt-3.5-turbo-instruct", + "name": "GPT-3.5 Turbo Instruct", + "display_name": "GPT-3.5 Turbo Instruct", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 4096, + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2021-08", + "release_date": "2023-09-21", + "last_updated": "2023-09-21", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 1.5, + "output": 2 } }, { - "id": "kimi-k2", - "name": "Kimi K2", - "display_name": "Kimi K2", + "id": "mistral-nemo", + "name": "Mistral Nemo", + "display_name": "Mistral Nemo", "modalities": { "input": [ "text" @@ -27402,8 +27326,8 @@ ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -27412,19 +27336,18 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-10", - "release_date": "2025-09-05", - "last_updated": "2025-09-05", + "knowledge": "2024-07", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", "cost": { - "input": 0.4, - "output": 2.5, - "cache_read": 0.4 + "input": 0.15, + "output": 0.15 } }, { - "id": "gpt-5.1-codex", - "name": "GPT-5.1 Codex", - "display_name": "GPT-5.1 Codex", + "id": "o3", + "name": "o3", + "display_name": "o3", "modalities": { "input": [ "text", @@ -27435,8 +27358,8 @@ ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 200000, + "output": 100000 }, "temperature": false, "tool_call": true, @@ -27446,24 +27369,22 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-12", - "last_updated": "2025-11-12", + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", "cost": { - "input": 1.07, - "output": 8.5, - "cache_read": 0.107 + "input": 2, + "output": 8, + "cache_read": 0.5 } }, { - "id": "claude-haiku-4-5", - "name": "Claude Haiku 4.5", - "display_name": "Claude Haiku 4.5", + "id": "codex-mini", + "name": "Codex Mini", + "display_name": "Codex Mini", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" @@ -27471,9 +27392,9 @@ }, "limit": { "context": 200000, - "output": 64000 + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, @@ -27481,140 +27402,114 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-02-28", - "release_date": "2025-10-15", - "last_updated": "2025-10-15", + "knowledge": "2024-04", + "release_date": "2025-05-16", + "last_updated": "2025-05-16", "cost": { - "input": 1, - "output": 5, - "cache_read": 0.1, - "cache_write": 1.25 + "input": 1.5, + "output": 6, + "cache_read": 0.375 } }, { - "id": "claude-opus-4-5", - "name": "Claude Opus 4.5", - "display_name": "Claude Opus 4.5", + "id": "phi-3-medium-4k-instruct", + "name": "Phi-3-medium-instruct (4k)", + "display_name": "Phi-3-medium-instruct (4k)", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 4096, + "output": 1024 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-11-01", - "last_updated": "2025-11-01", + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", "cost": { - "input": 5, - "output": 25, - "cache_read": 0.5, - "cache_write": 6.25 + "input": 0.17, + "output": 0.68 } }, { - "id": "gemini-3-pro", - "name": "Gemini 3 Pro", - "display_name": "Gemini 3 Pro", + "id": "phi-4-reasoning", + "name": "Phi-4-reasoning", + "display_name": "Phi-4-reasoning", "modalities": { "input": [ - "text", - "image", - "video", - "audio", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 32000, + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 2, - "output": 12, - "cache_read": 0.2, - "context_over_200k": { - "input": 4, - "output": 18, - "cache_read": 0.4 - } + "input": 0.125, + "output": 0.5 } }, { - "id": "claude-sonnet-4-5", - "name": "Claude Sonnet 4.5", - "display_name": "Claude Sonnet 4.5", + "id": "gpt-4-turbo-vision", + "name": "GPT-4 Turbo Vision", + "display_name": "GPT-4 Turbo Vision", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 64000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-07-31", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "knowledge": "2023-11", + "release_date": "2023-11-06", + "last_updated": "2024-04-09", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75, - "context_over_200k": { - "input": 6, - "output": 22.5, - "cache_read": 0.6, - "cache_write": 7.5 - } + "input": 10, + "output": 30 } }, { - "id": "alpha-gd4", - "name": "Alpha GD4", - "display_name": "Alpha GD4", + "id": "phi-4-reasoning-plus", + "name": "Phi-4-reasoning-plus", + "display_name": "Phi-4-reasoning-plus", "modalities": { "input": [ "text" @@ -27624,63 +27519,62 @@ ] }, "limit": { - "context": 262144, - "output": 32768 + "context": 32000, + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": true, "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2025-01", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 0.5, - "output": 2, - "cache_read": 0.15 + "input": 0.125, + "output": 0.5 } }, { - "id": "kimi-k2-thinking", - "name": "Kimi K2 Thinking", - "display_name": "Kimi K2 Thinking", + "id": "gpt-4o-mini", + "name": "GPT-4o mini", + "display_name": "GPT-4o mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-10", - "release_date": "2025-09-05", - "last_updated": "2025-09-05", + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", "cost": { - "input": 0.4, - "output": 2.5, - "cache_read": 0.4 + "input": 0.15, + "output": 0.6, + "cache_read": 0.08 } }, { - "id": "gpt-5.1", - "name": "GPT-5.1", - "display_name": "GPT-5.1", + "id": "gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", "modalities": { "input": [ "text", @@ -27691,7 +27585,7 @@ ] }, "limit": { - "context": 400000, + "context": 272000, "output": 128000 }, "temperature": false, @@ -27703,18 +27597,18 @@ "attachment": true, "open_weights": false, "knowledge": "2024-09-30", - "release_date": "2025-11-12", - "last_updated": "2025-11-12", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 1.07, - "output": 8.5, - "cache_read": 0.107 + "input": 1.25, + "output": 10, + "cache_read": 0.13 } }, { - "id": "alpha-minimax-m2", - "name": "MiniMax M2 (alpha)", - "display_name": "MiniMax M2 (alpha)", + "id": "mai-ds-r1", + "name": "MAI-DS-R1", + "display_name": "MAI-DS-R1", "modalities": { "input": [ "text" @@ -27724,63 +27618,62 @@ ] }, "limit": { - "context": 204800, - "output": 131072 + "context": 128000, + "output": 8192 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": true, "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2024-10", - "release_date": "2025-10-27", - "last_updated": "2025-10-27", + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", "cost": { - "input": 0.3, - "output": 1.2 + "input": 1.35, + "output": 5.4 } }, { - "id": "gpt-5-nano", - "name": "GPT-5 Nano", - "display_name": "GPT-5 Nano", + "id": "deepseek-v3.2", + "name": "DeepSeek-V3.2", + "display_name": "DeepSeek-V3.2", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, + "context": 128000, "output": 128000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-12-01", + "last_updated": "2025-12-01", "cost": { - "input": 0, - "output": 0, - "cache_read": 0 + "input": 0.28, + "output": 0.42, + "cache_read": 0.028 } }, { - "id": "gpt-5-codex", - "name": "GPT-5 Codex", - "display_name": "GPT-5 Codex", + "id": "gpt-5-pro", + "name": "GPT-5 Pro", + "display_name": "GPT-5 Pro", "modalities": { "input": [ "text", @@ -27792,7 +27685,7 @@ }, "limit": { "context": 400000, - "output": 128000 + "output": 272000 }, "temperature": false, "tool_call": true, @@ -27803,18 +27696,17 @@ "attachment": true, "open_weights": false, "knowledge": "2024-09-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "release_date": "2025-10-06", + "last_updated": "2025-10-06", "cost": { - "input": 1.07, - "output": 8.5, - "cache_read": 0.107 + "input": 15, + "output": 120 } }, { - "id": "big-pickle", - "name": "Big Pickle", - "display_name": "Big Pickle", + "id": "mistral-large-2411", + "name": "Mistral Large 24.11", + "display_name": "Mistral Large 24.11", "modalities": { "input": [ "text" @@ -27824,66 +27716,62 @@ ] }, "limit": { - "context": 200000, - "output": 128000 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-10-17", - "last_updated": "2025-10-17", + "knowledge": "2024-09", + "release_date": "2024-11-01", + "last_updated": "2024-11-01", "cost": { - "input": 0, - "output": 0, - "cache_read": 0, - "cache_write": 0 + "input": 2, + "output": 6 } }, { - "id": "claude-3-5-haiku", - "name": "Claude Haiku 3.5", - "display_name": "Claude Haiku 3.5", + "id": "gpt-5.2", + "name": "GPT-5.2", + "display_name": "GPT-5.2", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-07-31", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "knowledge": "2025-08-31", + "release_date": "2025-12-11", + "last_updated": "2025-12-11", "cost": { - "input": 0.8, - "output": 4, - "cache_read": 0.08, - "cache_write": 1 + "input": 1.75, + "output": 14, + "cache_read": 0.125 } }, { - "id": "glm-4.6", - "name": "GLM-4.6", - "display_name": "GLM-4.6", + "id": "codestral-2501", + "name": "Codestral 25.01", + "display_name": "Codestral 25.01", "modalities": { "input": [ "text" @@ -27893,147 +27781,142 @@ ] }, "limit": { - "context": 204800, - "output": 131072 + "context": 256000, + "output": 256000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-09-30", - "last_updated": "2025-09-30", + "open_weights": false, + "knowledge": "2024-03", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.6, - "output": 2.2, - "cache_read": 0.1 + "input": 0.3, + "output": 0.9 } }, { - "id": "grok-code", - "name": "Grok Code Fast 1", - "display_name": "Grok Code Fast 1", + "id": "mistral-small-2503", + "name": "Mistral Small 3.1", + "display_name": "Mistral Small 3.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2025-08-20", - "last_updated": "2025-08-20", + "knowledge": "2024-09", + "release_date": "2025-03-01", + "last_updated": "2025-03-01", "cost": { - "input": 0, - "output": 0, - "cache_read": 0, - "cache_write": 0 + "input": 0.1, + "output": 0.3 } }, { - "id": "gemini-3-flash", - "name": "Gemini 3 Flash", - "display_name": "Gemini 3 Flash", + "id": "gpt-3.5-turbo-1106", + "name": "GPT-3.5 Turbo 1106", + "display_name": "GPT-3.5 Turbo 1106", "modalities": { "input": [ - "text", - "image", - "video", - "audio", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 16384, + "output": 16384 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-12-17", - "last_updated": "2025-12-17", + "knowledge": "2021-08", + "release_date": "2023-11-06", + "last_updated": "2023-11-06", "cost": { - "input": 0.5, - "output": 3, - "cache_read": 0.05 + "input": 1, + "output": 2 } - }, + } + ] + }, + "baseten": { + "id": "baseten", + "name": "Baseten", + "display_name": "Baseten", + "api": "https://inference.baseten.co/v1", + "doc": "https://docs.baseten.co/development/model-apis/overview", + "models": [ { - "id": "gpt-5.1-codex-max", - "name": "GPT-5.1 Codex Max", - "display_name": "GPT-5.1 Codex Max", + "id": "moonshotai/Kimi-K2-Instruct-0905", + "name": "Kimi K2 Instruct 0905", + "display_name": "Kimi K2 Instruct 0905", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 262144, + "output": 262144 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-12", - "last_updated": "2025-11-12", + "attachment": false, + "open_weights": true, + "knowledge": "2025-08", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 0.6, + "output": 2.5 } }, { - "id": "alpha-doubao-seed-code", - "name": "Doubao Seed Code (alpha)", - "display_name": "Doubao Seed Code (alpha)", + "id": "moonshotai/Kimi-K2-Thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ - "text", - "image", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 32000 + "context": 262144, + "output": 262144 }, "temperature": true, "tool_call": true, @@ -28043,138 +27926,112 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-10", - "release_date": "2025-11-11", - "last_updated": "2025-11-11", + "knowledge": "2024-08", + "release_date": "2025-11-06", + "last_updated": "2025-11-06", "cost": { - "input": 0, - "output": 0, - "cache_read": 0 + "input": 0.6, + "output": 2.5 } }, { - "id": "claude-sonnet-4", - "name": "Claude Sonnet 4", - "display_name": "Claude Sonnet 4", + "id": "Qwen/Qwen3-Coder-480B-A35B-Instruct", + "name": "Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen3 Coder 480B A35B Instruct", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 64000 + "context": 262144, + "output": 66536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75, - "context_over_200k": { - "input": 6, - "output": 22.5, - "cache_read": 0.6, - "cache_write": 7.5 - } + "input": 0.38, + "output": 1.53 } }, { - "id": "gpt-5", - "name": "GPT-5", - "display_name": "GPT-5", + "id": "zai-org/GLM-4.7", + "name": "GLM-4.7", + "display_name": "GLM-4.7", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 204800, + "output": 131072 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-12-22", + "last_updated": "2025-12-22", "cost": { - "input": 1.07, - "output": 8.5, - "cache_read": 0.107 + "input": 0.6, + "output": 2.2 } }, { - "id": "gpt-5.2", - "name": "GPT-5.2", - "display_name": "GPT-5.2", + "id": "zai-org/GLM-4.6", + "name": "GLM 4.6", + "display_name": "GLM 4.6", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 200000, + "output": 200000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, + "attachment": false, + "open_weights": true, "knowledge": "2025-08-31", - "release_date": "2025-11-12", - "last_updated": "2025-11-12", + "release_date": "2025-09-16", + "last_updated": "2025-09-16", "cost": { - "input": 1.75, - "output": 14, - "cache_read": 0.175 + "input": 0.6, + "output": 2.2 } - } - ] - }, - "fastrouter": { - "id": "fastrouter", - "name": "FastRouter", - "display_name": "FastRouter", - "api": "https://go.fastrouter.ai/api/v1", - "doc": "https://fastrouter.ai/models", - "models": [ + }, { - "id": "moonshotai/kimi-k2", - "name": "Kimi K2", - "display_name": "Kimi K2", + "id": "deepseek-ai/DeepSeek-V3.2", + "name": "DeepSeek V3.2", + "display_name": "DeepSeek V3.2", "modalities": { "input": [ "text" @@ -28184,8 +28041,8 @@ ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 163800, + "output": 131100 }, "temperature": true, "tool_call": true, @@ -28194,18 +28051,27 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-10", - "release_date": "2025-07-11", - "last_updated": "2025-07-11", + "knowledge": "2025-10", + "release_date": "2025-12-01", + "last_updated": "2025-12-01", "cost": { - "input": 0.55, - "output": 2.2 + "input": 0.3, + "output": 0.45 } - }, + } + ] + }, + "siliconflow-com": { + "id": "siliconflow-com", + "name": "SiliconFlow", + "display_name": "SiliconFlow", + "api": "https://api.siliconflow.com/v1", + "doc": "https://cloud.siliconflow.com/models", + "models": [ { - "id": "x-ai/grok-4", - "name": "Grok 4", - "display_name": "Grok 4", + "id": "deepseek-ai-deepseek-r1-distill-qwen-7b", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", "modalities": { "input": [ "text" @@ -28215,8 +28081,8 @@ ] }, "limit": { - "context": 256000, - "output": 64000 + "context": 33000, + "output": 16000 }, "temperature": true, "tool_call": true, @@ -28226,90 +28092,77 @@ }, "attachment": false, "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-07-09", - "last_updated": "2025-07-09", + "release_date": "2025-01-20", + "last_updated": "2025-11-25", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.75, - "cache_write": 15 + "input": 0.05, + "output": 0.05 } }, { - "id": "google/gemini-2.5-flash", - "name": "Gemini 2.5 Flash", - "display_name": "Gemini 2.5 Flash", + "id": "z-ai-glm-4.5-air", + "name": "z-ai/GLM-4.5-Air", + "display_name": "z-ai/GLM-4.5-Air", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-06-17", - "last_updated": "2025-06-17", + "release_date": "2025-07-28", + "last_updated": "2025-11-25", "cost": { - "input": 0.3, - "output": 2.5, - "cache_read": 0.0375 + "input": 0.14, + "output": 0.86 } }, { - "id": "google/gemini-2.5-pro", - "name": "Gemini 2.5 Pro", - "display_name": "Gemini 2.5 Pro", + "id": "qwen-qwen2.5-72b-instruct-128k", + "name": "Qwen/Qwen2.5-72B-Instruct-128K", + "display_name": "Qwen/Qwen2.5-72B-Instruct-128K", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 131000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-06-17", - "last_updated": "2025-06-17", + "release_date": "2024-09-18", + "last_updated": "2025-11-25", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 0.59, + "output": 0.59 } }, { - "id": "openai/gpt-5-nano", - "name": "GPT-5 Nano", - "display_name": "GPT-5 Nano", + "id": "deepseek-ai-deepseek-vl2", + "name": "deepseek-ai/deepseek-vl2", + "display_name": "deepseek-ai/deepseek-vl2", "modalities": { "input": [ "text", @@ -28320,139 +28173,129 @@ ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 4000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2024-10-01", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "release_date": "2024-12-13", + "last_updated": "2025-11-25", "cost": { - "input": 0.05, - "output": 0.4, - "cache_read": 0.005 + "input": 0.15, + "output": 0.15 } }, { - "id": "openai/gpt-4.1", - "name": "GPT-4.1", - "display_name": "GPT-4.1", + "id": "moonshotai-kimi-dev-72b", + "name": "moonshotai/Kimi-Dev-72B", + "display_name": "moonshotai/Kimi-Dev-72B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "release_date": "2025-06-19", + "last_updated": "2025-11-25", "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 0.29, + "output": 1.15 } }, { - "id": "openai/gpt-5-mini", - "name": "GPT-5 Mini", - "display_name": "GPT-5 Mini", + "id": "qwen-qwen2.5-coder-32b-instruct", + "name": "Qwen/Qwen2.5-Coder-32B-Instruct", + "display_name": "Qwen/Qwen2.5-Coder-32B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 33000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-10-01", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "release_date": "2024-11-11", + "last_updated": "2025-11-25", "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.025 + "input": 0.18, + "output": 0.18 } }, { - "id": "openai/gpt-oss-20b", - "name": "GPT OSS 20B", - "display_name": "GPT OSS 20B", + "id": "qwen-qwen3-omni-30b-a3b-captioner", + "name": "Qwen/Qwen3-Omni-30B-A3B-Captioner", + "display_name": "Qwen/Qwen3-Omni-30B-A3B-Captioner", "modalities": { "input": [ - "text" + "audio" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 65536 + "context": 66000, + "output": 66000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "attachment": true, + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", "cost": { - "input": 0.05, - "output": 0.2 + "input": 0.1, + "output": 0.4 } }, { - "id": "openai/gpt-oss-120b", - "name": "GPT OSS 120B", - "display_name": "GPT OSS 120B", + "id": "qwen-qwen3-vl-235b-a22b-thinking", + "name": "Qwen/Qwen3-VL-235B-A22B-Thinking", + "display_name": "Qwen/Qwen3-VL-235B-A22B-Thinking", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, @@ -28460,31 +28303,30 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "attachment": true, + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", "cost": { - "input": 0.15, - "output": 0.6 + "input": 0.45, + "output": 3.5 } }, { - "id": "openai/gpt-5", - "name": "GPT-5", - "display_name": "GPT-5", + "id": "thudm-glm-z1-9b-0414", + "name": "THUDM/GLM-Z1-9B-0414", + "display_name": "THUDM/GLM-Z1-9B-0414", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -28492,65 +28334,62 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-10-01", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "release_date": "2025-04-18", + "last_updated": "2025-11-25", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 0.086, + "output": 0.086 } }, { - "id": "qwen/qwen3-coder", - "name": "Qwen3 Coder", - "display_name": "Qwen3 Coder", + "id": "qwen-qwen3-vl-30b-a3b-thinking", + "name": "Qwen/Qwen3-VL-30B-A3B-Thinking", + "display_name": "Qwen/Qwen3-VL-30B-A3B-Thinking", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 66536 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-23", - "last_updated": "2025-07-23", + "attachment": true, + "open_weights": false, + "release_date": "2025-10-11", + "last_updated": "2025-11-25", "cost": { - "input": 0.3, - "output": 1.2 + "input": 0.29, + "output": 1 } }, { - "id": "anthropic/claude-opus-4.1", - "name": "Claude Opus 4.1", - "display_name": "Claude Opus 4.1", + "id": "deepseek-ai-deepseek-v3.2-exp", + "name": "deepseek-ai/DeepSeek-V3.2-Exp", + "display_name": "deepseek-ai/DeepSeek-V3.2-Exp", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 164000, + "output": 164000 }, "temperature": true, "tool_call": true, @@ -28558,58 +28397,50 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "release_date": "2025-10-10", + "last_updated": "2025-11-25", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0.27, + "output": 0.41 } }, { - "id": "anthropic/claude-sonnet-4", - "name": "Claude Sonnet 4", - "display_name": "Claude Sonnet 4", + "id": "qwen-qwen2.5-vl-32b-instruct", + "name": "Qwen/Qwen2.5-VL-32B-Instruct", + "display_name": "Qwen/Qwen2.5-VL-32B-Instruct", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "release_date": "2025-03-24", + "last_updated": "2025-11-25", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.27, + "output": 0.27 } }, { - "id": "deepseek-ai/deepseek-r1-distill-llama-70b", - "name": "DeepSeek R1 Distill Llama 70B", - "display_name": "DeepSeek R1 Distill Llama 70B", + "id": "qwen-qwen3-235b-a22b-thinking-2507", + "name": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "display_name": "Qwen/Qwen3-235B-A22B-Thinking-2507", "modalities": { "input": [ "text" @@ -28619,319 +28450,252 @@ ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 262000, + "output": 262000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2024-10", - "release_date": "2025-01-23", - "last_updated": "2025-01-23", + "open_weights": false, + "release_date": "2025-07-28", + "last_updated": "2025-11-25", "cost": { - "input": 0.03, - "output": 0.14 + "input": 0.13, + "output": 0.6 } - } - ] - }, - "google": { - "id": "google", - "name": "google", - "display_name": "google", - "doc": "https://ai.google.dev/gemini-api/docs/pricing", - "models": [ + }, { - "id": "gemini-embedding-001", - "name": "Gemini Embedding 001", - "display_name": "Gemini Embedding 001", + "id": "qwen-qwen3-vl-32b-instruct", + "name": "Qwen/Qwen3-VL-32B-Instruct", + "display_name": "Qwen/Qwen3-VL-32B-Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 2048, - "output": 3072 + "context": 262000, + "output": 262000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-05", - "release_date": "2025-05-20", - "last_updated": "2025-05-20", + "release_date": "2025-10-21", + "last_updated": "2025-11-25", "cost": { - "input": 0.15, - "output": 0 + "input": 0.2, + "output": 0.6 } }, { - "id": "gemini-3-flash-preview", - "name": "Gemini 3 Flash Preview", - "display_name": "Gemini 3 Flash Preview", + "id": "inclusionai-ling-flash-2.0", + "name": "inclusionAI/Ling-flash-2.0", + "display_name": "inclusionAI/Ling-flash-2.0", "modalities": { "input": [ - "text", - "image", - "video", - "audio", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-12-17", - "last_updated": "2025-12-17", + "release_date": "2025-09-18", + "last_updated": "2025-11-25", "cost": { - "input": 0.5, - "output": 3, - "cache_read": 0.05, - "context_over_200k": { - "input": 0.5, - "output": 3, - "cache_read": 0.05 - } + "input": 0.14, + "output": 0.57 } }, { - "id": "gemini-2.5-flash-image", - "name": "Gemini 2.5 Flash Image", - "display_name": "Gemini 2.5 Flash Image", + "id": "moonshotai-kimi-k2-instruct", + "name": "moonshotai/Kimi-K2-Instruct", + "display_name": "moonshotai/Kimi-K2-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text", - "image" + "text" ] }, "limit": { - "context": 32768, - "output": 32768 + "context": 131000, + "output": 131000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2025-06", - "release_date": "2025-08-26", - "last_updated": "2025-08-26", + "release_date": "2025-07-13", + "last_updated": "2025-11-25", "cost": { - "input": 0.3, - "output": 30, - "cache_read": 0.075 + "input": 0.58, + "output": 2.29 } }, { - "id": "gemini-2.5-flash-preview-05-20", - "name": "Gemini 2.5 Flash Preview 05-20", - "display_name": "Gemini 2.5 Flash Preview 05-20", + "id": "inclusionai-ling-mini-2.0", + "name": "inclusionAI/Ling-mini-2.0", + "display_name": "inclusionAI/Ling-mini-2.0", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-05-20", - "last_updated": "2025-05-20", + "release_date": "2025-09-10", + "last_updated": "2025-11-25", "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.0375 + "input": 0.07, + "output": 0.28 } }, { - "id": "gemini-flash-lite-latest", - "name": "Gemini Flash-Lite Latest", - "display_name": "Gemini Flash-Lite Latest", + "id": "qwen-qwen3-coder-480b-a35b-instruct", + "name": "Qwen/Qwen3-Coder-480B-A35B-Instruct", + "display_name": "Qwen/Qwen3-Coder-480B-A35B-Instruct", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-09-25", - "last_updated": "2025-09-25", + "release_date": "2025-07-31", + "last_updated": "2025-11-25", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "input": 0.25, + "output": 1 } }, { - "id": "gemini-3-pro-preview", - "name": "Gemini 3 Pro Preview", - "display_name": "Gemini 3 Pro Preview", + "id": "qwen-qwen3-omni-30b-a3b-instruct", + "name": "Qwen/Qwen3-Omni-30B-A3B-Instruct", + "display_name": "Qwen/Qwen3-Omni-30B-A3B-Instruct", "modalities": { "input": [ "text", "image", - "video", - "audio", - "pdf" + "audio" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 64000 + "context": 66000, + "output": 66000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", + "release_date": "2025-10-04", + "last_updated": "2025-11-25", "cost": { - "input": 2, - "output": 12, - "cache_read": 0.2, - "context_over_200k": { - "input": 4, - "output": 18, - "cache_read": 0.4 - } + "input": 0.1, + "output": 0.4 } }, { - "id": "gemini-2.5-flash", - "name": "Gemini 2.5 Flash", - "display_name": "Gemini 2.5 Flash", + "id": "moonshotai-kimi-k2-instruct-0905", + "name": "moonshotai/Kimi-K2-Instruct-0905", + "display_name": "moonshotai/Kimi-K2-Instruct-0905", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true, - "budget": { - "default": -1, - "min": 0, - "max": 24576 - } - }, - "search": { - "supported": true, - "default": false + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-03-20", - "last_updated": "2025-06-05", + "release_date": "2025-09-08", + "last_updated": "2025-11-25", "cost": { - "input": 0.3, - "output": 2.5, - "cache_read": 0.075, - "input_audio": 1 + "input": 0.4, + "output": 2 } }, { - "id": "gemini-flash-latest", - "name": "Gemini Flash Latest", - "display_name": "Gemini Flash Latest", + "id": "qwen-qwen3-30b-a3b-thinking-2507", + "name": "Qwen/Qwen3-30B-A3B-Thinking-2507", + "display_name": "Qwen/Qwen3-30B-A3B-Thinking-2507", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 262000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -28939,162 +28703,171 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-09-25", - "last_updated": "2025-09-25", + "release_date": "2025-07-31", + "last_updated": "2025-11-25", "cost": { - "input": 0.3, - "output": 2.5, - "cache_read": 0.075, - "input_audio": 1 + "input": 0.09, + "output": 0.3 } }, { - "id": "gemini-2.5-pro-preview-05-06", - "name": "Gemini 2.5 Pro Preview 05-06", - "display_name": "Gemini 2.5 Pro Preview 05-06", + "id": "qwen-qwen3-14b", + "name": "Qwen/Qwen3-14B", + "display_name": "Qwen/Qwen3-14B", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-05-06", - "last_updated": "2025-05-06", + "release_date": "2025-04-30", + "last_updated": "2025-11-25", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 0.07, + "output": 0.28 } }, { - "id": "gemini-2.5-flash-preview-tts", - "name": "Gemini 2.5 Flash Preview TTS", - "display_name": "Gemini 2.5 Flash Preview TTS", + "id": "deepseek-ai-deepseek-r1", + "name": "deepseek-ai/DeepSeek-R1", + "display_name": "deepseek-ai/DeepSeek-R1", "modalities": { "input": [ "text" ], "output": [ - "audio" + "text" ] }, "limit": { - "context": 8000, - "output": 16000 + "context": 164000, + "output": 164000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-05-01", - "last_updated": "2025-05-01", + "release_date": "2025-05-28", + "last_updated": "2025-11-25", "cost": { "input": 0.5, - "output": 10 + "output": 2.18 } }, { - "id": "gemini-2.0-flash-lite", - "name": "Gemini 2.0 Flash Lite", - "display_name": "Gemini 2.0 Flash Lite", + "id": "deepseek-ai-deepseek-v3.1", + "name": "deepseek-ai/DeepSeek-V3.1", + "display_name": "deepseek-ai/DeepSeek-V3.1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 8192 + "context": 164000, + "output": 164000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "search": { + "attachment": false, + "open_weights": false, + "release_date": "2025-08-25", + "last_updated": "2025-11-25", + "cost": { + "input": 0.27, + "output": 1 + } + }, + { + "id": "z-ai-glm-4.5", + "name": "z-ai/GLM-4.5", + "display_name": "z-ai/GLM-4.5", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", + "release_date": "2025-07-28", + "last_updated": "2025-11-25", "cost": { - "input": 0.075, - "output": 0.3 + "input": 0.4, + "output": 2 } }, { - "id": "gemini-live-2.5-flash-preview-native-audio", - "name": "Gemini Live 2.5 Flash Preview Native Audio", - "display_name": "Gemini Live 2.5 Flash Preview Native Audio", + "id": "qwen-qwen3-30b-a3b-instruct-2507", + "name": "Qwen/Qwen3-30B-A3B-Instruct-2507", + "display_name": "Qwen/Qwen3-30B-A3B-Instruct-2507", "modalities": { "input": [ - "text", - "audio", - "video" + "text" ], "output": [ - "text", - "audio" + "text" ] }, "limit": { - "context": 131072, - "output": 65536 + "context": 262000, + "output": 262000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-06-17", - "last_updated": "2025-09-18", + "release_date": "2025-07-30", + "last_updated": "2025-11-25", "cost": { - "input": 0.5, - "output": 2, - "input_audio": 3, - "output_audio": 12 + "input": 0.09, + "output": 0.3 } }, { - "id": "gemini-2.0-flash", - "name": "Gemini 2.0 Flash", - "display_name": "Gemini 2.0 Flash", + "id": "zai-org-glm-4.5v", + "name": "zai-org/GLM-4.5V", + "display_name": "zai-org/GLM-4.5V", "modalities": { "input": [ "text", @@ -29105,92 +28878,69 @@ ] }, "limit": { - "context": 1048576, - "output": 8192 + "context": 66000, + "output": 66000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": false - }, - "search": { - "supported": true, - "default": false + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", + "release_date": "2025-08-13", + "last_updated": "2025-11-25", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "input": 0.14, + "output": 0.86 } }, { - "id": "gemini-2.5-flash-lite", - "name": "Gemini 2.5 Flash Lite", - "display_name": "Gemini 2.5 Flash Lite", + "id": "inclusionai-ring-flash-2.0", + "name": "inclusionAI/Ring-flash-2.0", + "display_name": "inclusionAI/Ring-flash-2.0", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": true, - "default": false, - "budget": { - "default": -1, - "min": 512, - "max": 24576 - } - }, - "search": { - "supported": true, - "default": false + "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-06-17", - "last_updated": "2025-06-17", + "release_date": "2025-09-29", + "last_updated": "2025-11-25", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "input": 0.14, + "output": 0.57 } }, { - "id": "gemini-2.5-pro-preview-06-05", - "name": "Gemini 2.5 Pro Preview 06-05", - "display_name": "Gemini 2.5 Pro Preview 06-05", + "id": "thudm-glm-z1-32b-0414", + "name": "THUDM/GLM-Z1-32B-0414", + "display_name": "THUDM/GLM-Z1-32B-0414", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -29198,74 +28948,62 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-06-05", - "last_updated": "2025-06-05", + "release_date": "2025-04-18", + "last_updated": "2025-11-25", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 0.14, + "output": 0.57 } }, { - "id": "gemini-live-2.5-flash", - "name": "Gemini Live 2.5 Flash", - "display_name": "Gemini Live 2.5 Flash", + "id": "qwen-qwen2.5-vl-72b-instruct", + "name": "Qwen/Qwen2.5-VL-72B-Instruct", + "display_name": "Qwen/Qwen2.5-VL-72B-Instruct", "modalities": { "input": [ "text", - "image", - "audio", - "video" + "image" ], "output": [ - "text", - "audio" + "text" ] }, "limit": { - "context": 128000, - "output": 8000 + "context": 131000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-09-01", - "last_updated": "2025-09-01", + "release_date": "2025-01-28", + "last_updated": "2025-11-25", "cost": { - "input": 0.5, - "output": 2, - "input_audio": 3, - "output_audio": 12 + "input": 0.59, + "output": 0.59 } }, { - "id": "gemini-2.5-flash-lite-preview-06-17", - "name": "Gemini 2.5 Flash Lite Preview 06-17", - "display_name": "Gemini 2.5 Flash Lite Preview 06-17", + "id": "qwen-qwen3-vl-32b-thinking", + "name": "Qwen/Qwen3-VL-32B-Thinking", + "display_name": "Qwen/Qwen3-VL-32B-Thinking", "modalities": { "input": [ "text", - "image", - "audio", - "video", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, @@ -29275,113 +29013,88 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-06-17", - "last_updated": "2025-06-17", + "release_date": "2025-10-21", + "last_updated": "2025-11-25", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025, - "input_audio": 0.3 + "input": 0.2, + "output": 1.5 } }, { - "id": "gemini-2.5-flash-image-preview", - "name": "Gemini 2.5 Flash Image Preview", - "display_name": "Gemini 2.5 Flash Image Preview", + "id": "tencent-hunyuan-mt-7b", + "name": "tencent/Hunyuan-MT-7B", + "display_name": "tencent/Hunyuan-MT-7B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text", - "image" + "text" ] }, "limit": { - "context": 32768, - "output": 32768 + "context": 33000, + "output": 33000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2025-06", - "release_date": "2025-08-26", - "last_updated": "2025-08-26", + "release_date": "2025-09-18", + "last_updated": "2025-11-25", "cost": { - "input": 0.3, - "output": 30, - "cache_read": 0.075 + "input": 0, + "output": 0 } }, { - "id": "gemini-2.5-flash-preview-09-2025", - "name": "Gemini 2.5 Flash Preview 09 2025", - "display_name": "Gemini 2.5 Flash Preview 09 2025", + "id": "qwen-qwen3-30b-a3b", + "name": "Qwen/Qwen3-30B-A3B", + "display_name": "Qwen/Qwen3-30B-A3B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true, - "budget": { - "default": -1, - "min": 0, - "max": 24576 - } - }, - "search": { - "supported": true, - "default": false + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-09-25", - "last_updated": "2025-09-25", + "release_date": "2025-04-30", + "last_updated": "2025-11-25", "cost": { - "input": 0.3, - "output": 2.5, - "cache_read": 0.075, - "input_audio": 1 + "input": 0.09, + "output": 0.45 } }, { - "id": "gemini-2.5-flash-preview-04-17", - "name": "Gemini 2.5 Flash Preview 04-17", - "display_name": "Gemini 2.5 Flash Preview 04-17", + "id": "openai-gpt-oss-120b", + "name": "openai/gpt-oss-120b", + "display_name": "openai/gpt-oss-120b", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 131000, + "output": 8000 }, "temperature": true, "tool_call": true, @@ -29389,325 +29102,245 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-04-17", - "last_updated": "2025-04-17", + "release_date": "2025-08-13", + "last_updated": "2025-11-25", "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.0375 + "input": 0.05, + "output": 0.45 } }, { - "id": "gemini-2.5-pro-preview-tts", - "name": "Gemini 2.5 Pro Preview TTS", - "display_name": "Gemini 2.5 Pro Preview TTS", + "id": "minimaxai-minimax-m1-80k", + "name": "MiniMaxAI/MiniMax-M1-80k", + "display_name": "MiniMaxAI/MiniMax-M1-80k", "modalities": { "input": [ "text" ], "output": [ - "audio" + "text" ] }, "limit": { - "context": 8000, - "output": 16000 + "context": 131000, + "output": 131000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-05-01", - "last_updated": "2025-05-01", + "release_date": "2025-06-17", + "last_updated": "2025-11-25", "cost": { - "input": 1, - "output": 20 + "input": 0.55, + "output": 2.2 } }, { - "id": "gemini-2.5-pro", - "name": "Gemini 2.5 Pro", - "display_name": "Gemini 2.5 Pro", + "id": "deepseek-ai-deepseek-v3.1-terminus", + "name": "deepseek-ai/DeepSeek-V3.1-Terminus", + "display_name": "deepseek-ai/DeepSeek-V3.1-Terminus", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 164000, + "output": 164000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": true, - "default": true, - "budget": { - "default": -1, - "min": 128, - "max": 32768 - } - }, - "search": { - "supported": true, - "default": false + "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-03-20", - "last_updated": "2025-06-05", + "release_date": "2025-09-29", + "last_updated": "2025-11-25", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 0.27, + "output": 1 } }, { - "id": "gemini-1.5-flash", - "name": "Gemini 1.5 Flash", - "display_name": "Gemini 1.5 Flash", + "id": "zai-org-glm-4.5-air", + "name": "zai-org/GLM-4.5-Air", + "display_name": "zai-org/GLM-4.5-Air", "modalities": { "input": [ - "text", - "image", - "audio", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 8192 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-05-14", - "last_updated": "2024-05-14", + "release_date": "2025-07-28", + "last_updated": "2025-11-25", "cost": { - "input": 0.075, - "output": 0.3, - "cache_read": 0.01875 + "input": 0.14, + "output": 0.86 } }, { - "id": "gemini-1.5-flash-8b", - "name": "Gemini 1.5 Flash-8B", - "display_name": "Gemini 1.5 Flash-8B", + "id": "thudm-glm-4-9b-0414", + "name": "THUDM/GLM-4-9B-0414", + "display_name": "THUDM/GLM-4-9B-0414", "modalities": { "input": [ - "text", - "image", - "audio", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 8192 + "context": 33000, + "output": 33000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-10-03", - "last_updated": "2024-10-03", - "cost": { - "input": 0.0375, - "output": 0.15, - "cache_read": 0.01 + "release_date": "2025-04-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0.086, + "output": 0.086 } }, { - "id": "gemini-2.5-flash-lite-preview-09-2025", - "name": "Gemini 2.5 Flash Lite Preview 09 2025", - "display_name": "Gemini 2.5 Flash Lite Preview 09 2025", + "id": "qwen-qwen3-coder-30b-a3b-instruct", + "name": "Qwen/Qwen3-Coder-30B-A3B-Instruct", + "display_name": "Qwen/Qwen3-Coder-30B-A3B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": false, - "budget": { - "default": -1, - "min": 512, - "max": 24576 - } - }, - "search": { - "supported": true, - "default": false + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-09-25", - "last_updated": "2025-09-25", + "release_date": "2025-08-01", + "last_updated": "2025-11-25", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "input": 0.07, + "output": 0.28 } }, { - "id": "gemini-1.5-pro", - "name": "Gemini 1.5 Pro", - "display_name": "Gemini 1.5 Pro", + "id": "qwen-qwq-32b", + "name": "Qwen/QwQ-32B", + "display_name": "Qwen/QwQ-32B", "modalities": { "input": [ - "text", - "image", - "audio", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 8192 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-02-15", - "last_updated": "2024-02-15", + "release_date": "2025-03-06", + "last_updated": "2025-11-25", "cost": { - "input": 1.25, - "output": 5, - "cache_read": 0.3125 + "input": 0.15, + "output": 0.58 } }, { - "id": "gemini-2.0-flash-preview-image-generation", - "name": "Gemini 2.0 Flash Preview Image Generation", - "display_name": "Gemini 2.0 Flash Preview Image Generation", + "id": "stepfun-ai-step3", + "name": "stepfun-ai/step3", + "display_name": "stepfun-ai/step3", "modalities": { "input": [ "text", "image" ], - "output": [ - "text", - "image" - ] - }, - "limit": { - "context": 32000, - "output": 8192 - }, - "temperature": true, - "tool_call": false, - "reasoning": { - "supported": false - }, - "search": { - "supported": false - }, - "attachment": true - } - ] - }, - "google-vertex": { - "id": "google-vertex", - "name": "Vertex", - "display_name": "Vertex", - "doc": "https://cloud.google.com/vertex-ai/generative-ai/docs/models", - "models": [ - { - "id": "gemini-embedding-001", - "name": "Gemini Embedding 001", - "display_name": "Gemini Embedding 001", - "modalities": { - "input": [ - "text" - ], "output": [ "text" ] }, "limit": { - "context": 2048, - "output": 3072 + "context": 66000, + "output": 66000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-05", - "release_date": "2025-05-20", - "last_updated": "2025-05-20", + "release_date": "2025-08-06", + "last_updated": "2025-11-25", "cost": { - "input": 0.15, - "output": 0 + "input": 0.57, + "output": 1.42 } }, { - "id": "gemini-3-flash-preview", - "name": "Gemini 3 Flash Preview", - "display_name": "Gemini 3 Flash Preview", + "id": "thudm-glm-4.1v-9b-thinking", + "name": "THUDM/GLM-4.1V-9B-Thinking", + "display_name": "THUDM/GLM-4.1V-9B-Thinking", "modalities": { "input": [ "text", - "image", - "video", - "audio", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 66000, + "output": 66000 }, "temperature": true, "tool_call": true, @@ -29717,39 +29350,28 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-12-17", - "last_updated": "2025-12-17", + "release_date": "2025-07-04", + "last_updated": "2025-11-25", "cost": { - "input": 0.5, - "output": 3, - "cache_read": 0.05, - "context_over_200k": { - "input": 0.5, - "output": 3, - "cache_read": 0.05 - } + "input": 0.035, + "output": 0.14 } }, { - "id": "gemini-2.5-flash-preview-05-20", - "name": "Gemini 2.5 Flash Preview 05-20", - "display_name": "Gemini 2.5 Flash Preview 05-20", + "id": "qwen-qwen3-next-80b-a3b-thinking", + "name": "Qwen/Qwen3-Next-80B-A3B-Thinking", + "display_name": "Qwen/Qwen3-Next-80B-A3B-Thinking", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, @@ -29757,115 +29379,91 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-05-20", - "last_updated": "2025-05-20", + "release_date": "2025-09-25", + "last_updated": "2025-11-25", "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.0375 + "input": 0.14, + "output": 0.57 } }, { - "id": "gemini-flash-lite-latest", - "name": "Gemini Flash-Lite Latest", - "display_name": "Gemini Flash-Lite Latest", + "id": "qwen-qwen3-vl-235b-a22b-instruct", + "name": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "display_name": "Qwen/Qwen3-VL-235B-A22B-Instruct", "modalities": { "input": [ "text", - "image", - "audio", - "video", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-09-25", - "last_updated": "2025-09-25", + "release_date": "2025-10-04", + "last_updated": "2025-11-25", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "input": 0.3, + "output": 1.5 } }, { - "id": "gemini-3-pro-preview", - "name": "Gemini 3 Pro Preview", - "display_name": "Gemini 3 Pro Preview", + "id": "zai-org-glm-4.5", + "name": "zai-org/GLM-4.5", + "display_name": "zai-org/GLM-4.5", "modalities": { "input": [ - "text", - "image", - "video", - "audio", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", + "release_date": "2025-07-28", + "last_updated": "2025-11-25", "cost": { - "input": 2, - "output": 12, - "cache_read": 0.2, - "context_over_200k": { - "input": 4, - "output": 18, - "cache_read": 0.4 - } + "input": 0.4, + "output": 2 } }, { - "id": "gemini-2.5-flash", - "name": "Gemini 2.5 Flash", - "display_name": "Gemini 2.5 Flash", + "id": "deepseek-ai-deepseek-r1-distill-qwen-14b", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -29873,294 +29471,242 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-06-17", - "last_updated": "2025-06-17", + "release_date": "2025-01-20", + "last_updated": "2025-11-25", "cost": { - "input": 0.3, - "output": 2.5, - "cache_read": 0.075, - "cache_write": 0.383 + "input": 0.1, + "output": 0.1 } }, { - "id": "gemini-flash-latest", - "name": "Gemini Flash Latest", - "display_name": "Gemini Flash Latest", + "id": "deepseek-ai-deepseek-v3", + "name": "deepseek-ai/DeepSeek-V3", + "display_name": "deepseek-ai/DeepSeek-V3", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 164000, + "output": 164000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-09-25", - "last_updated": "2025-09-25", + "release_date": "2024-12-26", + "last_updated": "2025-11-25", "cost": { - "input": 0.3, - "output": 2.5, - "cache_read": 0.075, - "cache_write": 0.383 + "input": 0.25, + "output": 1 } }, { - "id": "gemini-2.5-pro-preview-05-06", - "name": "Gemini 2.5 Pro Preview 05-06", - "display_name": "Gemini 2.5 Pro Preview 05-06", + "id": "openai-gpt-oss-20b", + "name": "openai/gpt-oss-20b", + "display_name": "openai/gpt-oss-20b", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 131000, + "output": 8000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-05-06", - "last_updated": "2025-05-06", + "release_date": "2025-08-13", + "last_updated": "2025-11-25", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 0.04, + "output": 0.18 } }, { - "id": "gemini-2.0-flash-lite", - "name": "Gemini 2.0 Flash Lite", - "display_name": "Gemini 2.0 Flash Lite", + "id": "qwen-qwen2.5-7b-instruct", + "name": "Qwen/Qwen2.5-7B-Instruct", + "display_name": "Qwen/Qwen2.5-7B-Instruct", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 8192 + "context": 33000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", + "release_date": "2024-09-18", + "last_updated": "2025-11-25", "cost": { - "input": 0.075, - "output": 0.3 + "input": 0.05, + "output": 0.05 } }, { - "id": "gemini-2.0-flash", - "name": "Gemini 2.0 Flash", - "display_name": "Gemini 2.0 Flash", + "id": "qwen-qwen2.5-32b-instruct", + "name": "Qwen/Qwen2.5-32B-Instruct", + "display_name": "Qwen/Qwen2.5-32B-Instruct", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 8192 + "context": 33000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-06", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", + "release_date": "2024-09-19", + "last_updated": "2025-11-25", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "input": 0.18, + "output": 0.18 } }, { - "id": "gemini-2.5-flash-lite", - "name": "Gemini 2.5 Flash Lite", - "display_name": "Gemini 2.5 Flash Lite", + "id": "minimaxai-minimax-m2", + "name": "MiniMaxAI/MiniMax-M2", + "display_name": "MiniMaxAI/MiniMax-M2", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 197000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-06-17", - "last_updated": "2025-06-17", + "release_date": "2025-10-28", + "last_updated": "2025-11-25", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "input": 0.3, + "output": 1.2 } }, { - "id": "gemini-2.5-pro-preview-06-05", - "name": "Gemini 2.5 Pro Preview 06-05", - "display_name": "Gemini 2.5 Pro Preview 06-05", + "id": "bytedance-seed-seed-oss-36b-instruct", + "name": "ByteDance-Seed/Seed-OSS-36B-Instruct", + "display_name": "ByteDance-Seed/Seed-OSS-36B-Instruct", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-06-05", - "last_updated": "2025-06-05", + "release_date": "2025-09-04", + "last_updated": "2025-11-25", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 0.21, + "output": 0.57 } }, { - "id": "gemini-2.5-flash-lite-preview-06-17", - "name": "Gemini 2.5 Flash Lite Preview 06-17", - "display_name": "Gemini 2.5 Flash Lite Preview 06-17", + "id": "qwen-qwen2.5-vl-7b-instruct", + "name": "Qwen/Qwen2.5-VL-7B-Instruct", + "display_name": "Qwen/Qwen2.5-VL-7B-Instruct", "modalities": { "input": [ "text", - "image", - "audio", - "video", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 65536, - "output": 65536 + "context": 33000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-06-17", - "last_updated": "2025-06-17", + "release_date": "2025-01-28", + "last_updated": "2025-11-25", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "input": 0.05, + "output": 0.05 } }, { - "id": "gemini-2.5-flash-preview-09-2025", - "name": "Gemini 2.5 Flash Preview 09-25", - "display_name": "Gemini 2.5 Flash Preview 09-25", + "id": "qwen-qwen3-vl-8b-thinking", + "name": "Qwen/Qwen3-VL-8B-Thinking", + "display_name": "Qwen/Qwen3-VL-8B-Thinking", "modalities": { "input": [ "text", - "image", - "audio", - "video", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, @@ -30170,72 +29716,59 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-09-25", - "last_updated": "2025-09-25", + "release_date": "2025-10-15", + "last_updated": "2025-11-25", "cost": { - "input": 0.3, - "output": 2.5, - "cache_read": 0.075, - "cache_write": 0.383 + "input": 0.18, + "output": 2 } }, { - "id": "gemini-2.5-flash-preview-04-17", - "name": "Gemini 2.5 Flash Preview 04-17", - "display_name": "Gemini 2.5 Flash Preview 04-17", + "id": "qwen-qwen3-vl-8b-instruct", + "name": "Qwen/Qwen3-VL-8B-Instruct", + "display_name": "Qwen/Qwen3-VL-8B-Instruct", "modalities": { "input": [ "text", - "image", - "audio", - "video", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-04-17", - "last_updated": "2025-04-17", + "release_date": "2025-10-15", + "last_updated": "2025-11-25", "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.0375 + "input": 0.18, + "output": 0.68 } }, { - "id": "gemini-2.5-pro", - "name": "Gemini 2.5 Pro", - "display_name": "Gemini 2.5 Pro", + "id": "nex-agi-deepseek-v3.1-nex-n1", + "name": "nex-agi/DeepSeek-V3.1-Nex-N1", + "display_name": "nex-agi/DeepSeek-V3.1-Nex-N1", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -30243,58 +29776,49 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-03-20", - "last_updated": "2025-06-05", + "release_date": "2025-01-01", + "last_updated": "2025-11-25", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 0.5, + "output": 2 } }, { - "id": "gemini-2.5-flash-lite-preview-09-2025", - "name": "Gemini 2.5 Flash Lite Preview 09-25", - "display_name": "Gemini 2.5 Flash Lite Preview 09-25", + "id": "qwen-qwen3-8b", + "name": "Qwen/Qwen3-8B", + "display_name": "Qwen/Qwen3-8B", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-09-25", - "last_updated": "2025-09-25", + "release_date": "2025-04-30", + "last_updated": "2025-11-25", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "input": 0.06, + "output": 0.06 } }, { - "id": "openai/gpt-oss-120b-maas", - "name": "GPT OSS 120B", - "display_name": "GPT OSS 120B", + "id": "qwen-qwen2.5-72b-instruct", + "name": "Qwen/Qwen2.5-72B-Instruct", + "display_name": "Qwen/Qwen2.5-72B-Instruct", "modalities": { "input": [ "text" @@ -30304,28 +29828,27 @@ ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 33000, + "output": 4000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "open_weights": false, + "release_date": "2024-09-18", + "last_updated": "2025-11-25", "cost": { - "input": 0.09, - "output": 0.36 + "input": 0.59, + "output": 0.59 } }, { - "id": "openai/gpt-oss-20b-maas", - "name": "GPT OSS 20B", - "display_name": "GPT OSS 20B", + "id": "qwen-qwen3-235b-a22b", + "name": "Qwen/Qwen3-235B-A22B", + "display_name": "Qwen/Qwen3-235B-A22B", "modalities": { "input": [ "text" @@ -30335,36 +29858,27 @@ ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "open_weights": false, + "release_date": "2025-04-30", + "last_updated": "2025-11-25", "cost": { - "input": 0.07, - "output": 0.25 + "input": 0.35, + "output": 1.42 } - } - ] - }, - "cloudflare-workers-ai": { - "id": "cloudflare-workers-ai", - "name": "Cloudflare Workers AI", - "display_name": "Cloudflare Workers AI", - "doc": "https://developers.cloudflare.com/workers-ai/models/", - "models": [ + }, { - "id": "mistral-7b-instruct-v0.1-awq", - "name": "@hf/thebloke/mistral-7b-instruct-v0.1-awq", - "display_name": "@hf/thebloke/mistral-7b-instruct-v0.1-awq", + "id": "meta-llama-meta-llama-3.1-8b-instruct", + "name": "meta-llama/Meta-Llama-3.1-8B-Instruct", + "display_name": "meta-llama/Meta-Llama-3.1-8B-Instruct", "modalities": { "input": [ "text" @@ -30374,8 +29888,8 @@ ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 33000, + "output": 4000 }, "temperature": true, "tool_call": true, @@ -30383,48 +29897,48 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2023-09-27", - "last_updated": "2023-11-09", + "open_weights": false, + "release_date": "2025-04-23", + "last_updated": "2025-11-25", "cost": { - "input": 0, - "output": 0 + "input": 0.06, + "output": 0.06 } }, { - "id": "aura-1", - "name": "@cf/deepgram/aura-1", - "display_name": "@cf/deepgram/aura-1", + "id": "qwen-qwen3-235b-a22b-instruct-2507", + "name": "Qwen/Qwen3-235B-A22B-Instruct-2507", + "display_name": "Qwen/Qwen3-235B-A22B-Instruct-2507", "modalities": { "input": [ "text" ], "output": [ - "audio" + "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 262000, + "output": 262000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2025-08-27", - "last_updated": "2025-07-07", + "open_weights": false, + "release_date": "2025-07-23", + "last_updated": "2025-11-25", "cost": { - "input": 0.015, - "output": 0.015 + "input": 0.09, + "output": 0.6 } }, { - "id": "mistral-7b-instruct-v0.2", - "name": "@hf/mistral/mistral-7b-instruct-v0.2", - "display_name": "@hf/mistral/mistral-7b-instruct-v0.2", + "id": "baidu-ernie-4.5-300b-a47b", + "name": "baidu/ERNIE-4.5-300B-A47B", + "display_name": "baidu/ERNIE-4.5-300B-A47B", "modalities": { "input": [ "text" @@ -30434,8 +29948,8 @@ ] }, "limit": { - "context": 3072, - "output": 4096 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -30443,48 +29957,51 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2023-12-11", - "last_updated": "2025-07-24", + "open_weights": false, + "release_date": "2025-07-02", + "last_updated": "2025-11-25", "cost": { - "input": 0, - "output": 0 + "input": 0.28, + "output": 1.1 } }, { - "id": "tinyllama-1.1b-chat-v1.0", - "name": "@cf/tinyllama/tinyllama-1.1b-chat-v1.0", - "display_name": "@cf/tinyllama/tinyllama-1.1b-chat-v1.0", + "id": "qwen-qwen3-omni-30b-a3b-thinking", + "name": "Qwen/Qwen3-Omni-30B-A3B-Thinking", + "display_name": "Qwen/Qwen3-Omni-30B-A3B-Thinking", "modalities": { "input": [ - "text" + "text", + "image", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 2048, - "output": 2048 + "context": 66000, + "output": 66000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "release_date": "2023-12-30", - "last_updated": "2024-03-17", + "attachment": true, + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", "cost": { - "input": 0, - "output": 0 + "input": 0.1, + "output": 0.4 } }, { - "id": "qwen1.5-0.5b-chat", - "name": "@cf/qwen/qwen1.5-0.5b-chat", - "display_name": "@cf/qwen/qwen1.5-0.5b-chat", + "id": "zai-org-glm-4.6", + "name": "zai-org/GLM-4.6", + "display_name": "zai-org/GLM-4.6", "modalities": { "input": [ "text" @@ -30494,8 +30011,8 @@ ] }, "limit": { - "context": 32000, - "output": 32000 + "context": 205000, + "output": 205000 }, "temperature": true, "tool_call": true, @@ -30503,18 +30020,18 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-01-31", - "last_updated": "2024-04-30", + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", "cost": { - "input": 0, - "output": 0 + "input": 0.5, + "output": 1.9 } }, { - "id": "llama-3.2-11b-vision-instruct", - "name": "@cf/meta/llama-3.2-11b-vision-instruct", - "display_name": "@cf/meta/llama-3.2-11b-vision-instruct", + "id": "qwen-qwen3-32b", + "name": "Qwen/Qwen3-32B", + "display_name": "Qwen/Qwen3-32B", "modalities": { "input": [ "text" @@ -30524,8 +30041,8 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -30533,18 +30050,18 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-09-18", - "last_updated": "2024-12-04", + "open_weights": false, + "release_date": "2025-04-30", + "last_updated": "2025-11-25", "cost": { - "input": 0.049, - "output": 0.68 + "input": 0.14, + "output": 0.57 } }, { - "id": "llama-2-13b-chat-awq", - "name": "@hf/thebloke/llama-2-13b-chat-awq", - "display_name": "@hf/thebloke/llama-2-13b-chat-awq", + "id": "tencent-hunyuan-a13b-instruct", + "name": "tencent/Hunyuan-A13B-Instruct", + "display_name": "tencent/Hunyuan-A13B-Instruct", "modalities": { "input": [ "text" @@ -30554,8 +30071,8 @@ ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -30563,18 +30080,18 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2023-09-19", - "last_updated": "2023-11-09", + "open_weights": false, + "release_date": "2025-06-30", + "last_updated": "2025-11-25", "cost": { - "input": 0, - "output": 0 + "input": 0.14, + "output": 0.57 } }, { - "id": "llama-3.1-8b-instruct-fp8", - "name": "@cf/meta/llama-3.1-8b-instruct-fp8", - "display_name": "@cf/meta/llama-3.1-8b-instruct-fp8", + "id": "thudm-glm-4-32b-0414", + "name": "THUDM/GLM-4-32B-0414", + "display_name": "THUDM/GLM-4-32B-0414", "modalities": { "input": [ "text" @@ -30584,8 +30101,8 @@ ] }, "limit": { - "context": 32000, - "output": 32000 + "context": 33000, + "output": 33000 }, "temperature": true, "tool_call": true, @@ -30593,179 +30110,192 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-07-25", - "last_updated": "2024-07-25", + "open_weights": false, + "release_date": "2025-04-18", + "last_updated": "2025-11-25", "cost": { - "input": 0.15, - "output": 0.29 + "input": 0.27, + "output": 0.27 } }, { - "id": "whisper", - "name": "@cf/openai/whisper", - "display_name": "@cf/openai/whisper", + "id": "deepseek-ai-deepseek-r1-distill-qwen-32b", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", "modalities": { "input": [ - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 131000, + "output": 131000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2023-11-07", - "last_updated": "2024-08-12", + "open_weights": false, + "release_date": "2025-01-20", + "last_updated": "2025-11-25", "cost": { - "input": 0.00045, - "output": 0.00045 + "input": 0.18, + "output": 0.18 } }, { - "id": "stable-diffusion-xl-base-1.0", - "name": "@cf/stabilityai/stable-diffusion-xl-base-1.0", - "display_name": "@cf/stabilityai/stable-diffusion-xl-base-1.0", + "id": "qwen-qwen3-next-80b-a3b-instruct", + "name": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "display_name": "Qwen/Qwen3-Next-80B-A3B-Instruct", "modalities": { "input": [ "text" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 262000, + "output": 262000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2023-07-25", - "last_updated": "2023-10-30", + "open_weights": false, + "release_date": "2025-09-18", + "last_updated": "2025-11-25", "cost": { - "input": 0, - "output": 0 + "input": 0.14, + "output": 1.4 } }, { - "id": "llama-2-7b-chat-fp16", - "name": "@cf/meta/llama-2-7b-chat-fp16", - "display_name": "@cf/meta/llama-2-7b-chat-fp16", + "id": "qwen-qwen3-vl-30b-a3b-instruct", + "name": "Qwen/Qwen3-VL-30B-A3B-Instruct", + "display_name": "Qwen/Qwen3-VL-30B-A3B-Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 262000, + "output": 262000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "release_date": "2023-07-26", - "last_updated": "2023-07-26", + "attachment": true, + "open_weights": false, + "release_date": "2025-10-05", + "last_updated": "2025-11-25", "cost": { - "input": 0.56, - "output": 6.67 + "input": 0.29, + "output": 1 } }, { - "id": "resnet-50", - "name": "@cf/microsoft/resnet-50", - "display_name": "@cf/microsoft/resnet-50", + "id": "moonshotai-kimi-k2-thinking", + "name": "moonshotai/Kimi-K2-Thinking", + "display_name": "moonshotai/Kimi-K2-Thinking", "modalities": { "input": [ - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 262000, + "output": 262000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2022-03-16", - "last_updated": "2024-02-13", + "open_weights": false, + "release_date": "2025-11-07", + "last_updated": "2025-11-25", "cost": { - "input": 0.0000025, - "output": 0 + "input": 0.55, + "output": 2.5 } }, { - "id": "stable-diffusion-v1-5-inpainting", - "name": "@cf/runwayml/stable-diffusion-v1-5-inpainting", - "display_name": "@cf/runwayml/stable-diffusion-v1-5-inpainting", + "id": "qwen-qwen2.5-14b-instruct", + "name": "Qwen/Qwen2.5-14B-Instruct", + "display_name": "Qwen/Qwen2.5-14B-Instruct", "modalities": { "input": [ "text" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 33000, + "output": 4000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-02-27", - "last_updated": "2024-02-27", + "open_weights": false, + "release_date": "2024-09-18", + "last_updated": "2025-11-25", "cost": { - "input": 0, - "output": 0 + "input": 0.1, + "output": 0.1 } - }, + } + ] + }, + "helicone": { + "id": "helicone", + "name": "Helicone", + "display_name": "Helicone", + "api": "https://ai-gateway.helicone.ai/v1", + "doc": "https://helicone.ai/models", + "models": [ { - "id": "sqlcoder-7b-2", - "name": "@cf/defog/sqlcoder-7b-2", - "display_name": "@cf/defog/sqlcoder-7b-2", + "id": "gpt-4.1-nano", + "name": "OpenAI GPT-4.1 Nano", + "display_name": "OpenAI GPT-4.1 Nano", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 10000, - "output": 10000 + "context": 1047576, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -30773,29 +30303,33 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-02-05", - "last_updated": "2024-02-12", + "open_weights": false, + "knowledge": "2025-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0, - "output": 0 + "input": 0.09999999999999999, + "output": 0.39999999999999997, + "cache_read": 0.024999999999999998 } }, { - "id": "llama-3-8b-instruct", - "name": "@cf/meta/llama-3-8b-instruct", - "display_name": "@cf/meta/llama-3-8b-instruct", + "id": "grok-4-fast-non-reasoning", + "name": "xAI Grok 4 Fast Non-Reasoning", + "display_name": "xAI Grok 4 Fast Non-Reasoning", "modalities": { "input": [ - "text" + "text", + "image", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 7968, - "output": 7968 + "context": 2000000, + "output": 2000000 }, "temperature": true, "tool_call": true, @@ -30803,29 +30337,34 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-04-17", - "last_updated": "2025-06-19", + "open_weights": false, + "knowledge": "2025-09", + "release_date": "2025-09-19", + "last_updated": "2025-09-19", "cost": { - "input": 0.28, - "output": 0.83 + "input": 0.19999999999999998, + "output": 0.5, + "cache_read": 0.049999999999999996 } }, { - "id": "llama-2-7b-chat-hf-lora", - "name": "@cf/meta-llama/llama-2-7b-chat-hf-lora", - "display_name": "@cf/meta-llama/llama-2-7b-chat-hf-lora", + "id": "qwen3-coder", + "name": "Qwen3 Coder 480B A35B Instruct Turbo", + "display_name": "Qwen3 Coder 480B A35B Instruct Turbo", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 262144, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -30833,18 +30372,19 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2023-07-13", - "last_updated": "2024-04-17", + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", "cost": { - "input": 0, - "output": 0 + "input": 0.22, + "output": 0.95 } }, { - "id": "llama-3.1-8b-instruct", - "name": "@cf/meta/llama-3.1-8b-instruct", - "display_name": "@cf/meta/llama-3.1-8b-instruct", + "id": "deepseek-v3", + "name": "DeepSeek V3", + "display_name": "DeepSeek V3", "modalities": { "input": [ "text" @@ -30854,8 +30394,8 @@ ] }, "limit": { - "context": 7968, - "output": 7968 + "context": 128000, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -30863,209 +30403,231 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-07-18", - "last_updated": "2024-09-25", + "open_weights": false, + "knowledge": "2024-12", + "release_date": "2024-12-26", + "last_updated": "2024-12-26", "cost": { - "input": 0.28, - "output": 0.83 + "input": 0.56, + "output": 1.68, + "cache_read": 0.07 } }, { - "id": "openchat-3.5-0106", - "name": "@cf/openchat/openchat-3.5-0106", - "display_name": "@cf/openchat/openchat-3.5-0106", + "id": "claude-opus-4", + "name": "Anthropic: Claude Opus 4", + "display_name": "Anthropic: Claude Opus 4", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 200000, + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2024-01-07", - "last_updated": "2024-05-18", + "open_weights": false, + "knowledge": "2025-05", + "release_date": "2025-05-14", + "last_updated": "2025-05-14", "cost": { - "input": 0, - "output": 0 + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } }, { - "id": "openhermes-2.5-mistral-7b-awq", - "name": "@hf/thebloke/openhermes-2.5-mistral-7b-awq", - "display_name": "@hf/thebloke/openhermes-2.5-mistral-7b-awq", + "id": "grok-4-fast-reasoning", + "name": "xAI: Grok 4 Fast Reasoning", + "display_name": "xAI: Grok 4 Fast Reasoning", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 2000000, + "output": 2000000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2023-11-02", - "last_updated": "2023-11-09", + "open_weights": false, + "knowledge": "2025-09", + "release_date": "2025-09-01", + "last_updated": "2025-09-01", "cost": { - "input": 0, - "output": 0 + "input": 0.19999999999999998, + "output": 0.5, + "cache_read": 0.049999999999999996 } }, { - "id": "lucid-origin", - "name": "@cf/leonardo/lucid-origin", - "display_name": "@cf/leonardo/lucid-origin", + "id": "llama-3.1-8b-instant", + "name": "Meta Llama 3.1 8B Instant", + "display_name": "Meta Llama 3.1 8B Instant", "modalities": { "input": [ "text" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 131072, + "output": 32678 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-08-25", - "last_updated": "2025-08-05", + "knowledge": "2024-07", + "release_date": "2024-07-01", + "last_updated": "2024-07-01", "cost": { - "input": 0.007, - "output": 0.007 + "input": 0.049999999999999996, + "output": 0.08 } }, { - "id": "bart-large-cnn", - "name": "@cf/facebook/bart-large-cnn", - "display_name": "@cf/facebook/bart-large-cnn", + "id": "claude-opus-4-1", + "name": "Anthropic: Claude Opus 4.1", + "display_name": "Anthropic: Claude Opus 4.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 200000, + "output": 32000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2022-03-02", - "last_updated": "2024-02-13", + "open_weights": false, + "knowledge": "2025-08", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0, - "output": 0 + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } }, { - "id": "flux-1-schnell", - "name": "@cf/black-forest-labs/flux-1-schnell", - "display_name": "@cf/black-forest-labs/flux-1-schnell", + "id": "grok-4", + "name": "xAI Grok 4", + "display_name": "xAI Grok 4", "modalities": { "input": [ "text" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 2048, - "output": 0 + "context": 256000, + "output": 256000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-07-31", - "last_updated": "2024-08-16", + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2024-07-09", + "last_updated": "2024-07-09", "cost": { - "input": 0.000053, - "output": 0.00011 + "input": 3, + "output": 15, + "cache_read": 0.75 } }, { - "id": "deepseek-r1-distill-qwen-32b", - "name": "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", - "display_name": "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", + "id": "qwen3-next-80b-a3b-instruct", + "name": "Qwen3 Next 80B A3B Instruct", + "display_name": "Qwen3 Next 80B A3B Instruct", "modalities": { "input": [ - "text" + "text", + "image", + "video" ], "output": [ "text" ] }, "limit": { - "context": 80000, - "output": 80000 + "context": 262000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2025-01-20", - "last_updated": "2025-02-24", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.5, - "output": 4.88 + "input": 0.14, + "output": 1.4 } }, { - "id": "gemma-2b-it-lora", - "name": "@cf/google/gemma-2b-it-lora", - "display_name": "@cf/google/gemma-2b-it-lora", + "id": "llama-4-maverick", + "name": "Meta Llama 4 Maverick 17B 128E", + "display_name": "Meta Llama 4 Maverick 17B 128E", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 8192, + "context": 131072, "output": 8192 }, "temperature": true, @@ -31074,18 +30636,19 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-04-02", - "last_updated": "2024-04-02", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0, - "output": 0 + "input": 0.15, + "output": 0.6 } }, { - "id": "una-cybertron-7b-v2-bf16", - "name": "@cf/fblgit/una-cybertron-7b-v2-bf16", - "display_name": "@cf/fblgit/una-cybertron-7b-v2-bf16", + "id": "llama-prompt-guard-2-86m", + "name": "Meta Llama Prompt Guard 2 86M", + "display_name": "Meta Llama Prompt Guard 2 86M", "modalities": { "input": [ "text" @@ -31095,57 +30658,62 @@ ] }, "limit": { - "context": 15000, - "output": 15000 + "context": 512, + "output": 2 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2023-12-02", - "last_updated": "2024-03-08", + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-10-01", + "last_updated": "2024-10-01", "cost": { - "input": 0, - "output": 0 + "input": 0.01, + "output": 0.01 } }, { - "id": "gemma-sea-lion-v4-27b-it", - "name": "@cf/aisingapore/gemma-sea-lion-v4-27b-it", - "display_name": "@cf/aisingapore/gemma-sea-lion-v4-27b-it", + "id": "grok-4-1-fast-reasoning", + "name": "xAI Grok 4.1 Fast Reasoning", + "display_name": "xAI Grok 4.1 Fast Reasoning", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 0 + "context": 2000000, + "output": 2000000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-09-23", - "last_updated": "2025-12-02", + "knowledge": "2025-11", + "release_date": "2025-11-17", + "last_updated": "2025-11-17", "cost": { - "input": 0.35, - "output": 0.56 + "input": 0.19999999999999998, + "output": 0.5, + "cache_read": 0.049999999999999996 } }, { - "id": "m2m100-1.2b", - "name": "@cf/meta/m2m100-1.2b", - "display_name": "@cf/meta/m2m100-1.2b", + "id": "grok-code-fast-1", + "name": "xAI Grok Code Fast 1", + "display_name": "xAI Grok Code Fast 1", "modalities": { "input": [ "text" @@ -31155,38 +30723,41 @@ ] }, "limit": { - "context": 0, - "output": 0 + "context": 256000, + "output": 10000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2022-03-02", - "last_updated": "2023-11-16", + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-08-25", + "last_updated": "2024-08-25", "cost": { - "input": 0.34, - "output": 0.34 + "input": 0.19999999999999998, + "output": 1.5, + "cache_read": 0.02 } }, { - "id": "llama-3.2-3b-instruct", - "name": "@cf/meta/llama-3.2-3b-instruct", - "display_name": "@cf/meta/llama-3.2-3b-instruct", + "id": "claude-4.5-haiku", + "name": "Anthropic: Claude 4.5 Haiku", + "display_name": "Anthropic: Claude 4.5 Haiku", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 200000, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -31194,18 +30765,21 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-09-18", - "last_updated": "2024-10-24", + "open_weights": false, + "knowledge": "2025-10", + "release_date": "2025-10-01", + "last_updated": "2025-10-01", "cost": { - "input": 0.051, - "output": 0.34 + "input": 1, + "output": 5, + "cache_read": 0.09999999999999999, + "cache_write": 1.25 } }, { - "id": "qwen2.5-coder-32b-instruct", - "name": "@cf/qwen/qwen2.5-coder-32b-instruct", - "display_name": "@cf/qwen/qwen2.5-coder-32b-instruct", + "id": "llama-3.1-8b-instruct-turbo", + "name": "Meta Llama 3.1 8B Instruct Turbo", + "display_name": "Meta Llama 3.1 8B Instruct Turbo", "modalities": { "input": [ "text" @@ -31215,8 +30789,8 @@ ] }, "limit": { - "context": 32768, - "output": 32768 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -31224,59 +30798,65 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-11-06", - "last_updated": "2025-01-12", + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 0.66, - "output": 1 + "input": 0.02, + "output": 0.03 } }, { - "id": "stable-diffusion-v1-5-img2img", - "name": "@cf/runwayml/stable-diffusion-v1-5-img2img", - "display_name": "@cf/runwayml/stable-diffusion-v1-5-img2img", + "id": "gpt-5.1-codex", + "name": "OpenAI: GPT-5.1 Codex", + "display_name": "OpenAI: GPT-5.1 Codex", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ + "text", "image" ] }, "limit": { - "context": 0, - "output": 0 + "context": 400000, + "output": 128000 }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-02-27", - "last_updated": "2024-02-27", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0, - "output": 0 + "input": 1.25, + "output": 10, + "cache_read": 0.12500000000000003 } }, { - "id": "gemma-7b-it-lora", - "name": "@cf/google/gemma-7b-it-lora", - "display_name": "@cf/google/gemma-7b-it-lora", + "id": "gpt-4.1-mini-2025-04-14", + "name": "OpenAI GPT-4.1 Mini", + "display_name": "OpenAI GPT-4.1 Mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 3500, - "output": 3500 + "context": 1047576, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -31284,48 +30864,52 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-04-02", - "last_updated": "2024-04-02", + "open_weights": false, + "knowledge": "2025-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0, - "output": 0 + "input": 0.39999999999999997, + "output": 1.5999999999999999, + "cache_read": 0.09999999999999999 } }, { - "id": "qwen1.5-14b-chat-awq", - "name": "@cf/qwen/qwen1.5-14b-chat-awq", - "display_name": "@cf/qwen/qwen1.5-14b-chat-awq", + "id": "llama-guard-4", + "name": "Meta Llama Guard 4 12B", + "display_name": "Meta Llama Guard 4 12B", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 7500, - "output": 7500 + "context": 131072, + "output": 1024 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-02-03", - "last_updated": "2024-04-30", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0, - "output": 0 + "input": 0.21, + "output": 0.21 } }, { - "id": "qwen1.5-1.8b-chat", - "name": "@cf/qwen/qwen1.5-1.8b-chat", - "display_name": "@cf/qwen/qwen1.5-1.8b-chat", + "id": "llama-3.1-8b-instruct", + "name": "Meta Llama 3.1 8B Instruct", + "display_name": "Meta Llama 3.1 8B Instruct", "modalities": { "input": [ "text" @@ -31335,8 +30919,8 @@ ] }, "limit": { - "context": 32000, - "output": 32000 + "context": 16384, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -31344,109 +30928,123 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-01-30", - "last_updated": "2024-04-30", + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 0, - "output": 0 + "input": 0.02, + "output": 0.049999999999999996 } }, { - "id": "mistral-small-3.1-24b-instruct", - "name": "@cf/mistralai/mistral-small-3.1-24b-instruct", - "display_name": "@cf/mistralai/mistral-small-3.1-24b-instruct", + "id": "gemini-3-pro-preview", + "name": "Google Gemini 3 Pro Preview", + "display_name": "Google Gemini 3 Pro Preview", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2025-03-11", - "last_updated": "2025-07-28", + "open_weights": false, + "knowledge": "2025-11", + "release_date": "2025-11-18", + "last_updated": "2025-11-18", "cost": { - "input": 0.35, - "output": 0.56 + "input": 2, + "output": 12, + "cache_read": 0.19999999999999998 } }, { - "id": "gemma-7b-it", - "name": "@hf/google/gemma-7b-it", - "display_name": "@hf/google/gemma-7b-it", + "id": "gemini-2.5-flash", + "name": "Google Gemini 2.5 Flash", + "display_name": "Google Gemini 2.5 Flash", "modalities": { "input": [ - "text" - ], + "text", + "image" + ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 1048576, + "output": 65535 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2024-02-13", - "last_updated": "2024-08-14", + "open_weights": false, + "knowledge": "2025-06", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", "cost": { - "input": 0, - "output": 0 + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.3 } }, { - "id": "qwen3-30b-a3b-fp8", - "name": "@cf/qwen/qwen3-30b-a3b-fp8", - "display_name": "@cf/qwen/qwen3-30b-a3b-fp8", + "id": "gpt-4.1-mini", + "name": "OpenAI GPT-4.1 Mini", + "display_name": "OpenAI GPT-4.1 Mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 32768, - "output": 0 + "context": 1047576, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2025-04-30", - "last_updated": "2025-12-02", + "open_weights": false, + "knowledge": "2025-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0.051, - "output": 0.34 + "input": 0.39999999999999997, + "output": 1.5999999999999999, + "cache_read": 0.09999999999999999 } }, { - "id": "llamaguard-7b-awq", - "name": "@hf/thebloke/llamaguard-7b-awq", - "display_name": "@hf/thebloke/llamaguard-7b-awq", + "id": "deepseek-v3.1-terminus", + "name": "DeepSeek V3.1 Terminus", + "display_name": "DeepSeek V3.1 Terminus", "modalities": { "input": [ "text" @@ -31456,27 +31054,30 @@ ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2023-12-11", - "last_updated": "2023-12-11", + "open_weights": false, + "knowledge": "2025-09", + "release_date": "2025-09-22", + "last_updated": "2025-09-22", "cost": { - "input": 0, - "output": 0 + "input": 0.27, + "output": 1, + "cache_read": 0.21600000000000003 } }, { - "id": "hermes-2-pro-mistral-7b", - "name": "@hf/nousresearch/hermes-2-pro-mistral-7b", - "display_name": "@hf/nousresearch/hermes-2-pro-mistral-7b", + "id": "llama-prompt-guard-2-22m", + "name": "Meta Llama Prompt Guard 2 22M", + "display_name": "Meta Llama Prompt Guard 2 22M", "modalities": { "input": [ "text" @@ -31486,38 +31087,40 @@ ] }, "limit": { - "context": 24000, - "output": 24000 + "context": 512, + "output": 2 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-03-11", - "last_updated": "2024-09-08", + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-10-01", + "last_updated": "2024-10-01", "cost": { - "input": 0, - "output": 0 + "input": 0.01, + "output": 0.01 } }, { - "id": "granite-4.0-h-micro", - "name": "@cf/ibm-granite/granite-4.0-h-micro", - "display_name": "@cf/ibm-granite/granite-4.0-h-micro", + "id": "claude-3.5-sonnet-v2", + "name": "Anthropic: Claude 3.5 Sonnet v2", + "display_name": "Anthropic: Claude 3.5 Sonnet v2", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131000, - "output": 0 + "context": 200000, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -31526,17 +31129,20 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-10-07", - "last_updated": "2025-12-02", + "knowledge": "2024-10", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { - "input": 0.017, - "output": 0.11 + "input": 3, + "output": 15, + "cache_read": 0.30000000000000004, + "cache_write": 3.75 } }, { - "id": "falcon-7b-instruct", - "name": "@cf/tiiuae/falcon-7b-instruct", - "display_name": "@cf/tiiuae/falcon-7b-instruct", + "id": "sonar-deep-research", + "name": "Perplexity Sonar Deep Research", + "display_name": "Perplexity Sonar Deep Research", "modalities": { "input": [ "text" @@ -31546,188 +31152,206 @@ ] }, "limit": { - "context": 4096, + "context": 127000, "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2023-04-25", - "last_updated": "2024-10-12", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-27", + "last_updated": "2025-01-27", "cost": { - "input": 0, - "output": 0 + "input": 2, + "output": 8 } }, { - "id": "llama-3.3-70b-instruct-fp8-fast", - "name": "@cf/meta/llama-3.3-70b-instruct-fp8-fast", - "display_name": "@cf/meta/llama-3.3-70b-instruct-fp8-fast", + "id": "gemini-2.5-flash-lite", + "name": "Google Gemini 2.5 Flash Lite", + "display_name": "Google Gemini 2.5 Flash Lite", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 24000, - "output": 24000 + "context": 1048576, + "output": 65535 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2024-12-06", - "last_updated": "2024-12-06", + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-07-22", + "last_updated": "2025-07-22", "cost": { - "input": 0.29, - "output": 2.25 + "input": 0.09999999999999999, + "output": 0.39999999999999997, + "cache_read": 0.024999999999999998, + "cache_write": 0.09999999999999999 } }, { - "id": "llama-3-8b-instruct-awq", - "name": "@cf/meta/llama-3-8b-instruct-awq", - "display_name": "@cf/meta/llama-3-8b-instruct-awq", + "id": "claude-sonnet-4-5-20250929", + "name": "Anthropic: Claude Sonnet 4.5 (20250929)", + "display_name": "Anthropic: Claude Sonnet 4.5 (20250929)", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2024-05-09", - "last_updated": "2024-05-09", + "open_weights": false, + "knowledge": "2025-09", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "cost": { - "input": 0.12, - "output": 0.27 + "input": 3, + "output": 15, + "cache_read": 0.30000000000000004, + "cache_write": 3.75 } }, { - "id": "phoenix-1.0", - "name": "@cf/leonardo/phoenix-1.0", - "display_name": "@cf/leonardo/phoenix-1.0", + "id": "grok-3", + "name": "xAI Grok 3", + "display_name": "xAI Grok 3", "modalities": { "input": [ "text" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 131072, + "output": 131072 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-08-25", - "last_updated": "2025-08-25", + "knowledge": "2024-06", + "release_date": "2024-06-01", + "last_updated": "2024-06-01", "cost": { - "input": 0.0058, - "output": 0.0058 + "input": 3, + "output": 15, + "cache_read": 0.75 } }, { - "id": "phi-2", - "name": "@cf/microsoft/phi-2", - "display_name": "@cf/microsoft/phi-2", + "id": "mistral-small", + "name": "Mistral Small", + "display_name": "Mistral Small", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 2048, - "output": 2048 + "context": 128000, + "output": 128000 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2023-12-13", - "last_updated": "2024-04-29", + "open_weights": false, + "knowledge": "2024-02", + "release_date": "2024-02-26", + "last_updated": "2024-02-26", "cost": { - "input": 0, - "output": 0 + "input": 75, + "output": 200 } }, { - "id": "dreamshaper-8-lcm", - "name": "@cf/lykon/dreamshaper-8-lcm", - "display_name": "@cf/lykon/dreamshaper-8-lcm", + "id": "kimi-k2-0711", + "name": "Kimi K2 (07/11)", + "display_name": "Kimi K2 (07/11)", "modalities": { "input": [ "text" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 131072, + "output": 16384 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": true, - "release_date": "2023-12-06", - "last_updated": "2023-12-07", + "attachment": false, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0, - "output": 0 + "input": 0.5700000000000001, + "output": 2.3 } }, { - "id": "discolm-german-7b-v1-awq", - "name": "@cf/thebloke/discolm-german-7b-v1-awq", - "display_name": "@cf/thebloke/discolm-german-7b-v1-awq", + "id": "chatgpt-4o-latest", + "name": "OpenAI ChatGPT-4o", + "display_name": "OpenAI ChatGPT-4o", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -31735,18 +31359,20 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-01-18", - "last_updated": "2024-01-24", + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-08-14", + "last_updated": "2024-08-14", "cost": { - "input": 0, - "output": 0 + "input": 5, + "output": 20, + "cache_read": 2.5 } }, { - "id": "llama-2-7b-chat-int8", - "name": "@cf/meta/llama-2-7b-chat-int8", - "display_name": "@cf/meta/llama-2-7b-chat-int8", + "id": "qwen3-coder-30b-a3b-instruct", + "name": "Qwen3 Coder 30B A3B Instruct", + "display_name": "Qwen3 Coder 30B A3B Instruct", "modalities": { "input": [ "text" @@ -31756,8 +31382,8 @@ ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 262144, + "output": 262144 }, "temperature": true, "tool_call": true, @@ -31765,18 +31391,19 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2023-09-25", - "last_updated": "2023-09-25", + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-07-31", + "last_updated": "2025-07-31", "cost": { - "input": 0.556, - "output": 6.667 + "input": 0.09999999999999999, + "output": 0.3 } }, { - "id": "llama-3.2-1b-instruct", - "name": "@cf/meta/llama-3.2-1b-instruct", - "display_name": "@cf/meta/llama-3.2-1b-instruct", + "id": "kimi-k2-0905", + "name": "Kimi K2 (09/05)", + "display_name": "Kimi K2 (09/05)", "modalities": { "input": [ "text" @@ -31786,8 +31413,8 @@ ] }, "limit": { - "context": 60000, - "output": 60000 + "context": 262144, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -31795,48 +31422,52 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-09-18", - "last_updated": "2024-10-24", + "open_weights": false, + "knowledge": "2025-09", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", "cost": { - "input": 0.027, - "output": 0.2 + "input": 0.5, + "output": 2, + "cache_read": 0.39999999999999997 } }, { - "id": "whisper-large-v3-turbo", - "name": "@cf/openai/whisper-large-v3-turbo", - "display_name": "@cf/openai/whisper-large-v3-turbo", + "id": "sonar-reasoning", + "name": "Perplexity Sonar Reasoning", + "display_name": "Perplexity Sonar Reasoning", "modalities": { "input": [ - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 127000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2024-10-01", - "last_updated": "2024-10-04", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-27", + "last_updated": "2025-01-27", "cost": { - "input": 0.00051, - "output": 0.00051 + "input": 1, + "output": 5 } }, { - "id": "llama-4-scout-17b-16e-instruct", - "name": "@cf/meta/llama-4-scout-17b-16e-instruct", - "display_name": "@cf/meta/llama-4-scout-17b-16e-instruct", + "id": "llama-3.3-70b-instruct", + "name": "Meta Llama 3.3 70B Instruct", + "display_name": "Meta Llama 3.3 70B Instruct", "modalities": { "input": [ "text" @@ -31846,8 +31477,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 128000, + "output": 16400 }, "temperature": true, "tool_call": true, @@ -31855,48 +31486,53 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2025-04-02", - "last_updated": "2025-05-23", + "open_weights": false, + "knowledge": "2024-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", "cost": { - "input": 0.27, - "output": 0.85 + "input": 0.13, + "output": 0.39 } }, { - "id": "starling-lm-7b-beta", - "name": "@hf/nexusflow/starling-lm-7b-beta", - "display_name": "@hf/nexusflow/starling-lm-7b-beta", + "id": "gpt-5.1-codex-mini", + "name": "OpenAI: GPT-5.1 Codex Mini", + "display_name": "OpenAI: GPT-5.1 Codex Mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ - "text" + "text", + "image" ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-03-19", - "last_updated": "2024-04-03", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0, - "output": 0 + "input": 0.25, + "output": 2, + "cache_read": 0.024999999999999998 } }, { - "id": "deepseek-coder-6.7b-base-awq", - "name": "@hf/thebloke/deepseek-coder-6.7b-base-awq", - "display_name": "@hf/thebloke/deepseek-coder-6.7b-base-awq", + "id": "kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ "text" @@ -31906,8 +31542,8 @@ ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 262144 }, "temperature": true, "tool_call": true, @@ -31915,18 +31551,19 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2023-11-05", - "last_updated": "2023-11-09", + "open_weights": false, + "knowledge": "2025-11", + "release_date": "2025-11-06", + "last_updated": "2025-11-06", "cost": { - "input": 0, - "output": 0 + "input": 0.48, + "output": 2 } }, { - "id": "gemma-3-12b-it", - "name": "@cf/google/gemma-3-12b-it", - "display_name": "@cf/google/gemma-3-12b-it", + "id": "o3-mini", + "name": "OpenAI o3 Mini", + "display_name": "OpenAI o3 Mini", "modalities": { "input": [ "text" @@ -31936,147 +31573,164 @@ ] }, "limit": { - "context": 80000, - "output": 80000 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2025-03-01", - "last_updated": "2025-03-21", + "open_weights": false, + "knowledge": "2023-10", + "release_date": "2023-10-01", + "last_updated": "2023-10-01", "cost": { - "input": 0.35, - "output": 0.56 + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 } }, { - "id": "llama-guard-3-8b", - "name": "@cf/meta/llama-guard-3-8b", - "display_name": "@cf/meta/llama-guard-3-8b", + "id": "claude-4.5-sonnet", + "name": "Anthropic: Claude Sonnet 4.5", + "display_name": "Anthropic: Claude Sonnet 4.5", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 0 + "context": 200000, + "output": 64000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2024-07-22", - "last_updated": "2024-10-11", + "open_weights": false, + "knowledge": "2025-09", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "cost": { - "input": 0.48, - "output": 0.03 + "input": 3, + "output": 15, + "cache_read": 0.30000000000000004, + "cache_write": 3.75 } }, { - "id": "neural-chat-7b-v3-1-awq", - "name": "@hf/thebloke/neural-chat-7b-v3-1-awq", - "display_name": "@hf/thebloke/neural-chat-7b-v3-1-awq", + "id": "gpt-5.1", + "name": "OpenAI GPT-5.1", + "display_name": "OpenAI GPT-5.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ - "text" + "text", + "image" ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2023-11-15", - "last_updated": "2023-11-17", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0, - "output": 0 + "input": 1.25, + "output": 10, + "cache_read": 0.12500000000000003 } }, { - "id": "whisper-tiny-en", - "name": "@cf/openai/whisper-tiny-en", - "display_name": "@cf/openai/whisper-tiny-en", + "id": "codex-mini-latest", + "name": "OpenAI Codex Mini Latest", + "display_name": "OpenAI Codex Mini Latest", "modalities": { "input": [ - "audio" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 200000, + "output": 100000 }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2022-09-26", - "last_updated": "2024-01-22", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0, - "output": 0 + "input": 1.5, + "output": 6, + "cache_read": 0.375 } }, { - "id": "stable-diffusion-xl-lightning", - "name": "@cf/bytedance/stable-diffusion-xl-lightning", - "display_name": "@cf/bytedance/stable-diffusion-xl-lightning", + "id": "gpt-5-nano", + "name": "OpenAI GPT-5 Nano", + "display_name": "OpenAI GPT-5 Nano", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 400000, + "output": 128000 }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-02-20", - "last_updated": "2024-04-03", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0, - "output": 0 + "input": 0.049999999999999996, + "output": 0.39999999999999997, + "cache_read": 0.005 } }, { - "id": "mistral-7b-instruct-v0.1", - "name": "@cf/mistral/mistral-7b-instruct-v0.1", - "display_name": "@cf/mistral/mistral-7b-instruct-v0.1", + "id": "gpt-5-codex", + "name": "OpenAI: GPT-5 Codex", + "display_name": "OpenAI: GPT-5 Codex", "modalities": { "input": [ "text" @@ -32086,58 +31740,62 @@ ] }, "limit": { - "context": 2824, - "output": 2824 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2023-09-27", - "last_updated": "2025-07-24", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.11, - "output": 0.19 + "input": 1.25, + "output": 10, + "cache_read": 0.12500000000000003 } }, { - "id": "llava-1.5-7b-hf", - "name": "@cf/llava-hf/llava-1.5-7b-hf", - "display_name": "@cf/llava-hf/llava-1.5-7b-hf", + "id": "gpt-4o", + "name": "OpenAI GPT-4o", + "display_name": "OpenAI GPT-4o", "modalities": { "input": [ - "image", - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 128000, + "output": 16384 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": true, - "release_date": "2023-12-05", - "last_updated": "2025-06-06", + "attachment": false, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2024-05-13", + "last_updated": "2024-05-13", "cost": { - "input": 0, - "output": 0 + "input": 2.5, + "output": 10, + "cache_read": 1.25 } }, { - "id": "gpt-oss-20b", - "name": "@cf/openai/gpt-oss-20b", - "display_name": "@cf/openai/gpt-oss-20b", + "id": "deepseek-tng-r1t2-chimera", + "name": "DeepSeek TNG R1T2 Chimera", + "display_name": "DeepSeek TNG R1T2 Chimera", "modalities": { "input": [ "text" @@ -32147,119 +31805,127 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 130000, + "output": 163840 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2025-08-04", - "last_updated": "2025-08-14", + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-07-02", + "last_updated": "2025-07-02", "cost": { - "input": 0.2, - "output": 0.3 + "input": 0.3, + "output": 1.2 } }, { - "id": "deepseek-math-7b-instruct", - "name": "@cf/deepseek-ai/deepseek-math-7b-instruct", - "display_name": "@cf/deepseek-ai/deepseek-math-7b-instruct", + "id": "claude-4.5-opus", + "name": "Anthropic: Claude Opus 4.5", + "display_name": "Anthropic: Claude Opus 4.5", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2024-02-05", - "last_updated": "2024-02-06", + "open_weights": false, + "knowledge": "2025-11", + "release_date": "2025-11-24", + "last_updated": "2025-11-24", "cost": { - "input": 0, - "output": 0 + "input": 5, + "output": 25, + "cache_read": 0.5000000000000001, + "cache_write": 6.25 } }, { - "id": "gpt-oss-120b", - "name": "@cf/openai/gpt-oss-120b", - "display_name": "@cf/openai/gpt-oss-120b", + "id": "gpt-4.1", + "name": "OpenAI GPT-4.1", + "display_name": "OpenAI GPT-4.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 1047576, + "output": 32768 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2025-08-04", - "last_updated": "2025-08-14", + "open_weights": false, + "knowledge": "2025-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0.35, - "output": 0.75 + "input": 2, + "output": 8, + "cache_read": 0.5 } }, { - "id": "melotts", - "name": "@cf/myshell-ai/melotts", - "display_name": "@cf/myshell-ai/melotts", + "id": "sonar", + "name": "Perplexity Sonar", + "display_name": "Perplexity Sonar", "modalities": { "input": [ "text" ], "output": [ - "audio" + "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 127000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": true, - "release_date": "2024-07-19", - "last_updated": "2024-07-19", + "attachment": false, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-27", + "last_updated": "2025-01-27", "cost": { - "input": 0.0002, - "output": 0 + "input": 1, + "output": 1 } }, { - "id": "qwen1.5-7b-chat-awq", - "name": "@cf/qwen/qwen1.5-7b-chat-awq", - "display_name": "@cf/qwen/qwen1.5-7b-chat-awq", + "id": "glm-4.6", + "name": "Zai GLM-4.6", + "display_name": "Zai GLM-4.6", "modalities": { "input": [ "text" @@ -32269,87 +31935,96 @@ ] }, "limit": { - "context": 20000, - "output": 20000 + "context": 204800, + "output": 131072 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2024-02-03", - "last_updated": "2024-04-30", + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", "cost": { - "input": 0, - "output": 0 + "input": 0.44999999999999996, + "output": 1.5 } }, { - "id": "llama-3.1-8b-instruct-fast", - "name": "@cf/meta/llama-3.1-8b-instruct-fast", - "display_name": "@cf/meta/llama-3.1-8b-instruct-fast", + "id": "o4-mini", + "name": "OpenAI o4 Mini", + "display_name": "OpenAI o4 Mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-07-18", - "last_updated": "2024-09-25", + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2024-06-01", + "last_updated": "2024-06-01", "cost": { - "input": 0.045, - "output": 0.384 + "input": 1.1, + "output": 4.4, + "cache_read": 0.275 } }, { - "id": "nova-3", - "name": "@cf/deepgram/nova-3", - "display_name": "@cf/deepgram/nova-3", + "id": "qwen3-235b-a22b-thinking", + "name": "Qwen3 235B A22B Thinking", + "display_name": "Qwen3 235B A22B Thinking", "modalities": { "input": [ - "audio" + "text", + "image", + "video" ], "output": [ "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 262144, + "output": 81920 }, - "temperature": false, + "temperature": true, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2025-06-05", - "last_updated": "2025-07-08", + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-07-25", + "last_updated": "2025-07-25", "cost": { - "input": 0.0052, - "output": 0.0052 + "input": 0.3, + "output": 2.9000000000000004 } }, { - "id": "llama-3.1-70b-instruct", - "name": "@cf/meta/llama-3.1-70b-instruct", - "display_name": "@cf/meta/llama-3.1-70b-instruct", + "id": "hermes-2-pro-llama-3-8b", + "name": "Hermes 2 Pro Llama 3 8B", + "display_name": "Hermes 2 Pro Llama 3 8B", "modalities": { "input": [ "text" @@ -32359,8 +32034,8 @@ ] }, "limit": { - "context": 24000, - "output": 24000 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -32368,18 +32043,19 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-07-16", - "last_updated": "2024-12-15", + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2024-05-27", + "last_updated": "2024-05-27", "cost": { - "input": 0.293, - "output": 2.253 + "input": 0.14, + "output": 0.14 } }, { - "id": "qwq-32b", - "name": "@cf/qwen/qwq-32b", - "display_name": "@cf/qwen/qwq-32b", + "id": "o1", + "name": "OpenAI: o1", + "display_name": "OpenAI: o1", "modalities": { "input": [ "text" @@ -32389,27 +32065,29 @@ ] }, "limit": { - "context": 24000, - "output": 24000 + "context": 200000, + "output": 100000 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2025-03-05", - "last_updated": "2025-03-11", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.66, - "output": 1 + "input": 15, + "output": 60, + "cache_read": 7.5 } }, { - "id": "zephyr-7b-beta-awq", - "name": "@hf/thebloke/zephyr-7b-beta-awq", - "display_name": "@hf/thebloke/zephyr-7b-beta-awq", + "id": "grok-3-mini", + "name": "xAI Grok 3 Mini", + "display_name": "xAI Grok 3 Mini", "modalities": { "input": [ "text" @@ -32419,8 +32097,8 @@ ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -32428,18 +32106,20 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2023-10-27", - "last_updated": "2023-11-09", + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2024-06-01", + "last_updated": "2024-06-01", "cost": { - "input": 0, - "output": 0 + "input": 0.3, + "output": 0.5, + "cache_read": 0.075 } }, { - "id": "deepseek-coder-6.7b-instruct-awq", - "name": "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", - "display_name": "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", + "id": "sonar-pro", + "name": "Perplexity Sonar Pro", + "display_name": "Perplexity Sonar Pro", "modalities": { "input": [ "text" @@ -32449,57 +32129,61 @@ ] }, "limit": { - "context": 4096, + "context": 200000, "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2023-11-05", - "last_updated": "2023-11-13", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-27", + "last_updated": "2025-01-27", "cost": { - "input": 0, - "output": 0 + "input": 3, + "output": 15 } }, { - "id": "llama-3.1-8b-instruct-awq", - "name": "@cf/meta/llama-3.1-8b-instruct-awq", - "display_name": "@cf/meta/llama-3.1-8b-instruct-awq", + "id": "gpt-5-mini", + "name": "OpenAI GPT-5 Mini", + "display_name": "OpenAI GPT-5 Mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-07-25", - "last_updated": "2024-07-25", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.12, - "output": 0.27 + "input": 0.25, + "output": 2, + "cache_read": 0.024999999999999998 } }, { - "id": "mistral-7b-instruct-v0.2-lora", - "name": "@cf/mistral/mistral-7b-instruct-v0.2-lora", - "display_name": "@cf/mistral/mistral-7b-instruct-v0.2-lora", + "id": "deepseek-r1-distill-llama-70b", + "name": "DeepSeek R1 Distill Llama 70B", + "display_name": "DeepSeek R1 Distill Llama 70B", "modalities": { "input": [ "text" @@ -32509,30 +32193,31 @@ ] }, "limit": { - "context": 15000, - "output": 15000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2024-04-01", - "last_updated": "2024-04-01", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", "cost": { - "input": 0, - "output": 0 + "input": 0.03, + "output": 0.13 } }, { - "id": "uform-gen2-qwen-500m", - "name": "@cf/unum/uform-gen2-qwen-500m", - "display_name": "@cf/unum/uform-gen2-qwen-500m", + "id": "o1-mini", + "name": "OpenAI: o1-mini", + "display_name": "OpenAI: o1-mini", "modalities": { "input": [ - "image", "text" ], "output": [ @@ -32540,8 +32225,8 @@ ] }, "limit": { - "context": 0, - "output": 0 + "context": 128000, + "output": 65536 }, "temperature": false, "tool_call": false, @@ -32549,38 +32234,32 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2024-02-15", - "last_updated": "2024-04-24", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0, - "output": 0 + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 } - } - ] - }, - "inception": { - "id": "inception", - "name": "Inception", - "display_name": "Inception", - "api": "https://api.inceptionlabs.ai/v1/", - "doc": "https://platform.inceptionlabs.ai/docs", - "models": [ + }, { - "id": "mercury-coder", - "name": "Mercury Coder", - "display_name": "Mercury Coder", + "id": "claude-3.7-sonnet", + "name": "Anthropic: Claude 3.7 Sonnet", + "display_name": "Anthropic: Claude 3.7 Sonnet", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, @@ -32589,31 +32268,32 @@ }, "attachment": false, "open_weights": false, - "knowledge": "2023-10", - "release_date": "2025-02-26", - "last_updated": "2025-07-31", + "knowledge": "2025-02", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", "cost": { - "input": 0.25, - "output": 1, - "cache_read": 0.25, - "cache_write": 1 + "input": 3, + "output": 15, + "cache_read": 0.30000000000000004, + "cache_write": 3.75 } }, { - "id": "mercury", - "name": "Mercury", - "display_name": "Mercury", + "id": "claude-3-haiku-20240307", + "name": "Anthropic: Claude 3 Haiku", + "display_name": "Anthropic: Claude 3 Haiku", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -32622,59 +32302,52 @@ }, "attachment": false, "open_weights": false, - "knowledge": "2023-10", - "release_date": "2025-06-26", - "last_updated": "2025-07-31", + "knowledge": "2024-03", + "release_date": "2024-03-07", + "last_updated": "2024-03-07", "cost": { "input": 0.25, - "output": 1, - "cache_read": 0.25, - "cache_write": 1 + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 } - } - ] - }, - "cloudflare-ai-gateway": { - "id": "cloudflare-ai-gateway", - "name": "Cloudflare AI Gateway", - "display_name": "Cloudflare AI Gateway", - "api": "https://gateway.ai.cloudflare.com/v1/${CLOUDFLARE_ACCOUNT_ID}/${CLOUDFLARE_GATEWAY_ID}/compat/", - "doc": "https://developers.cloudflare.com/ai-gateway/", - "models": [ + }, { - "id": "workers-ai/aura-1", - "name": "Aura 1", - "display_name": "Aura 1", + "id": "o3-pro", + "name": "OpenAI o3 Pro", + "display_name": "OpenAI o3 Pro", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 100000 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "knowledge": "2024-06", + "release_date": "2024-06-01", + "last_updated": "2024-06-01", "cost": { - "input": 0, - "output": 0 + "input": 20, + "output": 80 } }, { - "id": "workers-ai/llama-3.2-11b-vision-instruct", - "name": "Llama 3.2 11B Vision Instruct", - "display_name": "Llama 3.2 11B Vision Instruct", + "id": "qwen2.5-coder-7b-fast", + "name": "Qwen2.5 Coder 7B fast", + "display_name": "Qwen2.5 Coder 7B fast", "modalities": { "input": [ "text" @@ -32684,8 +32357,8 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 32000, + "output": 8192 }, "temperature": true, "tool_call": false, @@ -32694,17 +32367,18 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "knowledge": "2024-09", + "release_date": "2024-09-15", + "last_updated": "2024-09-15", "cost": { - "input": 49000, - "output": 680000 + "input": 0.03, + "output": 0.09 } }, { - "id": "workers-ai/bge-m3", - "name": "BGE M3", - "display_name": "BGE M3", + "id": "deepseek-reasoner", + "name": "DeepSeek Reasoner", + "display_name": "DeepSeek Reasoner", "modalities": { "input": [ "text" @@ -32715,7 +32389,7 @@ }, "limit": { "context": 128000, - "output": 16384 + "output": 64000 }, "temperature": true, "tool_call": false, @@ -32724,58 +32398,66 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "knowledge": "2025-01", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", "cost": { - "input": 12000, - "output": 0 + "input": 0.56, + "output": 1.68, + "cache_read": 0.07 } }, { - "id": "workers-ai/llama-3.1-8b-instruct-fp8", - "name": "Llama 3.1 8B Instruct FP8", - "display_name": "Llama 3.1 8B Instruct FP8", + "id": "gemini-2.5-pro", + "name": "Google Gemini 2.5 Pro", + "display_name": "Google Gemini 2.5 Pro", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 1048576, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "knowledge": "2025-06", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", "cost": { - "input": 150000, - "output": 290000 + "input": 1.25, + "output": 10, + "cache_read": 0.3125, + "cache_write": 1.25 } }, { - "id": "workers-ai/whisper", - "name": "Whisper", - "display_name": "Whisper", + "id": "gemma-3-12b-it", + "name": "Google Gemma 3 12B", + "display_name": "Google Gemma 3 12B", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 8192 }, "temperature": true, "tool_call": false, @@ -32784,20 +32466,22 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "knowledge": "2024-12", + "release_date": "2024-12-01", + "last_updated": "2024-12-01", "cost": { - "input": 0, - "output": 0 + "input": 0.049999999999999996, + "output": 0.09999999999999999 } }, { - "id": "workers-ai/smart-turn-v2", - "name": "Smart Turn V2", - "display_name": "Smart Turn V2", + "id": "mistral-nemo", + "name": "Mistral Nemo", + "display_name": "Mistral Nemo", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -32805,7 +32489,7 @@ }, "limit": { "context": 128000, - "output": 16384 + "output": 16400 }, "temperature": true, "tool_call": false, @@ -32814,47 +32498,51 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "knowledge": "2024-07", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", "cost": { - "input": 0, - "output": 0 + "input": 20, + "output": 40 } }, { - "id": "workers-ai/llama-2-7b-chat-fp16", - "name": "Llama 2 7B Chat FP16", - "display_name": "Llama 2 7B Chat FP16", + "id": "o3", + "name": "OpenAI o3", + "display_name": "OpenAI o3", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 100000 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "knowledge": "2024-06", + "release_date": "2024-06-01", + "last_updated": "2024-06-01", "cost": { - "input": 560000, - "output": 6670000 + "input": 2, + "output": 8, + "cache_read": 0.5 } }, { - "id": "workers-ai/llama-3-8b-instruct", - "name": "Llama 3 8B Instruct", - "display_name": "Llama 3 8B Instruct", + "id": "gpt-oss-20b", + "name": "OpenAI GPT-OSS 20b", + "display_name": "OpenAI GPT-OSS 20b", "modalities": { "input": [ "text" @@ -32864,27 +32552,29 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 131072 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "knowledge": "2024-06", + "release_date": "2024-06-01", + "last_updated": "2024-06-01", "cost": { - "input": 280000, - "output": 830000 + "input": 0.049999999999999996, + "output": 0.19999999999999998 } }, { - "id": "workers-ai/llama-3.1-8b-instruct", - "name": "Llama 3.1 8B Instruct", - "display_name": "Llama 3.1 8B Instruct", + "id": "gpt-oss-120b", + "name": "OpenAI GPT-OSS 120b", + "display_name": "OpenAI GPT-OSS 120b", "modalities": { "input": [ "text" @@ -32894,60 +32584,67 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 131072 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "knowledge": "2024-06", + "release_date": "2024-06-01", + "last_updated": "2024-06-01", "cost": { - "input": 280000, - "output": 830000 + "input": 0.04, + "output": 0.16 } }, { - "id": "workers-ai/bge-base-en-v1.5", - "name": "BGE Base EN V1.5", - "display_name": "BGE Base EN V1.5", + "id": "claude-3.5-haiku", + "name": "Anthropic: Claude 3.5 Haiku", + "display_name": "Anthropic: Claude 3.5 Haiku", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "knowledge": "2024-10", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { - "input": 67000, - "output": 0 + "input": 0.7999999999999999, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 } }, { - "id": "workers-ai/bart-large-cnn", - "name": "BART Large CNN", - "display_name": "BART Large CNN", + "id": "gpt-5-chat-latest", + "name": "OpenAI GPT-5 Chat Latest", + "display_name": "OpenAI GPT-5 Chat Latest", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -32957,27 +32654,30 @@ "context": 128000, "output": 16384 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-04-09", - "last_updated": "2025-04-09", + "knowledge": "2024-09", + "release_date": "2024-09-30", + "last_updated": "2024-09-30", "cost": { - "input": 0, - "output": 0 + "input": 1.25, + "output": 10, + "cache_read": 0.12500000000000003 } }, { - "id": "workers-ai/deepseek-r1-distill-qwen-32b", - "name": "DeepSeek R1 Distill Qwen 32B", - "display_name": "DeepSeek R1 Distill Qwen 32B", + "id": "gpt-4o-mini", + "name": "OpenAI GPT-4o-mini", + "display_name": "OpenAI GPT-4o-mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -32988,23 +32688,25 @@ "output": 16384 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "knowledge": "2024-07", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", "cost": { - "input": 500000, - "output": 4880000 + "input": 0.15, + "output": 0.6, + "cache_read": 0.075 } }, { - "id": "workers-ai/plamo-embedding-1b", - "name": "PLaMo Embedding 1B", - "display_name": "PLaMo Embedding 1B", + "id": "gemma2-9b-it", + "name": "Google Gemma 2", + "display_name": "Google Gemma 2", "modalities": { "input": [ "text" @@ -33014,8 +32716,8 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 8192, + "output": 8192 }, "temperature": true, "tool_call": false, @@ -33024,47 +32726,53 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-09-25", - "last_updated": "2025-09-25", + "knowledge": "2024-06", + "release_date": "2024-06-25", + "last_updated": "2024-06-25", "cost": { - "input": 0, - "output": 0 + "input": 0.01, + "output": 0.03 } }, { - "id": "workers-ai/bge-large-en-v1.5", - "name": "BGE Large EN V1.5", - "display_name": "BGE Large EN V1.5", + "id": "claude-sonnet-4", + "name": "Anthropic: Claude Sonnet 4", + "display_name": "Anthropic: Claude Sonnet 4", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 64000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "knowledge": "2025-05", + "release_date": "2025-05-14", + "last_updated": "2025-05-14", "cost": { - "input": 200000, - "output": 0 + "input": 3, + "output": 15, + "cache_read": 0.30000000000000004, + "cache_write": 3.75 } }, { - "id": "workers-ai/gemma-sea-lion-v4-27b-it", - "name": "Gemma SEA-LION V4 27B IT", - "display_name": "Gemma SEA-LION V4 27B IT", + "id": "sonar-reasoning-pro", + "name": "Perplexity Sonar Reasoning Pro", + "display_name": "Perplexity Sonar Reasoning Pro", "modalities": { "input": [ "text" @@ -33074,117 +32782,127 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 127000, + "output": 4096 }, "temperature": true, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-09-25", - "last_updated": "2025-09-25", + "knowledge": "2025-01", + "release_date": "2025-01-27", + "last_updated": "2025-01-27", "cost": { - "input": 0, - "output": 0 + "input": 2, + "output": 8 } }, { - "id": "workers-ai/m2m100-1.2b", - "name": "M2M100 1.2B", - "display_name": "M2M100 1.2B", + "id": "gpt-5", + "name": "OpenAI GPT-5", + "display_name": "OpenAI GPT-5", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 400000, + "output": 128000 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 340000, - "output": 340000 + "input": 1.25, + "output": 10, + "cache_read": 0.12500000000000003 } }, { - "id": "workers-ai/llama-3.2-3b-instruct", - "name": "Llama 3.2 3B Instruct", - "display_name": "Llama 3.2 3B Instruct", + "id": "qwen3-vl-235b-a22b-instruct", + "name": "Qwen3 VL 235B A22B Instruct", + "display_name": "Qwen3 VL 235B A22B Instruct", "modalities": { "input": [ - "text" + "text", + "image", + "video" ], "output": [ "text" ] }, "limit": { - "context": 128000, + "context": 256000, "output": 16384 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "knowledge": "2025-09", + "release_date": "2025-09-23", + "last_updated": "2025-09-23", "cost": { - "input": 51000, - "output": 340000 + "input": 0.3, + "output": 1.5 } }, { - "id": "workers-ai/qwen2.5-coder-32b-instruct", - "name": "Qwen 2.5 Coder 32B Instruct", - "display_name": "Qwen 2.5 Coder 32B Instruct", + "id": "qwen3-30b-a3b", + "name": "Qwen3 30B A3B", + "display_name": "Qwen3 30B A3B", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 41000, + "output": 41000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-04-11", - "last_updated": "2025-04-11", + "knowledge": "2025-06", + "release_date": "2025-06-01", + "last_updated": "2025-06-01", "cost": { - "input": 0, - "output": 1 + "input": 0.08, + "output": 0.29 } }, { - "id": "workers-ai/bge-reranker-base", - "name": "BGE Reranker Base", - "display_name": "BGE Reranker Base", + "id": "deepseek-v3.2", + "name": "DeepSeek V3.2", + "display_name": "DeepSeek V3.2", "modalities": { "input": [ "text" @@ -33194,57 +32912,62 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 163840, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-04-09", - "last_updated": "2025-04-09", + "knowledge": "2025-09", + "release_date": "2025-09-22", + "last_updated": "2025-09-22", "cost": { - "input": 0, - "output": 0 + "input": 0.27, + "output": 0.41 } }, { - "id": "workers-ai/mistral-small-3.1-24b-instruct", - "name": "Mistral Small 3.1 24B Instruct", - "display_name": "Mistral Small 3.1 24B Instruct", + "id": "grok-4-1-fast-non-reasoning", + "name": "xAI Grok 4.1 Fast Non-Reasoning", + "display_name": "xAI Grok 4.1 Fast Non-Reasoning", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ - "text" + "text", + "image" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 2000000, + "output": 30000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-04-11", - "last_updated": "2025-04-11", + "knowledge": "2025-11", + "release_date": "2025-11-17", + "last_updated": "2025-11-17", "cost": { - "input": 0, - "output": 0 + "input": 0.19999999999999998, + "output": 0.5, + "cache_read": 0.049999999999999996 } }, { - "id": "workers-ai/aura-2-es", - "name": "Aura 2 ES", - "display_name": "Aura 2 ES", + "id": "gpt-5-pro", + "name": "OpenAI: GPT-5 Pro", + "display_name": "OpenAI: GPT-5 Pro", "modalities": { "input": [ "text" @@ -33255,26 +32978,27 @@ }, "limit": { "context": 128000, - "output": 16384 + "output": 32768 }, - "temperature": true, + "temperature": false, "tool_call": false, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0, - "output": 0 + "input": 15, + "output": 120 } }, { - "id": "workers-ai/qwen3-30b-a3b-fp8", - "name": "Qwen3 30B A3B FP8", - "display_name": "Qwen3 30B A3B FP8", + "id": "llama-3.3-70b-versatile", + "name": "Meta Llama 3.3 70B Versatile", + "display_name": "Meta Llama 3.3 70B Versatile", "modalities": { "input": [ "text" @@ -33284,27 +33008,28 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 32678 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "knowledge": "2024-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", "cost": { - "input": 0, - "output": 0 + "input": 0.59, + "output": 0.7899999999999999 } }, { - "id": "workers-ai/aura-2-en", - "name": "Aura 2 EN", - "display_name": "Aura 2 EN", + "id": "mistral-large-2411", + "name": "Mistral-Large", + "display_name": "Mistral-Large", "modalities": { "input": [ "text" @@ -33315,56 +33040,62 @@ }, "limit": { "context": 128000, - "output": 16384 + "output": 32768 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "knowledge": "2024-07", + "release_date": "2024-07-24", + "last_updated": "2024-07-24", "cost": { - "input": 0, - "output": 0 + "input": 2, + "output": 6 } }, { - "id": "workers-ai/granite-4.0-h-micro", - "name": "Granite 4.0 H Micro", - "display_name": "Granite 4.0 H Micro", - "modalities": { - "input": [ - "text" + "id": "claude-opus-4-1-20250805", + "name": "Anthropic: Claude Opus 4.1 (20250805)", + "display_name": "Anthropic: Claude Opus 4.1 (20250805)", + "modalities": { + "input": [ + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 32000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-10-15", - "last_updated": "2025-10-15", + "knowledge": "2025-08", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0, - "output": 0 + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } }, { - "id": "workers-ai/llama-3.3-70b-instruct-fp8-fast", - "name": "Llama 3.3 70B Instruct FP8 Fast", - "display_name": "Llama 3.3 70B Instruct FP8 Fast", + "id": "ernie-4.5-21b-a3b-thinking", + "name": "Baidu Ernie 4.5 21B A3B Thinking", + "display_name": "Baidu Ernie 4.5 21B A3B Thinking", "modalities": { "input": [ "text" @@ -33375,56 +33106,62 @@ }, "limit": { "context": 128000, - "output": 16384 + "output": 8000 }, "temperature": true, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "knowledge": "2025-03", + "release_date": "2025-03-16", + "last_updated": "2025-03-16", "cost": { - "input": 290000, - "output": 2250000 + "input": 0.07, + "output": 0.28 } }, { - "id": "workers-ai/llama-3-8b-instruct-awq", - "name": "Llama 3 8B Instruct AWQ", - "display_name": "Llama 3 8B Instruct AWQ", + "id": "gpt-5.1-chat-latest", + "name": "OpenAI GPT-5.1 Chat", + "display_name": "OpenAI GPT-5.1 Chat", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ - "text" + "text", + "image" ] }, "limit": { "context": 128000, "output": 16384 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 120000, - "output": 270000 + "input": 1.25, + "output": 10, + "cache_read": 0.12500000000000003 } }, { - "id": "workers-ai/qwen3-embedding-0.6b", - "name": "Qwen3 Embedding 0.6B", - "display_name": "Qwen3 Embedding 0.6B", + "id": "qwen3-32b", + "name": "Qwen3 32B", + "display_name": "Qwen3 32B", "modalities": { "input": [ "text" @@ -33434,87 +33171,104 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 40960 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "knowledge": "2025-04", + "release_date": "2025-04-28", + "last_updated": "2025-04-28", "cost": { - "input": 0, - "output": 0 + "input": 0.29, + "output": 0.59 } }, { - "id": "workers-ai/llama-3.2-1b-instruct", - "name": "Llama 3.2 1B Instruct", - "display_name": "Llama 3.2 1B Instruct", + "id": "claude-haiku-4-5-20251001", + "name": "Anthropic: Claude 4.5 Haiku (20251001)", + "display_name": "Anthropic: Claude 4.5 Haiku (20251001)", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "knowledge": "2025-10", + "release_date": "2025-10-01", + "last_updated": "2025-10-01", "cost": { - "input": 27000, - "output": 200000 + "input": 1, + "output": 5, + "cache_read": 0.09999999999999999, + "cache_write": 1.25 } }, { - "id": "workers-ai/whisper-large-v3-turbo", - "name": "Whisper Large V3 Turbo", - "display_name": "Whisper Large V3 Turbo", + "id": "llama-4-scout", + "name": "Meta Llama 4 Scout 17B 16E", + "display_name": "Meta Llama 4 Scout 17B 16E", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0, - "output": 0 + "input": 0.08, + "output": 0.3 } - }, + } + ] + }, + "huggingface": { + "id": "huggingface", + "name": "Hugging Face", + "display_name": "Hugging Face", + "api": "https://router.huggingface.co/v1", + "doc": "https://huggingface.co/docs/inference-providers", + "models": [ { - "id": "workers-ai/llama-4-scout-17b-16e-instruct", - "name": "Llama 4 Scout 17B 16E Instruct", - "display_name": "Llama 4 Scout 17B 16E Instruct", + "id": "moonshotai/Kimi-K2-Instruct", + "name": "Kimi-K2-Instruct", + "display_name": "Kimi-K2-Instruct", "modalities": { "input": [ "text" @@ -33524,27 +33278,28 @@ ] }, "limit": { - "context": 128000, + "context": 131072, "output": 16384 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-04-16", - "last_updated": "2025-04-16", + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-07-14", + "last_updated": "2025-07-14", "cost": { - "input": 0, - "output": 0 + "input": 1, + "output": 3 } }, { - "id": "workers-ai/gemma-3-12b-it", - "name": "Gemma 3 12B IT", - "display_name": "Gemma 3 12B IT", + "id": "moonshotai/Kimi-K2-Instruct-0905", + "name": "Kimi-K2-Instruct-0905", + "display_name": "Kimi-K2-Instruct-0905", "modalities": { "input": [ "text" @@ -33554,27 +33309,28 @@ ] }, "limit": { - "context": 128000, + "context": 262144, "output": 16384 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-04-11", - "last_updated": "2025-04-11", + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-09-04", + "last_updated": "2025-09-04", "cost": { - "input": 0, - "output": 0 + "input": 1, + "output": 3 } }, { - "id": "workers-ai/llama-guard-3-8b", - "name": "Llama Guard 3 8B", - "display_name": "Llama Guard 3 8B", + "id": "MiniMaxAI/MiniMax-M2", + "name": "MiniMax-M2", + "display_name": "MiniMax-M2", "modalities": { "input": [ "text" @@ -33584,27 +33340,29 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 204800, + "output": 204800 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "open_weights": true, + "knowledge": "2025-10", + "release_date": "2025-10-27", + "last_updated": "2025-10-27", "cost": { - "input": 480000, - "output": 30000 + "input": 0.3, + "output": 1.2 } }, { - "id": "workers-ai/mistral-7b-instruct-v0.1", - "name": "Mistral 7B Instruct V0.1", - "display_name": "Mistral 7B Instruct V0.1", + "id": "Qwen/Qwen3-Embedding-8B", + "name": "Qwen 3 Embedding 4B", + "display_name": "Qwen 3 Embedding 4B", "modalities": { "input": [ "text" @@ -33614,27 +33372,28 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 32000, + "output": 4096 }, - "temperature": true, + "temperature": false, "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 110000, - "output": 190000 + "input": 0.01, + "output": 0 } }, { - "id": "workers-ai/gpt-oss-20b", - "name": "GPT-OSS 20B", - "display_name": "GPT-OSS 20B", + "id": "Qwen/Qwen3-Embedding-4B", + "name": "Qwen 3 Embedding 4B", + "display_name": "Qwen 3 Embedding 4B", "modalities": { "input": [ "text" @@ -33644,27 +33403,28 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 32000, + "output": 2048 }, - "temperature": true, + "temperature": false, "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0, + "input": 0.01, "output": 0 } }, { - "id": "workers-ai/gpt-oss-120b", - "name": "GPT-OSS 120B", - "display_name": "GPT-OSS 120B", + "id": "Qwen/Qwen3-Coder-480B-A35B-Instruct", + "name": "Qwen3-Coder-480B-A35B-Instruct", + "display_name": "Qwen3-Coder-480B-A35B-Instruct", "modalities": { "input": [ "text" @@ -33674,27 +33434,28 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 262144, + "output": 66536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", "cost": { - "input": 0, - "output": 0 + "input": 2, + "output": 2 } }, { - "id": "workers-ai/bge-small-en-v1.5", - "name": "BGE Small EN V1.5", - "display_name": "BGE Small EN V1.5", + "id": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "name": "Qwen3-235B-A22B-Thinking-2507", + "display_name": "Qwen3-235B-A22B-Thinking-2507", "modalities": { "input": [ "text" @@ -33704,27 +33465,29 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 262144, + "output": 131072 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-25", + "last_updated": "2025-07-25", "cost": { - "input": 20000, - "output": 0 + "input": 0.3, + "output": 3 } }, { - "id": "workers-ai/melotts", - "name": "MeloTTS", - "display_name": "MeloTTS", + "id": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "name": "Qwen3-Next-80B-A3B-Instruct", + "display_name": "Qwen3-Next-80B-A3B-Instruct", "modalities": { "input": [ "text" @@ -33734,27 +33497,28 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 262144, + "output": 66536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-11", + "last_updated": "2025-09-11", "cost": { - "input": 0, - "output": 0 + "input": 0.25, + "output": 1 } }, { - "id": "workers-ai/nova-3", - "name": "Nova 3", - "display_name": "Nova 3", + "id": "Qwen/Qwen3-Next-80B-A3B-Thinking", + "name": "Qwen3-Next-80B-A3B-Thinking", + "display_name": "Qwen3-Next-80B-A3B-Thinking", "modalities": { "input": [ "text" @@ -33764,27 +33528,28 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 262144, + "output": 131072 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-11", + "last_updated": "2025-09-11", "cost": { - "input": 0, - "output": 0 + "input": 0.3, + "output": 2 } }, { - "id": "workers-ai/qwq-32b", - "name": "QwQ 32B", - "display_name": "QwQ 32B", + "id": "zai-org/GLM-4.5", + "name": "GLM-4.5", + "display_name": "GLM-4.5", "modalities": { "input": [ "text" @@ -33794,27 +33559,29 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 98304 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-04-11", - "last_updated": "2025-04-11", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 0, - "output": 1 + "input": 0.6, + "output": 2.2 } }, { - "id": "workers-ai/distilbert-sst-2-int8", - "name": "DistilBERT SST-2 INT8", - "display_name": "DistilBERT SST-2 INT8", + "id": "zai-org/GLM-4.6", + "name": "GLM-4.6", + "display_name": "GLM-4.6", "modalities": { "input": [ "text" @@ -33824,27 +33591,30 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 128000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-30", + "last_updated": "2025-09-30", "cost": { - "input": 26000, - "output": 0 + "input": 0.6, + "output": 2.2, + "cache_read": 0.11 } }, { - "id": "workers-ai/llama-3.1-8b-instruct-awq", - "name": "Llama 3.1 8B Instruct AWQ", - "display_name": "Llama 3.1 8B Instruct AWQ", + "id": "zai-org/GLM-4.5-Air", + "name": "GLM-4.5-Air", + "display_name": "GLM-4.5-Air", "modalities": { "input": [ "text" @@ -33855,26 +33625,28 @@ }, "limit": { "context": 128000, - "output": 16384 + "output": 96000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 120000, - "output": 270000 + "input": 0.2, + "output": 1.1 } }, { - "id": "openai/gpt-4", - "name": "GPT-4", - "display_name": "GPT-4", + "id": "deepseek-ai/Deepseek-V3-0324", + "name": "DeepSeek-V3-0324", + "display_name": "DeepSeek-V3-0324", "modalities": { "input": [ "text" @@ -33884,27 +33656,28 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 16384, + "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-03-24", + "last_updated": "2025-03-24", "cost": { - "input": 30, - "output": 60 + "input": 1.25, + "output": 1.25 } }, { - "id": "openai/gpt-5.1-codex", - "name": "GPT-5.1 Codex", - "display_name": "GPT-5.1 Codex", + "id": "deepseek-ai/DeepSeek-R1-0528", + "name": "DeepSeek-R1-0528", + "display_name": "DeepSeek-R1-0528", "modalities": { "input": [ "text" @@ -33914,27 +33687,38 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 163840, + "output": 163840 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-05-28", + "last_updated": "2025-05-28", "cost": { - "input": 1.25, - "output": 10 + "input": 3, + "output": 5 } - }, + } + ] + }, + "opencode": { + "id": "opencode", + "name": "OpenCode Zen", + "display_name": "OpenCode Zen", + "api": "https://opencode.ai/zen/v1", + "doc": "https://opencode.ai/docs/zen", + "models": [ { - "id": "openai/gpt-3.5-turbo", - "name": "GPT-3.5 Turbo", - "display_name": "GPT-3.5 Turbo", + "id": "qwen3-coder", + "name": "Qwen3 Coder", + "display_name": "Qwen3 Coder", "modalities": { "input": [ "text" @@ -33944,57 +33728,64 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 262144, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-02-10", - "last_updated": "2025-02-10", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", "cost": { - "input": 0, - "output": 1.5 + "input": 0.45, + "output": 1.8 } }, { - "id": "openai/gpt-4-turbo", - "name": "GPT-4 Turbo", - "display_name": "GPT-4 Turbo", + "id": "claude-opus-4-1", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 32000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 10, - "output": 30 + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } }, { - "id": "openai/o1-preview", - "name": "o1 Preview", - "display_name": "o1 Preview", + "id": "kimi-k2", + "name": "Kimi K2", + "display_name": "Kimi K2", "modalities": { "input": [ "text" @@ -34004,147 +33795,177 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 262144, + "output": 262144 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2024-09-12", - "last_updated": "2024-09-12", + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", "cost": { - "input": 15, - "output": 60 + "input": 0.4, + "output": 2.5, + "cache_read": 0.4 } }, { - "id": "openai/o3-mini", - "name": "o3 mini", - "display_name": "o3 mini", + "id": "gpt-5.1-codex", + "name": "GPT-5.1 Codex", + "display_name": "GPT-5.1 Codex", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 400000, + "output": 128000 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-02-05", - "last_updated": "2025-02-05", + "knowledge": "2024-09-30", + "release_date": "2025-11-12", + "last_updated": "2025-11-12", "cost": { - "input": 1.1, - "output": 4.4 + "input": 1.07, + "output": 8.5, + "cache_read": 0.107 } }, { - "id": "openai/gpt-5.1", - "name": "GPT-5.1", - "display_name": "GPT-5.1", + "id": "claude-haiku-4-5", + "name": "Claude Haiku 4.5", + "display_name": "Claude Haiku 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 64000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "knowledge": "2025-02-28", + "release_date": "2025-10-15", + "last_updated": "2025-10-15", "cost": { - "input": 1.25, - "output": 10 + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 } }, { - "id": "openai/gpt-4o", - "name": "GPT-4o", - "display_name": "GPT-4o", + "id": "claude-opus-4-5", + "name": "Claude Opus 4.5", + "display_name": "Claude Opus 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 64000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-02-10", - "last_updated": "2025-02-10", + "knowledge": "2025-03-31", + "release_date": "2025-11-01", + "last_updated": "2025-11-01", "cost": { - "input": 2.5, - "output": 10 + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 } }, { - "id": "openai/o4-mini", - "name": "o4 mini", - "display_name": "o4 mini", + "id": "gemini-3-pro", + "name": "Gemini 3 Pro", + "display_name": "Gemini 3 Pro", "modalities": { "input": [ - "text" + "text", + "image", + "video", + "audio", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 1048576, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-04-16", - "last_updated": "2025-04-16", + "knowledge": "2025-01", + "release_date": "2025-11-18", + "last_updated": "2025-11-18", "cost": { - "input": 1.1, - "output": 4.4 + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { + "input": 4, + "output": 18, + "cache_read": 0.4 + } } }, { - "id": "openai/o1", - "name": "o1", - "display_name": "o1", + "id": "alpha-glm-4.7", + "name": "Alpha GLM-4.7", + "display_name": "Alpha GLM-4.7", "modalities": { "input": [ "text" @@ -34154,57 +33975,72 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 204800, + "output": 131072 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-01-07", - "last_updated": "2025-01-07", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-12-22", + "last_updated": "2025-12-22", "cost": { - "input": 15, - "output": 60 + "input": 0.6, + "output": 2.2, + "cache_read": 0.6 } }, { - "id": "openai/o1-mini", - "name": "o1 mini", - "display_name": "o1 mini", + "id": "claude-sonnet-4-5", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 1000000, + "output": 64000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-02-10", - "last_updated": "2025-02-10", + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "cost": { - "input": 1.1, - "output": 4.4 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } } }, { - "id": "openai/o3-pro", - "name": "O3 Pro", - "display_name": "O3 Pro", + "id": "alpha-gd4", + "name": "Alpha GD4", + "display_name": "Alpha GD4", "modalities": { "input": [ "text" @@ -34214,27 +34050,30 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 262144, + "output": 32768 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-06-11", - "last_updated": "2025-06-11", + "open_weights": true, + "knowledge": "2025-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 20, - "output": 80 + "input": 0.5, + "output": 2, + "cache_read": 0.15 } }, { - "id": "openai/o3", - "name": "O3", - "display_name": "O3", + "id": "kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ "text" @@ -34244,117 +34083,132 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 262144, + "output": 262144 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-06-10", - "last_updated": "2025-06-10", + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", "cost": { - "input": 2, - "output": 8 + "input": 0.4, + "output": 2.5, + "cache_read": 0.4 } }, { - "id": "openai/gpt-4o-mini", - "name": "GPT-4o mini", - "display_name": "GPT-4o mini", + "id": "gpt-5.1", + "name": "GPT-5.1", + "display_name": "GPT-5.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 400000, + "output": 128000 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "knowledge": "2024-09-30", + "release_date": "2025-11-12", + "last_updated": "2025-11-12", "cost": { - "input": 0, - "output": 0 + "input": 1.07, + "output": 8.5, + "cache_read": 0.107 } }, { - "id": "replicate/meta/meta-llama-3.1-405b-instruct", - "name": "Llama 3.1 405B Instruct", - "display_name": "Llama 3.1 405B Instruct", + "id": "gpt-5-nano", + "name": "GPT-5 Nano", + "display_name": "GPT-5 Nano", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 400000, + "output": 128000 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-09-25", - "last_updated": "2024-09-25", + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 9.5, - "output": 9.5 + "input": 0, + "output": 0, + "cache_read": 0 } }, { - "id": "replicate/meta/meta-llama-3-70b-instruct", - "name": "Llama 3 70B Instruct", - "display_name": "Llama 3 70B Instruct", + "id": "gpt-5-codex", + "name": "GPT-5 Codex", + "display_name": "GPT-5 Codex", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 400000, + "output": 128000 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-10-08", - "last_updated": "2024-10-08", + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 0, - "output": 2.75 + "input": 1.07, + "output": 8.5, + "cache_read": 0.107 } }, { - "id": "replicate/meta/meta-llama-3-8b-instruct", - "name": "Llama 3 8B Instruct", - "display_name": "Llama 3 8B Instruct", + "id": "big-pickle", + "name": "Big Pickle", + "display_name": "Big Pickle", "modalities": { "input": [ "text" @@ -34364,57 +34218,66 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 128000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-02-05", - "last_updated": "2025-02-05", + "knowledge": "2025-01", + "release_date": "2025-10-17", + "last_updated": "2025-10-17", "cost": { "input": 0, - "output": 0 + "output": 0, + "cache_read": 0, + "cache_write": 0 } }, { - "id": "replicate/deepseek-ai/deepseek-r1", - "name": "DeepSeek R1", - "display_name": "DeepSeek R1", + "id": "claude-3-5-haiku", + "name": "Claude Haiku 3.5", + "display_name": "Claude Haiku 3.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-03-11", - "last_updated": "2025-03-11", + "knowledge": "2024-07-31", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { - "input": 10, - "output": 10 + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 } }, { - "id": "anthropic/claude-opus-4", - "name": "Claude Opus 4", - "display_name": "Claude Opus 4", + "id": "glm-4.6", + "name": "GLM-4.6", + "display_name": "GLM-4.6", "modalities": { "input": [ "text" @@ -34424,27 +34287,30 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 204800, + "output": 131072 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-30", + "last_updated": "2025-09-30", "cost": { - "input": 15, - "output": 75 + "input": 0.6, + "output": 2.2, + "cache_read": 0.1 } }, { - "id": "anthropic/claude-haiku-4.5", - "name": "Claude Haiku 4.5", - "display_name": "Claude Haiku 4.5", + "id": "glm-4.7-free", + "name": "GLM-4.7", + "display_name": "GLM-4.7", "modalities": { "input": [ "text" @@ -34454,27 +34320,30 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 204800, + "output": 131072 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-12-22", + "last_updated": "2025-12-22", "cost": { - "input": 1, - "output": 5 + "input": 0, + "output": 0, + "cache_read": 0 } }, { - "id": "anthropic/claude-3-haiku", - "name": "Claude 3 Haiku", - "display_name": "Claude 3 Haiku", + "id": "grok-code", + "name": "Grok Code Fast 1", + "display_name": "Grok Code Fast 1", "modalities": { "input": [ "text" @@ -34484,147 +34353,220 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 256000, + "output": 256000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-07-31", - "last_updated": "2024-07-31", + "release_date": "2025-08-20", + "last_updated": "2025-08-20", "cost": { "input": 0, - "output": 1.25 + "output": 0, + "cache_read": 0, + "cache_write": 0 } }, { - "id": "anthropic/claude-3-opus", - "name": "Claude 3 Opus", - "display_name": "Claude 3 Opus", + "id": "gemini-3-flash", + "name": "Gemini 3 Flash", + "display_name": "Gemini 3 Flash", "modalities": { "input": [ - "text" + "text", + "image", + "video", + "audio", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 1048576, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-07-31", - "last_updated": "2024-07-31", + "knowledge": "2025-01", + "release_date": "2025-12-17", + "last_updated": "2025-12-17", "cost": { - "input": 15, - "output": 75 + "input": 0.5, + "output": 3, + "cache_read": 0.05 } }, { - "id": "anthropic/claude-3.5-sonnet", - "name": "Claude 3.5 Sonnet", - "display_name": "Claude 3.5 Sonnet", + "id": "gpt-5.1-codex-max", + "name": "GPT-5.1 Codex Max", + "display_name": "GPT-5.1 Codex Max", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 400000, + "output": 128000 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-07-31", - "last_updated": "2024-07-31", + "knowledge": "2024-09-30", + "release_date": "2025-11-12", + "last_updated": "2025-11-12", "cost": { - "input": 6, - "output": 30 + "input": 1.25, + "output": 10, + "cache_read": 0.125 } }, { - "id": "anthropic/claude-3-sonnet", - "name": "Claude 3 Sonnet", - "display_name": "Claude 3 Sonnet", + "id": "claude-sonnet-4", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 1000000, + "output": 64000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-07-31", - "last_updated": "2024-07-31", + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { "input": 3, - "output": 15 - } - }, - { - "id": "anthropic/claude-opus-4.1", - "name": "Claude Opus 4.1", - "display_name": "Claude Opus 4.1", + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } + } + }, + { + "id": "gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 400000, + "output": 128000 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 15, - "output": 75 + "input": 1.07, + "output": 8.5, + "cache_read": 0.107 } }, { - "id": "anthropic/claude-3.5-haiku", - "name": "Claude 3.5 Haiku", - "display_name": "Claude 3.5 Haiku", + "id": "gpt-5.2", + "name": "GPT-5.2", + "display_name": "GPT-5.2", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-08-31", + "release_date": "2025-11-12", + "last_updated": "2025-11-12", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + } + } + ] + }, + "fastrouter": { + "id": "fastrouter", + "name": "FastRouter", + "display_name": "FastRouter", + "api": "https://go.fastrouter.ai/api/v1", + "doc": "https://fastrouter.ai/models", + "models": [ + { + "id": "moonshotai/kimi-k2", + "name": "Kimi K2", + "display_name": "Kimi K2", "modalities": { "input": [ "text" @@ -34634,27 +34576,28 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 32768 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2025-01-07", - "last_updated": "2025-01-07", + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-07-11", + "last_updated": "2025-07-11", "cost": { - "input": 0, - "output": 4 + "input": 0.55, + "output": 2.2 } }, { - "id": "anthropic/claude-sonnet-4", - "name": "Claude Sonnet 4", - "display_name": "Claude Sonnet 4", + "id": "x-ai/grok-4", + "name": "Grok 4", + "display_name": "Grok 4", "modalities": { "input": [ "text" @@ -34664,95 +34607,101 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 256000, + "output": 64000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "knowledge": "2025-07", + "release_date": "2025-07-09", + "last_updated": "2025-07-09", "cost": { "input": 3, - "output": 15 + "output": 15, + "cache_read": 0.75, + "cache_write": 15 } }, { - "id": "anthropic/claude-opus-4.5", - "name": "Claude Opus 4.5", - "display_name": "Claude Opus 4.5", + "id": "google/gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "display_name": "Gemini 2.5 Flash", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 1048576, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-11-24", - "last_updated": "2025-11-24", + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", "cost": { - "input": 5, - "output": 25 + "input": 0.3, + "output": 2.5, + "cache_read": 0.0375 } }, { - "id": "anthropic/claude-sonnet-4.5", - "name": "Claude Sonnet 4.5", - "display_name": "Claude Sonnet 4.5", + "id": "google/gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 1048576, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2025-10-08", - "last_updated": "2025-10-08", + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", "cost": { - "input": 3, - "output": 15 + "input": 1.25, + "output": 10, + "cache_read": 0.31 } - } - ] - }, - "openai": { - "id": "openai", - "name": "OpenAI", - "display_name": "OpenAI", - "doc": "https://platform.openai.com/docs/models", - "models": [ + }, { - "id": "gpt-4.1-nano", - "name": "GPT-4.1 nano", - "display_name": "GPT-4.1 nano", + "id": "openai/gpt-5-nano", + "name": "GPT-5 Nano", + "display_name": "GPT-5 Nano", "modalities": { "input": [ "text", @@ -34763,156 +34712,159 @@ ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 400000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "knowledge": "2024-10-01", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 0.1, + "input": 0.05, "output": 0.4, - "cache_read": 0.03 + "cache_read": 0.005 } }, { - "id": "text-embedding-3-small", - "name": "text-embedding-3-small", - "display_name": "text-embedding-3-small", + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 8191, - "output": 1536 + "context": 1047576, + "output": 32768 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-01", - "release_date": "2024-01-25", - "last_updated": "2024-01-25", + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0.02, - "output": 0 + "input": 2, + "output": 8, + "cache_read": 0.5 } }, { - "id": "gpt-4", - "name": "GPT-4", - "display_name": "GPT-4", + "id": "openai/gpt-5-mini", + "name": "GPT-5 Mini", + "display_name": "GPT-5 Mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 400000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2023-11", - "release_date": "2023-11-06", - "last_updated": "2024-04-09", + "knowledge": "2024-10-01", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 30, - "output": 60 + "input": 0.25, + "output": 2, + "cache_read": 0.025 } }, { - "id": "o1-pro", - "name": "o1-pro", - "display_name": "o1-pro", + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "display_name": "GPT OSS 20B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 131072, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2025-03-19", - "last_updated": "2025-03-19", + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 150, - "output": 600 + "input": 0.05, + "output": 0.2 } }, { - "id": "gpt-4o-2024-05-13", - "name": "GPT-4o (2024-05-13)", - "display_name": "GPT-4o (2024-05-13)", + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-05-13", - "last_updated": "2024-05-13", + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 5, - "output": 15 + "input": 0.15, + "output": 0.6 } }, { - "id": "gpt-5.1-codex", - "name": "GPT-5.1 Codex", - "display_name": "GPT-5.1 Codex", + "id": "openai/gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", "modalities": { "input": [ "text", @@ -34926,7 +34878,7 @@ "context": 400000, "output": 128000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -34934,9 +34886,9 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-13", - "last_updated": "2025-11-13", + "knowledge": "2024-10-01", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { "input": 1.25, "output": 10, @@ -34944,79 +34896,81 @@ } }, { - "id": "gpt-4o-2024-08-06", - "name": "GPT-4o (2024-08-06)", - "display_name": "GPT-4o (2024-08-06)", + "id": "qwen/qwen3-coder", + "name": "Qwen3 Coder", + "display_name": "Qwen3 Coder", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 262144, + "output": 66536 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-08-06", - "last_updated": "2024-08-06", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 + "input": 0.3, + "output": 1.2 } }, { - "id": "gpt-4.1-mini", - "name": "GPT-4.1 mini", - "display_name": "GPT-4.1 mini", + "id": "anthropic/claude-opus-4.1", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 200000, + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0.4, - "output": 1.6, - "cache_read": 0.1 + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } }, { - "id": "o3-deep-research", - "name": "o3-deep-research", - "display_name": "o3-deep-research", + "id": "anthropic/claude-sonnet-4", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" @@ -35024,9 +34978,9 @@ }, "limit": { "context": 200000, - "output": 100000 + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -35034,19 +34988,20 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-05", - "release_date": "2024-06-26", - "last_updated": "2024-06-26", + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { - "input": 10, - "output": 40, - "cache_read": 2.5 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "gpt-3.5-turbo", - "name": "GPT-3.5-turbo", - "display_name": "GPT-3.5-turbo", + "id": "deepseek-ai/deepseek-r1-distill-llama-70b", + "name": "DeepSeek R1 Distill Llama 70B", + "display_name": "DeepSeek R1 Distill Llama 70B", "modalities": { "input": [ "text" @@ -35056,62 +35011,69 @@ ] }, "limit": { - "context": 16385, - "output": 4096 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2021-09-01", - "release_date": "2023-03-01", - "last_updated": "2023-11-06", + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-01-23", + "last_updated": "2025-01-23", "cost": { - "input": 0.5, - "output": 1.5, - "cache_read": 1.25 + "input": 0.03, + "output": 0.14 } - }, + } + ] + }, + "minimax": { + "id": "minimax", + "name": "MiniMax", + "display_name": "MiniMax", + "api": "https://api.minimax.io/anthropic/v1", + "doc": "https://platform.minimax.io/docs/guides/quickstart", + "models": [ { - "id": "gpt-5.2-pro", - "name": "GPT-5.2 Pro", - "display_name": "GPT-5.2 Pro", + "id": "MiniMax-M2", + "name": "MiniMax-M2", + "display_name": "MiniMax-M2", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, + "context": 196608, "output": 128000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-08-31", - "release_date": "2025-12-11", - "last_updated": "2025-12-11", + "attachment": false, + "open_weights": true, + "release_date": "2025-10-27", + "last_updated": "2025-10-27", "cost": { - "input": 21, - "output": 168 + "input": 0.3, + "output": 1.2 } }, { - "id": "text-embedding-3-large", - "name": "text-embedding-3-large", - "display_name": "text-embedding-3-large", + "id": "MiniMax-M2.1", + "name": "MiniMax-M2.1", + "display_name": "MiniMax-M2.1", "modalities": { "input": [ "text" @@ -35121,93 +35083,109 @@ ] }, "limit": { - "context": 8191, - "output": 3072 + "context": 204800, + "output": 131072 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-01", - "release_date": "2024-01-25", - "last_updated": "2024-01-25", + "open_weights": true, + "release_date": "2025-12-23", + "last_updated": "2025-12-23", "cost": { - "input": 0.13, - "output": 0 - } - }, + "input": 0.3, + "output": 1.2 + } + } + ] + }, + "google": { + "id": "google", + "name": "google", + "display_name": "google", + "doc": "https://ai.google.dev/gemini-api/docs/pricing", + "models": [ { - "id": "gpt-4-turbo", - "name": "GPT-4 Turbo", - "display_name": "GPT-4 Turbo", + "id": "gemini-embedding-001", + "name": "Gemini Embedding 001", + "display_name": "Gemini Embedding 001", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 2048, + "output": 3072 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2023-12", - "release_date": "2023-11-06", - "last_updated": "2024-04-09", + "knowledge": "2025-05", + "release_date": "2025-05-20", + "last_updated": "2025-05-20", "cost": { - "input": 10, - "output": 30 + "input": 0.15, + "output": 0 } }, { - "id": "o1-preview", - "name": "o1-preview", - "display_name": "o1-preview", + "id": "gemini-3-flash-preview", + "name": "Gemini 3 Flash Preview", + "display_name": "Gemini 3 Flash Preview", "modalities": { "input": [ - "text" + "text", + "image", + "video", + "audio", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 1048576, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-09-12", - "last_updated": "2024-09-12", + "knowledge": "2025-01", + "release_date": "2025-12-17", + "last_updated": "2025-12-17", "cost": { - "input": 15, - "output": 60, - "cache_read": 7.5 + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "context_over_200k": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + } } }, { - "id": "gpt-5.1-codex-mini", - "name": "GPT-5.1 Codex mini", - "display_name": "GPT-5.1 Codex mini", + "id": "gemini-2.5-flash-image", + "name": "Gemini 2.5 Flash Image", + "display_name": "Gemini 2.5 Flash Image", "modalities": { "input": [ "text", @@ -35219,77 +35197,83 @@ ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 32768, + "output": 32768 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-13", - "last_updated": "2025-11-13", + "knowledge": "2025-06", + "release_date": "2025-08-26", + "last_updated": "2025-08-26", "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.025 + "input": 0.3, + "output": 30, + "cache_read": 0.075 } }, { - "id": "o3-mini", - "name": "o3-mini", - "display_name": "o3-mini", + "id": "gemini-2.5-flash-preview-05-20", + "name": "Gemini 2.5 Flash Preview 05-20", + "display_name": "Gemini 2.5 Flash Preview 05-20", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 1048576, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-05", - "release_date": "2024-12-20", - "last_updated": "2025-01-29", + "knowledge": "2025-01", + "release_date": "2025-05-20", + "last_updated": "2025-05-20", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.55 + "input": 0.15, + "output": 0.6, + "cache_read": 0.0375 } }, { - "id": "gpt-5.2-chat-latest", - "name": "GPT-5.2 Chat", - "display_name": "GPT-5.2 Chat", + "id": "gemini-flash-lite-latest", + "name": "Gemini Flash-Lite Latest", + "display_name": "Gemini Flash-Lite Latest", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 1048576, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -35297,33 +35281,36 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-08-31", - "release_date": "2025-12-11", - "last_updated": "2025-12-11", + "knowledge": "2025-01", + "release_date": "2025-09-25", + "last_updated": "2025-09-25", "cost": { - "input": 1.75, - "output": 14, - "cache_read": 0.175 + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 } }, { - "id": "gpt-5.1", - "name": "GPT-5.1", - "display_name": "GPT-5.1", + "id": "gemini-3-pro-preview", + "name": "Gemini 3 Pro Preview", + "display_name": "Gemini 3 Pro Preview", "modalities": { "input": [ "text", - "image" + "image", + "video", + "audio", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 1000000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -35331,66 +35318,85 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-13", - "last_updated": "2025-11-13", + "knowledge": "2025-01", + "release_date": "2025-11-18", + "last_updated": "2025-11-18", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.13 + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { + "input": 4, + "output": 18, + "cache_read": 0.4 + } } }, { - "id": "codex-mini-latest", - "name": "Codex Mini", - "display_name": "Codex Mini", + "id": "gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "display_name": "Gemini 2.5 Flash", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 1048576, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, - "default": true + "default": true, + "budget": { + "default": -1, + "min": 0, + "max": 24576 + } + }, + "search": { + "supported": true, + "default": false }, "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-05-16", - "last_updated": "2025-05-16", + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05", "cost": { - "input": 1.5, - "output": 6, - "cache_read": 0.375 + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "input_audio": 1 } }, { - "id": "gpt-5-nano", - "name": "GPT-5 Nano", - "display_name": "GPT-5 Nano", + "id": "gemini-flash-latest", + "name": "Gemini Flash Latest", + "display_name": "Gemini Flash Latest", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 1048576, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -35398,86 +35404,88 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-05-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "knowledge": "2025-01", + "release_date": "2025-09-25", + "last_updated": "2025-09-25", "cost": { - "input": 0.05, - "output": 0.4, - "cache_read": 0.01 + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "input_audio": 1 } }, { - "id": "gpt-5-codex", - "name": "GPT-5-Codex", - "display_name": "GPT-5-Codex", + "id": "gemini-2.5-pro-preview-05-06", + "name": "Gemini 2.5 Pro Preview 05-06", + "display_name": "Gemini 2.5 Pro Preview 05-06", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 1048576, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-09-15", - "last_updated": "2025-09-15", + "knowledge": "2025-01", + "release_date": "2025-05-06", + "last_updated": "2025-05-06", "cost": { "input": 1.25, "output": 10, - "cache_read": 0.125 + "cache_read": 0.31 } }, { - "id": "gpt-4o", - "name": "GPT-4o", - "display_name": "GPT-4o", + "id": "gemini-2.5-flash-preview-tts", + "name": "Gemini 2.5 Flash Preview TTS", + "display_name": "Gemini 2.5 Flash Preview TTS", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text" + "audio" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 8000, + "output": 16000 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-05-13", - "last_updated": "2024-08-06", + "knowledge": "2025-01", + "release_date": "2025-05-01", + "last_updated": "2025-05-01", "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 + "input": 0.5, + "output": 10 } }, { - "id": "gpt-4.1", - "name": "GPT-4.1", - "display_name": "GPT-4.1", + "id": "gemini-2.0-flash-lite", + "name": "Gemini 2.0 Flash Lite", + "display_name": "Gemini 2.0 Flash Lite", "modalities": { "input": [ "text", @@ -35488,41 +35496,45 @@ ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 1048576, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, + "search": { + "supported": false + }, "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 0.075, + "output": 0.3 } }, { - "id": "o4-mini", - "name": "o4-mini", - "display_name": "o4-mini", + "id": "gemini-live-2.5-flash-preview-native-audio", + "name": "Gemini Live 2.5 Flash Preview Native Audio", + "display_name": "Gemini Live 2.5 Flash Preview Native Audio", "modalities": { "input": [ "text", - "image" + "audio", + "video" ], "output": [ - "text" + "text", + "audio" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 131072, + "output": 65536 }, "temperature": false, "tool_call": true, @@ -35530,21 +35542,22 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-16", - "last_updated": "2025-04-16", + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-09-18", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.28 + "input": 0.5, + "output": 2, + "input_audio": 3, + "output_audio": 12 } }, { - "id": "o1", - "name": "o1", - "display_name": "o1", + "id": "gemini-2.0-flash", + "name": "Gemini 2.0 Flash", + "display_name": "Gemini 2.0 Flash", "modalities": { "input": [ "text", @@ -35555,30 +35568,34 @@ ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 1048576, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, - "default": true + "default": false + }, + "search": { + "supported": true, + "default": false }, "attachment": true, "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-12-05", - "last_updated": "2024-12-05", + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 15, - "output": 60, - "cache_read": 7.5 + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 } }, { - "id": "gpt-5-mini", - "name": "GPT-5 Mini", - "display_name": "GPT-5 Mini", + "id": "gemini-2.5-flash-lite", + "name": "Gemini 2.5 Flash Lite", + "display_name": "Gemini 2.5 Flash Lite", "modalities": { "input": [ "text", @@ -35589,108 +35606,131 @@ ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 1048576, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, - "default": true + "default": false, + "budget": { + "default": -1, + "min": 512, + "max": 24576 + } + }, + "search": { + "supported": true, + "default": false }, "attachment": true, "open_weights": false, - "knowledge": "2024-05-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.03 + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 } }, { - "id": "o1-mini", - "name": "o1-mini", - "display_name": "o1-mini", + "id": "gemini-2.5-pro-preview-06-05", + "name": "Gemini 2.5 Pro Preview 06-05", + "display_name": "Gemini 2.5 Pro Preview 06-05", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, + "context": 1048576, "output": 65536 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-09-12", - "last_updated": "2024-09-12", + "knowledge": "2025-01", + "release_date": "2025-06-05", + "last_updated": "2025-06-05", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.55 + "input": 1.25, + "output": 10, + "cache_read": 0.31 } }, { - "id": "text-embedding-ada-002", - "name": "text-embedding-ada-002", - "display_name": "text-embedding-ada-002", + "id": "gemini-live-2.5-flash", + "name": "Gemini Live 2.5 Flash", + "display_name": "Gemini Live 2.5 Flash", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video" ], "output": [ - "text" + "text", + "audio" ] }, "limit": { - "context": 8192, - "output": 1536 + "context": 128000, + "output": 8000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2022-12", - "release_date": "2022-12-15", - "last_updated": "2022-12-15", + "knowledge": "2025-01", + "release_date": "2025-09-01", + "last_updated": "2025-09-01", "cost": { - "input": 0.1, - "output": 0 + "input": 0.5, + "output": 2, + "input_audio": 3, + "output_audio": 12 } }, { - "id": "o3-pro", - "name": "o3-pro", - "display_name": "o3-pro", + "id": "gemini-2.5-flash-lite-preview-06-17", + "name": "Gemini 2.5 Flash Lite Preview 06-17", + "display_name": "Gemini 2.5 Flash Lite Preview 06-17", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 1048576, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -35698,51 +35738,54 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-06-10", - "last_updated": "2025-06-10", + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", "cost": { - "input": 20, - "output": 80 + "input": 0.1, + "output": 0.4, + "cache_read": 0.025, + "input_audio": 0.3 } }, { - "id": "gpt-4o-2024-11-20", - "name": "GPT-4o (2024-11-20)", - "display_name": "GPT-4o (2024-11-20)", + "id": "gemini-2.5-flash-image-preview", + "name": "Gemini 2.5 Flash Image Preview", + "display_name": "Gemini 2.5 Flash Image Preview", "modalities": { "input": [ "text", "image" ], "output": [ - "text" + "text", + "image" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 32768, + "output": 32768 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-11-20", - "last_updated": "2024-11-20", + "knowledge": "2025-06", + "release_date": "2025-08-26", + "last_updated": "2025-08-26", "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 + "input": 0.3, + "output": 30, + "cache_read": 0.075 } }, { - "id": "gpt-5.1-codex-max", - "name": "GPT-5.1 Codex Max", - "display_name": "GPT-5.1 Codex Max", + "id": "gemini-2.5-flash-preview-09-2025", + "name": "Gemini 2.5 Flash Preview 09 2025", + "display_name": "Gemini 2.5 Flash Preview 09 2025", "modalities": { "input": [ "text", @@ -35753,44 +35796,57 @@ ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 1048576, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, - "default": true + "default": true, + "budget": { + "default": -1, + "min": 0, + "max": 24576 + } + }, + "search": { + "supported": true, + "default": false }, "attachment": true, "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-13", - "last_updated": "2025-11-13", + "knowledge": "2025-01", + "release_date": "2025-09-25", + "last_updated": "2025-09-25", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "input_audio": 1 } }, { - "id": "o3", - "name": "o3", - "display_name": "o3", + "id": "gemini-2.5-flash-preview-04-17", + "name": "Gemini 2.5 Flash Preview 04-17", + "display_name": "Gemini 2.5 Flash Preview 04-17", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 1048576, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -35798,53 +35854,50 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-16", - "last_updated": "2025-04-16", + "knowledge": "2025-01", + "release_date": "2025-04-17", + "last_updated": "2025-04-17", "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 0.15, + "output": 0.6, + "cache_read": 0.0375 } }, { - "id": "o4-mini-deep-research", - "name": "o4-mini-deep-research", - "display_name": "o4-mini-deep-research", + "id": "gemini-2.5-pro-preview-tts", + "name": "Gemini 2.5 Pro Preview TTS", + "display_name": "Gemini 2.5 Pro Preview TTS", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text" + "audio" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 8000, + "output": 16000 }, "temperature": false, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-05", - "release_date": "2024-06-26", - "last_updated": "2024-06-26", + "knowledge": "2025-01", + "release_date": "2025-05-01", + "last_updated": "2025-05-01", "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 1, + "output": 20 } }, { - "id": "gpt-5-chat-latest", - "name": "GPT-5 Chat (latest)", - "display_name": "GPT-5 Chat (latest)", + "id": "gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", "modalities": { "input": [ "text", @@ -35855,41 +35908,53 @@ ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 1048576, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, - "default": true + "default": true, + "budget": { + "default": -1, + "min": 128, + "max": 32768 + } + }, + "search": { + "supported": true, + "default": false }, "attachment": true, "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05", "cost": { "input": 1.25, - "output": 10 + "output": 10, + "cache_read": 0.31 } }, { - "id": "gpt-4o-mini", - "name": "GPT-4o mini", - "display_name": "GPT-4o mini", + "id": "gemini-1.5-flash", + "name": "Gemini 1.5 Flash", + "display_name": "Gemini 1.5 Flash", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 1000000, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -35898,53 +35963,54 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-07-18", - "last_updated": "2024-07-18", + "knowledge": "2024-04", + "release_date": "2024-05-14", + "last_updated": "2024-05-14", "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.08 + "input": 0.075, + "output": 0.3, + "cache_read": 0.01875 } }, { - "id": "gpt-5", - "name": "GPT-5", - "display_name": "GPT-5", + "id": "gemini-1.5-flash-8b", + "name": "Gemini 1.5 Flash-8B", + "display_name": "Gemini 1.5 Flash-8B", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 1000000, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "knowledge": "2024-04", + "release_date": "2024-10-03", + "last_updated": "2024-10-03", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.13 + "input": 0.0375, + "output": 0.15, + "cache_read": 0.01 } }, { - "id": "gpt-5-pro", - "name": "GPT-5 Pro", - "display_name": "GPT-5 Pro", + "id": "gemini-2.5-flash-lite-preview-09-2025", + "name": "Gemini 2.5 Flash Lite Preview 09 2025", + "display_name": "Gemini 2.5 Flash Lite Preview 09 2025", "modalities": { "input": [ "text", @@ -35955,153 +36021,156 @@ ] }, "limit": { - "context": 400000, - "output": 272000 + "context": 1048576, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, - "default": true + "default": false, + "budget": { + "default": -1, + "min": 512, + "max": 24576 + } + }, + "search": { + "supported": true, + "default": false }, "attachment": true, "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-10-06", - "last_updated": "2025-10-06", + "knowledge": "2025-01", + "release_date": "2025-09-25", + "last_updated": "2025-09-25", "cost": { - "input": 15, - "output": 120 + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 } }, { - "id": "gpt-5.2", - "name": "GPT-5.2", - "display_name": "GPT-5.2", + "id": "gemini-1.5-pro", + "name": "Gemini 1.5 Pro", + "display_name": "Gemini 1.5 Pro", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 1000000, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-08-31", - "release_date": "2025-12-11", - "last_updated": "2025-12-11", + "knowledge": "2024-04", + "release_date": "2024-02-15", + "last_updated": "2024-02-15", "cost": { - "input": 1.75, - "output": 14, - "cache_read": 0.175 + "input": 1.25, + "output": 5, + "cache_read": 0.3125 } }, { - "id": "gpt-5.1-chat-latest", - "name": "GPT-5.1 Chat", - "display_name": "GPT-5.1 Chat", + "id": "gemini-2.0-flash-preview-image-generation", + "name": "Gemini 2.0 Flash Preview Image Generation", + "display_name": "Gemini 2.0 Flash Preview Image Generation", "modalities": { "input": [ "text", "image" ], "output": [ - "text" + "text", + "image" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 32000, + "output": 8192 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-13", - "last_updated": "2025-11-13", - "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 - } + "search": { + "supported": false + }, + "attachment": true } ] }, - "zhipuai-coding-plan": { - "id": "zhipuai-coding-plan", - "name": "Zhipu AI Coding Plan", - "display_name": "Zhipu AI Coding Plan", - "api": "https://open.bigmodel.cn/api/coding/paas/v4", - "doc": "https://docs.bigmodel.cn/cn/coding-plan/overview", + "google-vertex": { + "id": "google-vertex", + "name": "Vertex", + "display_name": "Vertex", + "doc": "https://cloud.google.com/vertex-ai/generative-ai/docs/models", "models": [ { - "id": "glm-4.6v-flash", - "name": "GLM-4.6V-Flash", - "display_name": "GLM-4.6V-Flash", + "id": "gemini-embedding-001", + "name": "Gemini Embedding 001", + "display_name": "Gemini Embedding 001", "modalities": { "input": [ - "text", - "image", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 2048, + "output": 3072 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-12-08", - "last_updated": "2025-12-08", + "attachment": false, + "open_weights": false, + "knowledge": "2025-05", + "release_date": "2025-05-20", + "last_updated": "2025-05-20", "cost": { - "input": 0, + "input": 0.15, "output": 0 } }, { - "id": "glm-4.6v", - "name": "GLM-4.6V", - "display_name": "GLM-4.6V", + "id": "gemini-3-flash-preview", + "name": "Gemini 3 Flash Preview", + "display_name": "Gemini 3 Flash Preview", "modalities": { "input": [ "text", "image", - "video" + "video", + "audio", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -36110,30 +36179,40 @@ "default": true }, "attachment": true, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-12-08", - "last_updated": "2025-12-08", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-12-17", + "last_updated": "2025-12-17", "cost": { - "input": 0, - "output": 0 + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "context_over_200k": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + } } }, { - "id": "glm-4.6", - "name": "GLM-4.6", - "display_name": "GLM-4.6", + "id": "gemini-2.5-flash-preview-05-20", + "name": "Gemini 2.5 Flash Preview 05-20", + "display_name": "Gemini 2.5 Flash Preview 05-20", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 204800, - "output": 131072 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -36141,35 +36220,36 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-09-30", - "last_updated": "2025-09-30", + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-05-20", + "last_updated": "2025-05-20", "cost": { - "input": 0, - "output": 0, - "cache_read": 0, - "cache_write": 0 + "input": 0.15, + "output": 0.6, + "cache_read": 0.0375 } }, { - "id": "glm-4.5v", - "name": "GLM-4.5V", - "display_name": "GLM-4.5V", + "id": "gemini-flash-lite-latest", + "name": "Gemini Flash-Lite Latest", + "display_name": "Gemini Flash-Lite Latest", "modalities": { "input": [ "text", "image", - "video" + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 64000, - "output": 16384 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -36178,30 +36258,35 @@ "default": true }, "attachment": true, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-08-11", - "last_updated": "2025-08-11", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-09-25", + "last_updated": "2025-09-25", "cost": { - "input": 0, - "output": 0 + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 } }, { - "id": "glm-4.5-air", - "name": "GLM-4.5-Air", - "display_name": "GLM-4.5-Air", + "id": "gemini-3-pro-preview", + "name": "Gemini 3 Pro Preview", + "display_name": "Gemini 3 Pro Preview", "modalities": { "input": [ - "text" + "text", + "image", + "video", + "audio", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 98304 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -36209,33 +36294,41 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-11-18", + "last_updated": "2025-11-18", "cost": { - "input": 0, - "output": 0, - "cache_read": 0, - "cache_write": 0 + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { + "input": 4, + "output": 18, + "cache_read": 0.4 + } } }, { - "id": "glm-4.5", - "name": "GLM-4.5", - "display_name": "GLM-4.5", + "id": "gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "display_name": "Gemini 2.5 Flash", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 98304 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -36243,33 +36336,37 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", "cost": { - "input": 0, - "output": 0, - "cache_read": 0, - "cache_write": 0 + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.383 } }, { - "id": "glm-4.5-flash", - "name": "GLM-4.5-Flash", - "display_name": "GLM-4.5-Flash", + "id": "gemini-flash-latest", + "name": "Gemini Flash Latest", + "display_name": "Gemini Flash Latest", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 98304 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -36277,178 +36374,182 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-09-25", + "last_updated": "2025-09-25", "cost": { - "input": 0, - "output": 0, - "cache_read": 0, - "cache_write": 0 + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.383 } - } - ] - }, - "perplexity": { - "id": "perplexity", - "name": "Perplexity", - "display_name": "Perplexity", - "doc": "https://docs.perplexity.ai", - "models": [ + }, { - "id": "sonar-reasoning", - "name": "Sonar Reasoning", - "display_name": "Sonar Reasoning", + "id": "gemini-2.5-pro-preview-05-06", + "name": "Gemini 2.5 Pro Preview 05-06", + "display_name": "Gemini 2.5 Pro Preview 05-06", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 1048576, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-09-01", - "release_date": "2024-01-01", - "last_updated": "2025-09-01", + "knowledge": "2025-01", + "release_date": "2025-05-06", + "last_updated": "2025-05-06", "cost": { - "input": 1, - "output": 5 + "input": 1.25, + "output": 10, + "cache_read": 0.31 } }, { - "id": "sonar", - "name": "Sonar", - "display_name": "Sonar", + "id": "gemini-2.0-flash-lite", + "name": "Gemini 2.0 Flash Lite", + "display_name": "Gemini 2.0 Flash Lite", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 1048576, + "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-09-01", - "release_date": "2024-01-01", - "last_updated": "2025-09-01", + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 1, - "output": 1 + "input": 0.075, + "output": 0.3 } }, { - "id": "sonar-pro", - "name": "Sonar Pro", - "display_name": "Sonar Pro", + "id": "gemini-2.0-flash", + "name": "Gemini 2.0 Flash", + "display_name": "Gemini 2.0 Flash", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 200000, + "context": 1048576, "output": 8192 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-09-01", - "release_date": "2024-01-01", - "last_updated": "2025-09-01", + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 3, - "output": 15 + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 } }, { - "id": "sonar-reasoning-pro", - "name": "Sonar Reasoning Pro", - "display_name": "Sonar Reasoning Pro", + "id": "gemini-2.5-flash-lite", + "name": "Gemini 2.5 Flash Lite", + "display_name": "Gemini 2.5 Flash Lite", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 1048576, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2025-09-01", - "release_date": "2024-01-01", - "last_updated": "2025-09-01", + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", "cost": { - "input": 2, - "output": 8 + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 } - } - ] - }, - "zenmux": { - "id": "zenmux", - "name": "zenmux", - "display_name": "zenmux", - "api": "https://zenmux.ai/api/v1", - "doc": "https://docs.zenmux.ai", - "models": [ + }, { - "id": "moonshotai/kimi-k2-thinking-turbo", - "name": "Kimi K2 Thinking Turbo", - "display_name": "Kimi K2 Thinking Turbo", + "id": "gemini-2.5-pro-preview-06-05", + "name": "Gemini 2.5 Pro Preview 06-05", + "display_name": "Gemini 2.5 Pro Preview 06-05", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -36456,64 +36557,73 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-11", - "release_date": "2025-11-06", - "last_updated": "2025-11-06", + "knowledge": "2025-01", + "release_date": "2025-06-05", + "last_updated": "2025-06-05", "cost": { - "input": 1.15, - "output": 8 + "input": 1.25, + "output": 10, + "cache_read": 0.31 } }, { - "id": "moonshotai/kimi-k2-0905", - "name": "MoonshotAI: Kimi K2 0905", - "display_name": "MoonshotAI: Kimi K2 0905", + "id": "gemini-2.5-flash-lite-preview-06-17", + "name": "Gemini 2.5 Flash Lite Preview 06-17", + "display_name": "Gemini 2.5 Flash Lite Preview 06-17", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 65536, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-10", - "release_date": "2025-09-04", - "last_updated": "2025-09-04", + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", "cost": { - "input": 0.6, - "output": 2.5, - "cache_read": 0.15 - }, - "type": "chat" + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + } }, { - "id": "moonshotai/kimi-k2-thinking", - "name": "Kimi K2 Thinking", - "display_name": "Kimi K2 Thinking", + "id": "gemini-2.5-flash-preview-09-2025", + "name": "Gemini 2.5 Flash Preview 09-25", + "display_name": "Gemini 2.5 Flash Preview 09-25", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -36521,31 +36631,37 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-11", - "release_date": "2025-11-06", - "last_updated": "2025-11-06", + "knowledge": "2025-01", + "release_date": "2025-09-25", + "last_updated": "2025-09-25", "cost": { - "input": 0.6, - "output": 2.5 + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.383 } }, { - "id": "xiaomi/mimo-v2-flash", - "name": "MiMo-V2-Flash", - "display_name": "MiMo-V2-Flash", + "id": "gemini-2.5-flash-preview-04-17", + "name": "Gemini 2.5 Flash Preview 04-17", + "display_name": "Gemini 2.5 Flash Preview 04-17", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 32000 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -36553,64 +36669,73 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-12-01", - "release_date": "2025-12-17", - "last_updated": "2025-12-17", + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-04-17", + "last_updated": "2025-04-17", "cost": { - "input": 0.07, - "output": 0.21 + "input": 0.15, + "output": 0.6, + "cache_read": 0.0375 } }, { - "id": "x-ai/grok-4-fast-non-reasoning", - "name": "Grok 4 Fast (Non-Reasoning)", - "display_name": "Grok 4 Fast (Non-Reasoning)", + "id": "gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 2000000, - "output": 30000 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-09-19", - "last_updated": "2025-09-19", + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05", "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05 + "input": 1.25, + "output": 10, + "cache_read": 0.31 } }, { - "id": "x-ai/grok-4", - "name": "Grok 4", - "display_name": "Grok 4", + "id": "gemini-2.5-flash-lite-preview-09-2025", + "name": "Gemini 2.5 Flash Lite Preview 09-25", + "display_name": "Gemini 2.5 Flash Lite Preview 09-25", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 64000 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -36618,22 +36743,21 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-07-09", - "last_updated": "2025-07-09", + "knowledge": "2025-01", + "release_date": "2025-09-25", + "last_updated": "2025-09-25", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.75, - "reasoning": 15 + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 } }, { - "id": "x-ai/grok-code-fast-1", - "name": "Grok Code Fast 1", - "display_name": "Grok Code Fast 1", + "id": "openai/gpt-oss-120b-maas", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", "modalities": { "input": [ "text" @@ -36643,8 +36767,8 @@ ] }, "limit": { - "context": 256000, - "output": 10000 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -36653,32 +36777,29 @@ "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2023-10", - "release_date": "2025-08-28", - "last_updated": "2025-08-28", + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0.2, - "output": 1.5, - "cache_read": 0.02 + "input": 0.09, + "output": 0.36 } }, { - "id": "x-ai/grok-4-fast", - "name": "Grok 4 Fast", - "display_name": "Grok 4 Fast", + "id": "openai/gpt-oss-20b-maas", + "name": "GPT OSS 20B", + "display_name": "GPT OSS 20B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 2000000, - "output": 30000 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -36686,21 +36807,27 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-09-19", - "last_updated": "2025-09-19", + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05 + "input": 0.07, + "output": 0.25 } - }, + } + ] + }, + "cloudflare-workers-ai": { + "id": "cloudflare-workers-ai", + "name": "Cloudflare Workers AI", + "display_name": "Cloudflare Workers AI", + "doc": "https://developers.cloudflare.com/workers-ai/models/", + "models": [ { - "id": "deepseek/deepseek-chat", - "name": "DeepSeek: DeepSeek V3", - "display_name": "DeepSeek: DeepSeek V3", + "id": "mistral-7b-instruct-v0.1-awq", + "name": "@hf/thebloke/mistral-7b-instruct-v0.1-awq", + "display_name": "@hf/thebloke/mistral-7b-instruct-v0.1-awq", "modalities": { "input": [ "text" @@ -36710,8 +36837,8 @@ ] }, "limit": { - "context": 163840, - "output": 163840 + "context": 4096, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -36720,158 +36847,137 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2025-07", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "release_date": "2023-09-27", + "last_updated": "2023-11-09", "cost": { - "input": 0.56, - "output": 1.68, - "cache_read": 0.07 - }, - "type": "chat" + "input": 0, + "output": 0 + } }, { - "id": "minimax/minimax-m2", - "name": "MiniMax M2", - "display_name": "MiniMax M2", + "id": "aura-1", + "name": "@cf/deepgram/aura-1", + "display_name": "@cf/deepgram/aura-1", "modalities": { "input": [ "text" ], "output": [ - "text" + "audio" ] }, "limit": { - "context": 204800, - "output": 128000 + "context": 0, + "output": 0 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-10", - "release_date": "2025-10-27", - "last_updated": "2025-10-27", + "open_weights": true, + "release_date": "2025-08-27", + "last_updated": "2025-07-07", "cost": { - "input": 0.3, - "output": 1.2 + "input": 0.015, + "output": 0.015 } }, { - "id": "google/gemini-2.5-pro", - "name": "Google: Gemini 2.5 Pro", - "display_name": "Google: Gemini 2.5 Pro", + "id": "mistral-7b-instruct-v0.2", + "name": "@hf/mistral/mistral-7b-instruct-v0.2", + "display_name": "@hf/mistral/mistral-7b-instruct-v0.2", "modalities": { "input": [ - "image", - "text", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 3072, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-03-20", - "last_updated": "2025-06-05", + "attachment": false, + "open_weights": true, + "release_date": "2023-12-11", + "last_updated": "2025-07-24", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31, - "cache_write": 4.5 - }, - "type": "imageGeneration" + "input": 0, + "output": 0 + } }, { - "id": "openai/gpt-5-codex", - "name": "GPT-5 Codex", - "display_name": "GPT-5 Codex", + "id": "tinyllama-1.1b-chat-v1.0", + "name": "@cf/tinyllama/tinyllama-1.1b-chat-v1.0", + "display_name": "@cf/tinyllama/tinyllama-1.1b-chat-v1.0", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 2048, + "output": 2048 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-10-01", - "release_date": "2025-09-23", - "last_updated": "2025-09-23", + "attachment": false, + "open_weights": true, + "release_date": "2023-12-30", + "last_updated": "2024-03-17", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 0, + "output": 0 } }, { - "id": "openai/gpt-5", - "name": "gpt-5", - "display_name": "gpt-5", + "id": "qwen1.5-0.5b-chat", + "name": "@cf/qwen/qwen1.5-0.5b-chat", + "display_name": "@cf/qwen/qwen1.5-0.5b-chat", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 272000, - "output": 128000 + "context": 32000, + "output": 32000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "attachment": false, + "open_weights": true, + "release_date": "2024-01-31", + "last_updated": "2024-04-30", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.13 - }, - "type": "chat" + "input": 0, + "output": 0 + } }, { - "id": "inclusionai/ring-1t", - "name": "inclusionAI: Ring 1T", - "display_name": "inclusionAI: Ring 1T", + "id": "llama-3.2-11b-vision-instruct", + "name": "@cf/meta/llama-3.2-11b-vision-instruct", + "display_name": "@cf/meta/llama-3.2-11b-vision-instruct", "modalities": { "input": [ "text" @@ -36881,31 +36987,27 @@ ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2025-10", - "release_date": "2025-10-12", - "last_updated": "2025-10-12", + "release_date": "2024-09-18", + "last_updated": "2024-12-04", "cost": { - "input": 0.56, - "output": 2.24, - "cache_read": 0.112 - }, - "type": "chat" + "input": 0.049, + "output": 0.68 + } }, { - "id": "inclusionai/lint-1t", - "name": "Ling-1T", - "display_name": "Ling-1T", + "id": "llama-2-13b-chat-awq", + "name": "@hf/thebloke/llama-2-13b-chat-awq", + "display_name": "@hf/thebloke/llama-2-13b-chat-awq", "modalities": { "input": [ "text" @@ -36915,30 +37017,27 @@ ] }, "limit": { - "context": 128000, - "output": 32000 + "context": 4096, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2025-10", - "release_date": "2025-10-09", - "last_updated": "2025-10-09", + "release_date": "2023-09-19", + "last_updated": "2023-11-09", "cost": { - "input": 0.56, - "output": 2.24, - "cache_read": 0.112 + "input": 0, + "output": 0 } }, { - "id": "z-ai/glm-4.5-air", - "name": "GLM-4.5-Air", - "display_name": "GLM-4.5-Air", + "id": "llama-3.1-8b-instruct-fp8", + "name": "@cf/meta/llama-3.1-8b-instruct-fp8", + "display_name": "@cf/meta/llama-3.1-8b-instruct-fp8", "modalities": { "input": [ "text" @@ -36948,98 +37047,87 @@ ] }, "limit": { - "context": 131072, - "output": 98304 + "context": 32000, + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "release_date": "2024-07-25", + "last_updated": "2024-07-25", "cost": { - "input": 0.2, - "output": 1.1, - "cache_read": 0.03, - "cache_write": 0 + "input": 0.15, + "output": 0.29 } }, { - "id": "z-ai/glm-4.6", - "name": "GLM-4.6", - "display_name": "GLM-4.6", + "id": "whisper", + "name": "@cf/openai/whisper", + "display_name": "@cf/openai/whisper", "modalities": { "input": [ - "text" + "audio" ], "output": [ "text" ] }, "limit": { - "context": 204800, - "output": 131072 + "context": 0, + "output": 0 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-09-30", - "last_updated": "2025-09-30", + "release_date": "2023-11-07", + "last_updated": "2024-08-12", "cost": { - "input": 0.6, - "output": 2.2, - "cache_read": 0.11, - "cache_write": 0 + "input": 0.00045, + "output": 0.00045 } }, { - "id": "qwen/qwen3-coder-plus", - "name": "Qwen: Qwen3 Coder 480B A35B Instruct", - "display_name": "Qwen: Qwen3 Coder 480B A35B Instruct", + "id": "stable-diffusion-xl-base-1.0", + "name": "@cf/stabilityai/stable-diffusion-xl-base-1.0", + "display_name": "@cf/stabilityai/stable-diffusion-xl-base-1.0", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 0, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": false, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-23", - "last_updated": "2025-07-23", + "release_date": "2023-07-25", + "last_updated": "2023-10-30", "cost": { - "input": 1, - "output": 5, - "cache_read": 0.1, - "cache_write": 1.25 + "input": 0, + "output": 0 } }, { - "id": "kuaishou/kat-coder-pro-v1", - "name": "KAT-Coder-Pro-V1", - "display_name": "KAT-Coder-Pro-V1", + "id": "llama-2-7b-chat-fp16", + "name": "@cf/meta/llama-2-7b-chat-fp16", + "display_name": "@cf/meta/llama-2-7b-chat-fp16", "modalities": { "input": [ "text" @@ -37049,181 +37137,157 @@ ] }, "limit": { - "context": 256000, - "output": 32000 + "context": 4096, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2025-01-01", - "release_date": "2025-10-23", - "last_updated": "2025-10-23", + "open_weights": true, + "release_date": "2023-07-26", + "last_updated": "2023-07-26", "cost": { - "input": 0.6, - "output": 2.4, - "cache_read": 0.12 + "input": 0.56, + "output": 6.67 } }, { - "id": "anthropic/claude-haiku-4.5", - "name": "Claude Haiku 4.5", - "display_name": "Claude Haiku 4.5", + "id": "resnet-50", + "name": "@cf/microsoft/resnet-50", + "display_name": "@cf/microsoft/resnet-50", "modalities": { "input": [ - "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 0, + "output": 0 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-02-28", - "release_date": "2025-10-15", - "last_updated": "2025-10-15", + "attachment": false, + "open_weights": true, + "release_date": "2022-03-16", + "last_updated": "2024-02-13", "cost": { - "input": 1, - "output": 5, - "cache_read": 0.1, - "cache_write": 1.25 + "input": 0.0000025, + "output": 0 } }, { - "id": "anthropic/claude-opus-4.1", - "name": "Claude Opus 4.1", - "display_name": "Claude Opus 4.1", + "id": "stable-diffusion-v1-5-inpainting", + "name": "@cf/runwayml/stable-diffusion-v1-5-inpainting", + "display_name": "@cf/runwayml/stable-diffusion-v1-5-inpainting", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 0, + "output": 0 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "attachment": false, + "open_weights": true, + "release_date": "2024-02-27", + "last_updated": "2024-02-27", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0, + "output": 0 } }, { - "id": "anthropic/claude-sonnet-4.5", - "name": "Claude Sonnet 4.5", - "display_name": "Claude Sonnet 4.5", + "id": "sqlcoder-7b-2", + "name": "@cf/defog/sqlcoder-7b-2", + "display_name": "@cf/defog/sqlcoder-7b-2", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 10000, + "output": 10000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-07-31", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "attachment": false, + "open_weights": true, + "release_date": "2024-02-05", + "last_updated": "2024-02-12", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0, + "output": 0 } }, { - "id": "anthropic/claude-3.5-haiku", - "name": "Claude Haiku 3.5", - "display_name": "Claude Haiku 3.5", + "id": "llama-3-8b-instruct", + "name": "@cf/meta/llama-3-8b-instruct", + "display_name": "@cf/meta/llama-3-8b-instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 7968, + "output": 7968 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-07-31", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "attachment": false, + "open_weights": true, + "release_date": "2024-04-17", + "last_updated": "2025-06-19", "cost": { - "input": 0.8, - "output": 4, - "cache_read": 0.08, - "cache_write": 1 + "input": 0.28, + "output": 0.83 } }, { - "id": "anthropic/claude-3.5-sonnet", - "name": "Claude Sonnet 3.5 v2", - "display_name": "Claude Sonnet 3.5 v2", + "id": "llama-2-7b-chat-hf-lora", + "name": "@cf/meta-llama/llama-2-7b-chat-hf-lora", + "display_name": "@cf/meta-llama/llama-2-7b-chat-hf-lora", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, + "context": 8192, "output": 8192 }, "temperature": true, @@ -37231,150 +37295,139 @@ "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04-30", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "attachment": false, + "open_weights": true, + "release_date": "2023-07-13", + "last_updated": "2024-04-17", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0, + "output": 0 } }, { - "id": "anthropic/claude-3.7-sonnet", - "name": "Claude Sonnet 3.7", - "display_name": "Claude Sonnet 3.7", + "id": "llama-3.1-8b-instruct", + "name": "@cf/meta/llama-3.1-8b-instruct", + "display_name": "@cf/meta/llama-3.1-8b-instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 7968, + "output": 7968 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-10-31", - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "attachment": false, + "open_weights": true, + "release_date": "2024-07-18", + "last_updated": "2024-09-25", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.28, + "output": 0.83 } }, { - "id": "anthropic/claude-opus-4", - "name": "Claude Opus 4", - "display_name": "Claude Opus 4", + "id": "openchat-3.5-0106", + "name": "@cf/openchat/openchat-3.5-0106", + "display_name": "@cf/openchat/openchat-3.5-0106", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 8192, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "attachment": false, + "open_weights": true, + "release_date": "2024-01-07", + "last_updated": "2024-05-18", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0, + "output": 0 } }, { - "id": "anthropic/claude-sonnet-4", - "name": "Claude Sonnet 4", - "display_name": "Claude Sonnet 4", + "id": "openhermes-2.5-mistral-7b-awq", + "name": "@hf/thebloke/openhermes-2.5-mistral-7b-awq", + "display_name": "@hf/thebloke/openhermes-2.5-mistral-7b-awq", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 4096, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "attachment": false, + "open_weights": true, + "release_date": "2023-11-02", + "last_updated": "2023-11-09", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 - } + "input": 0, + "output": 0 + } }, { - "id": "deepseek/deepseek-chat-v3.1", - "name": "DeepSeek: DeepSeek V3.1", - "display_name": "DeepSeek: DeepSeek V3.1", + "id": "lucid-origin", + "name": "@cf/leonardo/lucid-origin", + "display_name": "@cf/leonardo/lucid-origin", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 0, + "output": 0 }, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2025-08-25", + "last_updated": "2025-08-05", + "cost": { + "input": 0.007, + "output": 0.007 + } }, { - "id": "deepseek/deepseek-r1-0528", - "name": "DeepSeek: R1 0528", - "display_name": "DeepSeek: R1 0528", + "id": "bart-large-cnn", + "name": "@cf/facebook/bart-large-cnn", + "display_name": "@cf/facebook/bart-large-cnn", "modalities": { "input": [ "text" @@ -37384,122 +37437,118 @@ ] }, "limit": { - "context": 163840, - "output": 163840 - }, - "tool_call": true, - "reasoning": { - "supported": true, - "default": true - }, - "type": "chat" - }, - { - "id": "google/gemini-2.0-flash", - "name": "Google: Gemini 2.0 Flash", - "display_name": "Google: Gemini 2.0 Flash", - "modalities": { - "input": [ - "text", - "image", - "audio" - ], - "output": [ - "text" - ] - }, - "limit": { - "context": 1048576, - "output": 8192 + "context": 0, + "output": 0 }, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, - "type": "imageGeneration" + "attachment": false, + "open_weights": true, + "release_date": "2022-03-02", + "last_updated": "2024-02-13", + "cost": { + "input": 0, + "output": 0 + } }, { - "id": "google/gemini-2.0-flash-lite-001", - "name": "Google: Gemini 2.0 Flash Lite", - "display_name": "Google: Gemini 2.0 Flash Lite", + "id": "flux-1-schnell", + "name": "@cf/black-forest-labs/flux-1-schnell", + "display_name": "@cf/black-forest-labs/flux-1-schnell", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 1048576, - "output": 8192 + "context": 2048, + "output": 0 }, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, - "type": "imageGeneration" + "attachment": false, + "open_weights": true, + "release_date": "2024-07-31", + "last_updated": "2024-08-16", + "cost": { + "input": 0.000053, + "output": 0.00011 + } }, { - "id": "google/gemini-2.5-flash", - "name": "Google: Gemini 2.5 Flash", - "display_name": "Google: Gemini 2.5 Flash", + "id": "deepseek-r1-distill-qwen-32b", + "name": "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", + "display_name": "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", "modalities": { "input": [ - "image", - "text", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65535 + "context": 80000, + "output": 80000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "type": "imageGeneration" + "attachment": false, + "open_weights": true, + "release_date": "2025-01-20", + "last_updated": "2025-02-24", + "cost": { + "input": 0.5, + "output": 4.88 + } }, { - "id": "google/gemini-2.5-flash-lite", - "name": "Google: Gemini 2.5 Flash Lite", - "display_name": "Google: Gemini 2.5 Flash Lite", + "id": "gemma-2b-it-lora", + "name": "@cf/google/gemma-2b-it-lora", + "display_name": "@cf/google/gemma-2b-it-lora", "modalities": { "input": [ - "image", - "text", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65535 + "context": 8192, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "type": "imageGeneration" + "attachment": false, + "open_weights": true, + "release_date": "2024-04-02", + "last_updated": "2024-04-02", + "cost": { + "input": 0, + "output": 0 + } }, { - "id": "inclusionai/ling-1t", - "name": "inclusionAI: Ling-1T", - "display_name": "inclusionAI: Ling-1T", + "id": "una-cybertron-7b-v2-bf16", + "name": "@cf/fblgit/una-cybertron-7b-v2-bf16", + "display_name": "@cf/fblgit/una-cybertron-7b-v2-bf16", "modalities": { "input": [ "text" @@ -37509,19 +37558,27 @@ ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 15000, + "output": 15000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2023-12-02", + "last_updated": "2024-03-08", + "cost": { + "input": 0, + "output": 0 + } }, { - "id": "inclusionai/ling-flash-2.0", - "name": "inclusionAI: Ling Flash 2.0", - "display_name": "inclusionAI: Ling Flash 2.0", + "id": "gemma-sea-lion-v4-27b-it", + "name": "@cf/aisingapore/gemma-sea-lion-v4-27b-it", + "display_name": "@cf/aisingapore/gemma-sea-lion-v4-27b-it", "modalities": { "input": [ "text" @@ -37531,19 +37588,27 @@ ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 128000, + "output": 0 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2025-09-23", + "last_updated": "2025-12-02", + "cost": { + "input": 0.35, + "output": 0.56 + } }, { - "id": "inclusionai/ling-mini-2.0", - "name": "inclusionAI: Ling Mini 2.0", - "display_name": "inclusionAI: Ling Mini 2.0", + "id": "m2m100-1.2b", + "name": "@cf/meta/m2m100-1.2b", + "display_name": "@cf/meta/m2m100-1.2b", "modalities": { "input": [ "text" @@ -37553,19 +37618,27 @@ ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 0, + "output": 0 }, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2022-03-02", + "last_updated": "2023-11-16", + "cost": { + "input": 0.34, + "output": 0.34 + } }, { - "id": "inclusionai/ring-flash-2.0", - "name": "inclusionAI: Ring Flash 2.0", - "display_name": "inclusionAI: Ring Flash 2.0", + "id": "llama-3.2-3b-instruct", + "name": "@cf/meta/llama-3.2-3b-instruct", + "display_name": "@cf/meta/llama-3.2-3b-instruct", "modalities": { "input": [ "text" @@ -37575,20 +37648,27 @@ ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 128000, + "output": 128000 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2024-09-18", + "last_updated": "2024-10-24", + "cost": { + "input": 0.051, + "output": 0.34 + } }, { - "id": "inclusionai/ring-mini-2.0", - "name": "inclusionAI: Ring Mini 2.0", - "display_name": "inclusionAI: Ring Mini 2.0", + "id": "qwen2.5-coder-32b-instruct", + "name": "@cf/qwen/qwen2.5-coder-32b-instruct", + "display_name": "@cf/qwen/qwen2.5-coder-32b-instruct", "modalities": { "input": [ "text" @@ -37598,145 +37678,150 @@ ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 32768, + "output": 32768 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2024-11-06", + "last_updated": "2025-01-12", + "cost": { + "input": 0.66, + "output": 1 + } }, { - "id": "moonshotai/kimi-k2-0711", - "name": "kimi-k2-0711", - "display_name": "kimi-k2-0711", + "id": "stable-diffusion-v1-5-img2img", + "name": "@cf/runwayml/stable-diffusion-v1-5-img2img", + "display_name": "@cf/runwayml/stable-diffusion-v1-5-img2img", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 0, + "output": 0 }, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2024-02-27", + "last_updated": "2024-02-27", + "cost": { + "input": 0, + "output": 0 + } }, { - "id": "openai/gpt-4.1", - "name": "GPT-4.1", - "display_name": "GPT-4.1", + "id": "gemma-7b-it-lora", + "name": "@cf/google/gemma-7b-it-lora", + "display_name": "@cf/google/gemma-7b-it-lora", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 3500, + "output": 3500 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "attachment": false, + "open_weights": true, + "release_date": "2024-04-02", + "last_updated": "2024-04-02", "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 0, + "output": 0 } }, { - "id": "openai/gpt-4.1-mini", - "name": "GPT-4.1 mini", - "display_name": "GPT-4.1 mini", + "id": "qwen1.5-14b-chat-awq", + "name": "@cf/qwen/qwen1.5-14b-chat-awq", + "display_name": "@cf/qwen/qwen1.5-14b-chat-awq", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 7500, + "output": 7500 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "attachment": false, + "open_weights": true, + "release_date": "2024-02-03", + "last_updated": "2024-04-30", "cost": { - "input": 0.4, - "output": 1.6, - "cache_read": 0.1 + "input": 0, + "output": 0 } }, { - "id": "openai/gpt-4.1-nano", - "name": "GPT-4.1 nano", - "display_name": "GPT-4.1 nano", + "id": "qwen1.5-1.8b-chat", + "name": "@cf/qwen/qwen1.5-1.8b-chat", + "display_name": "@cf/qwen/qwen1.5-1.8b-chat", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 32000, + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "attachment": false, + "open_weights": true, + "release_date": "2024-01-30", + "last_updated": "2024-04-30", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.03 + "input": 0, + "output": 0 } }, { - "id": "openai/gpt-4o", - "name": "GPT-4o", - "display_name": "GPT-4o", + "id": "mistral-small-3.1-24b-instruct", + "name": "@cf/mistralai/mistral-small-3.1-24b-instruct", + "display_name": "@cf/mistralai/mistral-small-3.1-24b-instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -37744,175 +37829,147 @@ }, "limit": { "context": 128000, - "output": 16384 + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-05-13", - "last_updated": "2024-08-06", + "attachment": false, + "open_weights": true, + "release_date": "2025-03-11", + "last_updated": "2025-07-28", "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 + "input": 0.35, + "output": 0.56 } }, { - "id": "openai/gpt-4o-mini", - "name": "GPT-4o mini", - "display_name": "GPT-4o mini", + "id": "gemma-7b-it", + "name": "@hf/google/gemma-7b-it", + "display_name": "@hf/google/gemma-7b-it", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 8192, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-07-18", - "last_updated": "2024-07-18", + "attachment": false, + "open_weights": true, + "release_date": "2024-02-13", + "last_updated": "2024-08-14", "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.08 + "input": 0, + "output": 0 } }, { - "id": "openai/gpt-5-chat", - "name": "gpt-5-chat", - "display_name": "gpt-5-chat", - "limit": { - "context": 272000, - "output": 16384 - }, - "type": "chat" - }, - { - "id": "openai/gpt-5-mini", - "name": "gpt-5-mini", - "display_name": "gpt-5-mini", + "id": "qwen3-30b-a3b-fp8", + "name": "@cf/qwen/qwen3-30b-a3b-fp8", + "display_name": "@cf/qwen/qwen3-30b-a3b-fp8", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 272000, - "output": 128000 + "context": 32768, + "output": 0 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "attachment": false, + "open_weights": true, + "release_date": "2025-04-30", + "last_updated": "2025-12-02", "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.03 - }, - "type": "chat" + "input": 0.051, + "output": 0.34 + } }, { - "id": "openai/gpt-5-nano", - "name": "gpt-5-nano", - "display_name": "gpt-5-nano", + "id": "llamaguard-7b-awq", + "name": "@hf/thebloke/llamaguard-7b-awq", + "display_name": "@hf/thebloke/llamaguard-7b-awq", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 272000, - "output": 128000 + "context": 4096, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "attachment": false, + "open_weights": true, + "release_date": "2023-12-11", + "last_updated": "2023-12-11", "cost": { - "input": 0.05, - "output": 0.4, - "cache_read": 0.01 - }, - "type": "chat" + "input": 0, + "output": 0 + } }, { - "id": "openai/o4-mini", - "name": "o4-mini", - "display_name": "o4-mini", + "id": "hermes-2-pro-mistral-7b", + "name": "@hf/nousresearch/hermes-2-pro-mistral-7b", + "display_name": "@hf/nousresearch/hermes-2-pro-mistral-7b", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 24000, + "output": 24000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-16", - "last_updated": "2025-04-16", + "attachment": false, + "open_weights": true, + "release_date": "2024-03-11", + "last_updated": "2024-09-08", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.28 + "input": 0, + "output": 0 } }, { - "id": "qwen/qwen3-235b-a22b-2507", - "name": "Qwen: Qwen3 235B A22B Instruct 2507", - "display_name": "Qwen: Qwen3 235B A22B Instruct 2507", + "id": "granite-4.0-h-micro", + "name": "@cf/ibm-granite/granite-4.0-h-micro", + "display_name": "@cf/ibm-granite/granite-4.0-h-micro", "modalities": { "input": [ "text" @@ -37922,20 +37979,27 @@ ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 131000, + "output": 0 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2025-10-07", + "last_updated": "2025-12-02", + "cost": { + "input": 0.017, + "output": 0.11 + } }, { - "id": "qwen/qwen3-235b-a22b-thinking-2507", - "name": "Qwen: Qwen3 235B A22B Thinking 2507", - "display_name": "Qwen: Qwen3 235B A22B Thinking 2507", + "id": "falcon-7b-instruct", + "name": "@cf/tiiuae/falcon-7b-instruct", + "display_name": "@cf/tiiuae/falcon-7b-instruct", "modalities": { "input": [ "text" @@ -37945,20 +38009,27 @@ ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 4096, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2023-04-25", + "last_updated": "2024-10-12", + "cost": { + "input": 0, + "output": 0 + } }, { - "id": "qwen/qwen3-coder", - "name": "Qwen: Qwen3 Coder 480B A35B", - "display_name": "Qwen: Qwen3 Coder 480B A35B", + "id": "llama-3.3-70b-instruct-fp8-fast", + "name": "@cf/meta/llama-3.3-70b-instruct-fp8-fast", + "display_name": "@cf/meta/llama-3.3-70b-instruct-fp8-fast", "modalities": { "input": [ "text" @@ -37968,20 +38039,27 @@ ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 24000, + "output": 24000 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2024-12-06", + "last_updated": "2024-12-06", + "cost": { + "input": 0.29, + "output": 2.25 + } }, { - "id": "qwen/qwen3-max", - "name": "Qwen: Qwen3 Max", - "display_name": "Qwen: Qwen3 Max", + "id": "llama-3-8b-instruct-awq", + "name": "@cf/meta/llama-3-8b-instruct-awq", + "display_name": "@cf/meta/llama-3-8b-instruct-awq", "modalities": { "input": [ "text" @@ -37991,44 +38069,57 @@ ] }, "limit": { - "context": 256000, - "output": 32768 + "context": 8192, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2024-05-09", + "last_updated": "2024-05-09", + "cost": { + "input": 0.12, + "output": 0.27 + } }, { - "id": "qwen/qwen3-vl-plus", - "name": "Qwen: Qwen3 VL 235B A22B Instruct", - "display_name": "Qwen: Qwen3 VL 235B A22B Instruct", + "id": "phoenix-1.0", + "name": "@cf/leonardo/phoenix-1.0", + "display_name": "@cf/leonardo/phoenix-1.0", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 0, + "output": 0 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "imageGeneration" + "attachment": false, + "open_weights": false, + "release_date": "2025-08-25", + "last_updated": "2025-08-25", + "cost": { + "input": 0.0058, + "output": 0.0058 + } }, { - "id": "z-ai/glm-4.5", - "name": "GLM-4.5", - "display_name": "GLM-4.5", + "id": "phi-2", + "name": "@cf/microsoft/phi-2", + "display_name": "@cf/microsoft/phi-2", "modalities": { "input": [ "text" @@ -38038,70 +38129,57 @@ ] }, "limit": { - "context": 131072, - "output": 98304 + "context": 2048, + "output": 2048 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "release_date": "2023-12-13", + "last_updated": "2024-04-29", "cost": { - "input": 0.6, - "output": 2.2, - "cache_read": 0.11, - "cache_write": 0 + "input": 0, + "output": 0 } - } - ] - }, - "ovhcloud": { - "id": "ovhcloud", - "name": "OVHcloud AI Endpoints", - "display_name": "OVHcloud AI Endpoints", - "api": "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1", - "doc": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//", - "models": [ + }, { - "id": "mixtral-8x7b-instruct-v0.1", - "name": "Mixtral-8x7B-Instruct-v0.1", - "display_name": "Mixtral-8x7B-Instruct-v0.1", + "id": "dreamshaper-8-lcm", + "name": "@cf/lykon/dreamshaper-8-lcm", + "display_name": "@cf/lykon/dreamshaper-8-lcm", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 32000, - "output": 32000 + "context": 0, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": false, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, - "release_date": "2025-04-01", - "last_updated": "2025-04-01", + "release_date": "2023-12-06", + "last_updated": "2023-12-07", "cost": { - "input": 0.7, - "output": 0.7 + "input": 0, + "output": 0 } }, { - "id": "mistral-7b-instruct-v0.3", - "name": "Mistral-7B-Instruct-v0.3", - "display_name": "Mistral-7B-Instruct-v0.3", + "id": "discolm-german-7b-v1-awq", + "name": "@cf/thebloke/discolm-german-7b-v1-awq", + "display_name": "@cf/thebloke/discolm-german-7b-v1-awq", "modalities": { "input": [ "text" @@ -38111,8 +38189,8 @@ ] }, "limit": { - "context": 127000, - "output": 127000 + "context": 4096, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -38121,17 +38199,17 @@ }, "attachment": false, "open_weights": true, - "release_date": "2025-04-01", - "last_updated": "2025-04-01", + "release_date": "2024-01-18", + "last_updated": "2024-01-24", "cost": { - "input": 0.11, - "output": 0.11 + "input": 0, + "output": 0 } }, { - "id": "llama-3.1-8b-instruct", - "name": "Llama-3.1-8B-Instruct", - "display_name": "Llama-3.1-8B-Instruct", + "id": "llama-2-7b-chat-int8", + "name": "@cf/meta/llama-2-7b-chat-int8", + "display_name": "@cf/meta/llama-2-7b-chat-int8", "modalities": { "input": [ "text" @@ -38141,8 +38219,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 8192, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -38151,109 +38229,107 @@ }, "attachment": false, "open_weights": true, - "release_date": "2025-06-11", - "last_updated": "2025-06-11", + "release_date": "2023-09-25", + "last_updated": "2023-09-25", "cost": { - "input": 0.11, - "output": 0.11 + "input": 0.556, + "output": 6.667 } }, { - "id": "qwen2.5-vl-72b-instruct", - "name": "Qwen2.5-VL-72B-Instruct", - "display_name": "Qwen2.5-VL-72B-Instruct", + "id": "llama-3.2-1b-instruct", + "name": "@cf/meta/llama-3.2-1b-instruct", + "display_name": "@cf/meta/llama-3.2-1b-instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 32000, - "output": 32000 + "context": 60000, + "output": 60000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "release_date": "2025-03-31", - "last_updated": "2025-03-31", + "release_date": "2024-09-18", + "last_updated": "2024-10-24", "cost": { - "input": 1.01, - "output": 1.01 + "input": 0.027, + "output": 0.2 } }, { - "id": "mistral-nemo-instruct-2407", - "name": "Mistral-Nemo-Instruct-2407", - "display_name": "Mistral-Nemo-Instruct-2407", + "id": "whisper-large-v3-turbo", + "name": "@cf/openai/whisper-large-v3-turbo", + "display_name": "@cf/openai/whisper-large-v3-turbo", "modalities": { "input": [ - "text" + "audio" ], "output": [ "text" ] }, "limit": { - "context": 118000, - "output": 118000 + "context": 0, + "output": 0 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2024-11-20", - "last_updated": "2024-11-20", + "release_date": "2024-10-01", + "last_updated": "2024-10-04", "cost": { - "input": 0.14, - "output": 0.14 + "input": 0.00051, + "output": 0.00051 } }, { - "id": "mistral-small-3.2-24b-instruct-2506", - "name": "Mistral-Small-3.2-24B-Instruct-2506", - "display_name": "Mistral-Small-3.2-24B-Instruct-2506", + "id": "llama-4-scout-17b-16e-instruct", + "name": "@cf/meta/llama-4-scout-17b-16e-instruct", + "display_name": "@cf/meta/llama-4-scout-17b-16e-instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "release_date": "2025-07-16", - "last_updated": "2025-07-16", + "release_date": "2025-04-02", + "last_updated": "2025-05-23", "cost": { - "input": 0.1, - "output": 0.31 + "input": 0.27, + "output": 0.85 } }, { - "id": "qwen2.5-coder-32b-instruct", - "name": "Qwen2.5-Coder-32B-Instruct", - "display_name": "Qwen2.5-Coder-32B-Instruct", + "id": "starling-lm-7b-beta", + "name": "@hf/nexusflow/starling-lm-7b-beta", + "display_name": "@hf/nexusflow/starling-lm-7b-beta", "modalities": { "input": [ "text" @@ -38263,27 +38339,27 @@ ] }, "limit": { - "context": 32000, - "output": 32000 + "context": 4096, + "output": 4096 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2025-03-24", - "last_updated": "2025-03-24", + "release_date": "2024-03-19", + "last_updated": "2024-04-03", "cost": { - "input": 0.96, - "output": 0.96 + "input": 0, + "output": 0 } }, { - "id": "qwen3-coder-30b-a3b-instruct", - "name": "Qwen3-Coder-30B-A3B-Instruct", - "display_name": "Qwen3-Coder-30B-A3B-Instruct", + "id": "deepseek-coder-6.7b-base-awq", + "name": "@hf/thebloke/deepseek-coder-6.7b-base-awq", + "display_name": "@hf/thebloke/deepseek-coder-6.7b-base-awq", "modalities": { "input": [ "text" @@ -38293,8 +38369,8 @@ ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 4096, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -38303,48 +38379,47 @@ }, "attachment": false, "open_weights": true, - "release_date": "2025-10-28", - "last_updated": "2025-10-28", + "release_date": "2023-11-05", + "last_updated": "2023-11-09", "cost": { - "input": 0.07, - "output": 0.26 + "input": 0, + "output": 0 } }, { - "id": "llava-next-mistral-7b", - "name": "llava-next-mistral-7b", - "display_name": "llava-next-mistral-7b", + "id": "gemma-3-12b-it", + "name": "@cf/google/gemma-3-12b-it", + "display_name": "@cf/google/gemma-3-12b-it", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 32000, - "output": 32000 + "context": 80000, + "output": 80000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "release_date": "2025-01-08", - "last_updated": "2025-01-08", + "release_date": "2025-03-01", + "last_updated": "2025-03-21", "cost": { - "input": 0.32, - "output": 0.32 + "input": 0.35, + "output": 0.56 } }, { - "id": "deepseek-r1-distill-llama-70b", - "name": "DeepSeek-R1-Distill-Llama-70B", - "display_name": "DeepSeek-R1-Distill-Llama-70B", + "id": "llama-guard-3-8b", + "name": "@cf/meta/llama-guard-3-8b", + "display_name": "@cf/meta/llama-guard-3-8b", "modalities": { "input": [ "text" @@ -38354,28 +38429,27 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 131072, + "output": 0 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2025-01-30", - "last_updated": "2025-01-30", + "release_date": "2024-07-22", + "last_updated": "2024-10-11", "cost": { - "input": 0.74, - "output": 0.74 + "input": 0.48, + "output": 0.03 } }, { - "id": "meta-llama-3_1-70b-instruct", - "name": "Meta-Llama-3_1-70B-Instruct", - "display_name": "Meta-Llama-3_1-70B-Instruct", + "id": "neural-chat-7b-v3-1-awq", + "name": "@hf/thebloke/neural-chat-7b-v3-1-awq", + "display_name": "@hf/thebloke/neural-chat-7b-v3-1-awq", "modalities": { "input": [ "text" @@ -38385,87 +38459,87 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 4096, + "output": 4096 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2025-04-01", - "last_updated": "2025-04-01", + "release_date": "2023-11-15", + "last_updated": "2023-11-17", "cost": { - "input": 0.74, - "output": 0.74 + "input": 0, + "output": 0 } }, { - "id": "gpt-oss-20b", - "name": "gpt-oss-20b", - "display_name": "gpt-oss-20b", + "id": "whisper-tiny-en", + "name": "@cf/openai/whisper-tiny-en", + "display_name": "@cf/openai/whisper-tiny-en", "modalities": { "input": [ - "text" + "audio" ], "output": [ "text" ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 0, + "output": 0 }, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2025-08-28", - "last_updated": "2025-08-28", + "release_date": "2022-09-26", + "last_updated": "2024-01-22", "cost": { - "input": 0.05, - "output": 0.18 + "input": 0, + "output": 0 } }, { - "id": "gpt-oss-120b", - "name": "gpt-oss-120b", - "display_name": "gpt-oss-120b", + "id": "stable-diffusion-xl-lightning", + "name": "@cf/bytedance/stable-diffusion-xl-lightning", + "display_name": "@cf/bytedance/stable-diffusion-xl-lightning", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 0, + "output": 0 }, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2025-08-28", - "last_updated": "2025-08-28", + "release_date": "2024-02-20", + "last_updated": "2024-04-03", "cost": { - "input": 0.09, - "output": 0.47 + "input": 0, + "output": 0 } }, { - "id": "meta-llama-3_3-70b-instruct", - "name": "Meta-Llama-3_3-70B-Instruct", - "display_name": "Meta-Llama-3_3-70B-Instruct", + "id": "mistral-7b-instruct-v0.1", + "name": "@cf/mistral/mistral-7b-instruct-v0.1", + "display_name": "@cf/mistral/mistral-7b-instruct-v0.1", "modalities": { "input": [ "text" @@ -38475,8 +38549,8 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 2824, + "output": 2824 }, "temperature": true, "tool_call": true, @@ -38485,19 +38559,20 @@ }, "attachment": false, "open_weights": true, - "release_date": "2025-04-01", - "last_updated": "2025-04-01", + "release_date": "2023-09-27", + "last_updated": "2025-07-24", "cost": { - "input": 0.74, - "output": 0.74 + "input": 0.11, + "output": 0.19 } }, { - "id": "qwen3-32b", - "name": "Qwen3-32B", - "display_name": "Qwen3-32B", + "id": "llava-1.5-7b-hf", + "name": "@cf/llava-hf/llava-1.5-7b-hf", + "display_name": "@cf/llava-hf/llava-1.5-7b-hf", "modalities": { "input": [ + "image", "text" ], "output": [ @@ -38505,104 +38580,91 @@ ] }, "limit": { - "context": 32000, - "output": 32000 + "context": 0, + "output": 0 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, - "release_date": "2025-07-16", - "last_updated": "2025-07-16", + "release_date": "2023-12-05", + "last_updated": "2025-06-06", "cost": { - "input": 0.09, - "output": 0.25 + "input": 0, + "output": 0 } - } - ] - }, - "v0": { - "id": "v0", - "name": "v0", - "display_name": "v0", - "doc": "https://sdk.vercel.ai/providers/ai-sdk-providers/vercel", - "models": [ + }, { - "id": "v0-1.5-lg", - "name": "v0-1.5-lg", - "display_name": "v0-1.5-lg", + "id": "gpt-oss-20b", + "name": "@cf/openai/gpt-oss-20b", + "display_name": "@cf/openai/gpt-oss-20b", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 512000, - "output": 32000 + "context": 128000, + "output": 128000 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-06-09", - "last_updated": "2025-06-09", + "attachment": false, + "open_weights": true, + "release_date": "2025-08-04", + "last_updated": "2025-08-14", "cost": { - "input": 15, - "output": 75 + "input": 0.2, + "output": 0.3 } }, { - "id": "v0-1.5-md", - "name": "v0-1.5-md", - "display_name": "v0-1.5-md", + "id": "deepseek-math-7b-instruct", + "name": "@cf/deepseek-ai/deepseek-math-7b-instruct", + "display_name": "@cf/deepseek-ai/deepseek-math-7b-instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32000 + "context": 4096, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-06-09", - "last_updated": "2025-06-09", + "attachment": false, + "open_weights": true, + "release_date": "2024-02-05", + "last_updated": "2024-02-06", "cost": { - "input": 3, - "output": 15 + "input": 0, + "output": 0 } }, { - "id": "v0-1.0-md", - "name": "v0-1.0-md", - "display_name": "v0-1.0-md", + "id": "gpt-oss-120b", + "name": "@cf/openai/gpt-oss-120b", + "display_name": "@cf/openai/gpt-oss-120b", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -38610,67 +38672,57 @@ }, "limit": { "context": 128000, - "output": 32000 + "output": 128000 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "attachment": false, + "open_weights": true, + "release_date": "2025-08-04", + "last_updated": "2025-08-14", "cost": { - "input": 3, - "output": 15 + "input": 0.35, + "output": 0.75 } - } - ] - }, - "iflowcn": { - "id": "iflowcn", - "name": "iFlow", - "display_name": "iFlow", - "api": "https://apis.iflow.cn/v1", - "doc": "https://platform.iflow.cn/en/docs", - "models": [ + }, { - "id": "qwen3-coder", - "name": "Qwen3-Coder-480B-A35B", - "display_name": "Qwen3-Coder-480B-A35B", + "id": "melotts", + "name": "@cf/myshell-ai/melotts", + "display_name": "@cf/myshell-ai/melotts", "modalities": { "input": [ "text" ], "output": [ - "text" + "audio" ] }, "limit": { - "context": 256000, - "output": 64000 + "context": 0, + "output": 0 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-01", - "last_updated": "2025-07-01", + "release_date": "2024-07-19", + "last_updated": "2024-07-19", "cost": { - "input": 0, + "input": 0.0002, "output": 0 } }, { - "id": "deepseek-v3", - "name": "DeepSeek-V3", - "display_name": "DeepSeek-V3", + "id": "qwen1.5-7b-chat-awq", + "name": "@cf/qwen/qwen1.5-7b-chat-awq", + "display_name": "@cf/qwen/qwen1.5-7b-chat-awq", "modalities": { "input": [ "text" @@ -38680,8 +38732,8 @@ ] }, "limit": { - "context": 128000, - "output": 32000 + "context": 20000, + "output": 20000 }, "temperature": true, "tool_call": true, @@ -38690,18 +38742,17 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-10", - "release_date": "2024-12-26", - "last_updated": "2024-12-26", + "release_date": "2024-02-03", + "last_updated": "2024-04-30", "cost": { "input": 0, "output": 0 } }, { - "id": "kimi-k2", - "name": "Kimi-K2", - "display_name": "Kimi-K2", + "id": "llama-3.1-8b-instruct-fast", + "name": "@cf/meta/llama-3.1-8b-instruct-fast", + "display_name": "@cf/meta/llama-3.1-8b-instruct-fast", "modalities": { "input": [ "text" @@ -38712,7 +38763,7 @@ }, "limit": { "context": 128000, - "output": 64000 + "output": 128000 }, "temperature": true, "tool_call": true, @@ -38720,51 +38771,48 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "open_weights": true, + "release_date": "2024-07-18", + "last_updated": "2024-09-25", "cost": { - "input": 0, - "output": 0 + "input": 0.045, + "output": 0.384 } }, { - "id": "deepseek-r1", - "name": "DeepSeek-R1", - "display_name": "DeepSeek-R1", + "id": "nova-3", + "name": "@cf/deepgram/nova-3", + "display_name": "@cf/deepgram/nova-3", "modalities": { "input": [ - "text" + "audio" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32000 + "context": 0, + "output": 0 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2024-12", - "release_date": "2025-01-20", - "last_updated": "2025-01-20", + "release_date": "2025-06-05", + "last_updated": "2025-07-08", "cost": { - "input": 0, - "output": 0 + "input": 0.0052, + "output": 0.0052 } }, { - "id": "deepseek-v3.1", - "name": "DeepSeek-V3.1-Terminus", - "display_name": "DeepSeek-V3.1-Terminus", + "id": "llama-3.1-70b-instruct", + "name": "@cf/meta/llama-3.1-70b-instruct", + "display_name": "@cf/meta/llama-3.1-70b-instruct", "modalities": { "input": [ "text" @@ -38774,29 +38822,27 @@ ] }, "limit": { - "context": 128000, - "output": 64000 + "context": 24000, + "output": 24000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2024-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "release_date": "2024-07-16", + "last_updated": "2024-12-15", "cost": { - "input": 0, - "output": 0 + "input": 0.293, + "output": 2.253 } }, { - "id": "minimax-m2", - "name": "MiniMax-M2", - "display_name": "MiniMax-M2", + "id": "qwq-32b", + "name": "@cf/qwen/qwq-32b", + "display_name": "@cf/qwen/qwq-32b", "modalities": { "input": [ "text" @@ -38806,30 +38852,27 @@ ] }, "limit": { - "context": 204800, - "output": 131100 + "context": 24000, + "output": 24000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2025-11-13", - "last_updated": "2025-11-13", + "release_date": "2025-03-05", + "last_updated": "2025-03-11", "cost": { - "input": 0, - "output": 0, - "cache_read": 0, - "cache_write": 0 + "input": 0.66, + "output": 1 } }, { - "id": "qwen3-235b", - "name": "Qwen3-235B-A22B", - "display_name": "Qwen3-235B-A22B", + "id": "zephyr-7b-beta-awq", + "name": "@hf/thebloke/zephyr-7b-beta-awq", + "display_name": "@hf/thebloke/zephyr-7b-beta-awq", "modalities": { "input": [ "text" @@ -38839,29 +38882,27 @@ ] }, "limit": { - "context": 128000, - "output": 32000 + "context": 4096, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2024-10", - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "release_date": "2023-10-27", + "last_updated": "2023-11-09", "cost": { "input": 0, "output": 0 } }, { - "id": "deepseek-v3.2-chat", - "name": "DeepSeek-V3.2", - "display_name": "DeepSeek-V3.2", + "id": "deepseek-coder-6.7b-instruct-awq", + "name": "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", + "display_name": "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", "modalities": { "input": [ "text" @@ -38871,29 +38912,27 @@ ] }, "limit": { - "context": 128000, - "output": 64000 + "context": 4096, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2025-11", - "release_date": "2025-12-01", - "last_updated": "2025-12-01", + "release_date": "2023-11-05", + "last_updated": "2023-11-13", "cost": { "input": 0, "output": 0 } }, { - "id": "kimi-k2-0905", - "name": "Kimi-K2-0905", - "display_name": "Kimi-K2-0905", + "id": "llama-3.1-8b-instruct-awq", + "name": "@cf/meta/llama-3.1-8b-instruct-awq", + "display_name": "@cf/meta/llama-3.1-8b-instruct-awq", "modalities": { "input": [ "text" @@ -38903,8 +38942,8 @@ ] }, "limit": { - "context": 256000, - "output": 64000 + "context": 8192, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -38912,19 +38951,18 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-12", - "release_date": "2025-09-05", - "last_updated": "2025-09-05", + "open_weights": true, + "release_date": "2024-07-25", + "last_updated": "2024-07-25", "cost": { - "input": 0, - "output": 0 + "input": 0.12, + "output": 0.27 } }, { - "id": "kimi-k2-thinking", - "name": "Kimi-K2-Thinking", - "display_name": "Kimi-K2-Thinking", + "id": "mistral-7b-instruct-v0.2-lora", + "name": "@cf/mistral/mistral-7b-instruct-v0.2-lora", + "display_name": "@cf/mistral/mistral-7b-instruct-v0.2-lora", "modalities": { "input": [ "text" @@ -38934,31 +38972,30 @@ ] }, "limit": { - "context": 128000, - "output": 64000 + "context": 15000, + "output": 15000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2025-11", - "release_date": "2025-11-06", - "last_updated": "2025-11-06", + "release_date": "2024-04-01", + "last_updated": "2024-04-01", "cost": { "input": 0, "output": 0 } }, { - "id": "qwen3-235b-a22b-thinking-2507", - "name": "Qwen3-235B-A22B-Thinking", - "display_name": "Qwen3-235B-A22B-Thinking", + "id": "uform-gen2-qwen-500m", + "name": "@cf/unum/uform-gen2-qwen-500m", + "display_name": "@cf/unum/uform-gen2-qwen-500m", "modalities": { "input": [ + "image", "text" ], "output": [ @@ -38966,61 +39003,69 @@ ] }, "limit": { - "context": 256000, - "output": 64000 + "context": 0, + "output": 0 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-01", - "last_updated": "2025-07-01", + "release_date": "2024-02-15", + "last_updated": "2024-04-24", "cost": { "input": 0, "output": 0 } - }, + } + ] + }, + "inception": { + "id": "inception", + "name": "Inception", + "display_name": "Inception", + "api": "https://api.inceptionlabs.ai/v1/", + "doc": "https://platform.inceptionlabs.ai/docs", + "models": [ { - "id": "qwen3-vl-plus", - "name": "Qwen3-VL-Plus", - "display_name": "Qwen3-VL-Plus", + "id": "mercury-coder", + "name": "Mercury Coder", + "display_name": "Mercury Coder", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 32000 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2023-10", + "release_date": "2025-02-26", + "last_updated": "2025-07-31", "cost": { - "input": 0, - "output": 0 + "input": 0.25, + "output": 1, + "cache_read": 0.25, + "cache_write": 1 } }, { - "id": "glm-4.6", - "name": "GLM-4.6", - "display_name": "GLM-4.6", + "id": "mercury", + "name": "Mercury", + "display_name": "Mercury", "modalities": { "input": [ "text" @@ -39030,29 +39075,39 @@ ] }, "limit": { - "context": 200000, - "output": 128000 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-12-01", - "last_updated": "2025-11-13", + "knowledge": "2023-10", + "release_date": "2025-06-26", + "last_updated": "2025-07-31", "cost": { - "input": 0, - "output": 0 + "input": 0.25, + "output": 1, + "cache_read": 0.25, + "cache_write": 1 } - }, + } + ] + }, + "wandb": { + "id": "wandb", + "name": "Weights & Biases", + "display_name": "Weights & Biases", + "api": "https://api.inference.wandb.ai/v1", + "doc": "https://weave-docs.wandb.ai/guides/integrations/inference/", + "models": [ { - "id": "tstars2.0", - "name": "TStars-2.0", - "display_name": "TStars-2.0", + "id": "moonshotai/Kimi-K2-Instruct", + "name": "Kimi-K2-Instruct", + "display_name": "Kimi-K2-Instruct", "modalities": { "input": [ "text" @@ -39063,7 +39118,7 @@ }, "limit": { "context": 128000, - "output": 64000 + "output": 16384 }, "temperature": true, "tool_call": true, @@ -39071,19 +39126,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-01", - "release_date": "2024-01-01", - "last_updated": "2025-01-01", + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-07-14", + "last_updated": "2025-07-14", "cost": { - "input": 0, - "output": 0 + "input": 1.35, + "output": 4 } }, { - "id": "qwen3-235b-a22b-instruct", - "name": "Qwen3-235B-A22B-Instruct", - "display_name": "Qwen3-235B-A22B-Instruct", + "id": "microsoft/Phi-4-mini-instruct", + "name": "Phi-4-mini-instruct", + "display_name": "Phi-4-mini-instruct", "modalities": { "input": [ "text" @@ -39093,28 +39148,29 @@ ] }, "limit": { - "context": 256000, - "output": 64000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-01", - "last_updated": "2025-07-01", + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 0, - "output": 0 + "input": 0.08, + "output": 0.35 } }, { - "id": "qwen3-max", - "name": "Qwen3-Max", - "display_name": "Qwen3-Max", + "id": "meta-llama/Llama-3.1-8B-Instruct", + "name": "Meta-Llama-3.1-8B-Instruct", + "display_name": "Meta-Llama-3.1-8B-Instruct", "modalities": { "input": [ "text" @@ -39124,28 +39180,29 @@ ] }, "limit": { - "context": 256000, - "output": 32000 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 0, - "output": 0 + "input": 0.22, + "output": 0.22 } }, { - "id": "deepseek-v3.2", - "name": "DeepSeek-V3.2-Exp", - "display_name": "DeepSeek-V3.2-Exp", + "id": "meta-llama/Llama-3.3-70B-Instruct", + "name": "Llama-3.3-70B-Instruct", + "display_name": "Llama-3.3-70B-Instruct", "modalities": { "input": [ "text" @@ -39156,58 +39213,61 @@ }, "limit": { "context": 128000, - "output": 64000 + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2024-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", "cost": { - "input": 0, - "output": 0 + "input": 0.71, + "output": 0.71 } }, { - "id": "qwen3-max-preview", - "name": "Qwen3-Max-Preview", - "display_name": "Qwen3-Max-Preview", + "id": "meta-llama/Llama-4-Scout-17B-16E-Instruct", + "name": "Llama 4 Scout 17B 16E Instruct", + "display_name": "Llama 4 Scout 17B 16E Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 32000 + "context": 64000, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, + "open_weights": true, "knowledge": "2024-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "release_date": "2025-01-31", + "last_updated": "2025-01-31", "cost": { - "input": 0, - "output": 0 + "input": 0.17, + "output": 0.66 } }, { - "id": "qwen3-coder-plus", - "name": "Qwen3-Coder-Plus", - "display_name": "Qwen3-Coder-Plus", + "id": "Qwen/Qwen3-235B-A22B-Instruct-2507", + "name": "Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen3 235B A22B Instruct 2507", "modalities": { "input": [ "text" @@ -39217,8 +39277,8 @@ ] }, "limit": { - "context": 256000, - "output": 64000 + "context": 262144, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -39228,17 +39288,17 @@ "attachment": false, "open_weights": true, "knowledge": "2025-04", - "release_date": "2025-07-01", - "last_updated": "2025-07-01", + "release_date": "2025-04-28", + "last_updated": "2025-07-21", "cost": { - "input": 0, - "output": 0 + "input": 0.1, + "output": 0.1 } }, { - "id": "qwen3-32b", - "name": "Qwen3-32B", - "display_name": "Qwen3-32B", + "id": "Qwen/Qwen3-Coder-480B-A35B-Instruct", + "name": "Qwen3-Coder-480B-A35B-Instruct", + "display_name": "Qwen3-Coder-480B-A35B-Instruct", "modalities": { "input": [ "text" @@ -39248,8 +39308,8 @@ ] }, "limit": { - "context": 128000, - "output": 32000 + "context": 262144, + "output": 66536 }, "temperature": true, "tool_call": true, @@ -39258,27 +39318,18 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-10", - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", "cost": { - "input": 0, - "output": 0 + "input": 1, + "output": 1.5 } - } - ] - }, - "synthetic": { - "id": "synthetic", - "name": "Synthetic", - "display_name": "Synthetic", - "api": "https://api.synthetic.new/v1", - "doc": "https://synthetic.new/pricing", - "models": [ + }, { - "id": "hf:openai/gpt-oss-120b", - "name": "GPT OSS 120B", - "display_name": "GPT OSS 120B", + "id": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "name": "Qwen3-235B-A22B-Thinking-2507", + "display_name": "Qwen3-235B-A22B-Thinking-2507", "modalities": { "input": [ "text" @@ -39288,8 +39339,8 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 262144, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -39299,25 +39350,18 @@ }, "attachment": false, "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2025-04", + "release_date": "2025-07-25", + "last_updated": "2025-07-25", "cost": { "input": 0.1, "output": 0.1 } - } - ] - }, - "deepinfra": { - "id": "deepinfra", - "name": "Deep Infra", - "display_name": "Deep Infra", - "doc": "https://deepinfra.com/models", - "models": [ + }, { - "id": "openai/gpt-oss-20b", - "name": "GPT OSS 20B", - "display_name": "GPT OSS 20B", + "id": "deepseek-ai/DeepSeek-R1-0528", + "name": "DeepSeek-R1-0528", + "display_name": "DeepSeek-R1-0528", "modalities": { "input": [ "text" @@ -39327,8 +39371,8 @@ ] }, "limit": { - "context": 131072, - "output": 16384 + "context": 161000, + "output": 163840 }, "temperature": true, "tool_call": true, @@ -39338,17 +39382,18 @@ }, "attachment": false, "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2025-05", + "release_date": "2025-05-28", + "last_updated": "2025-05-28", "cost": { - "input": 0.03, - "output": 0.14 + "input": 1.35, + "output": 5.4 } }, { - "id": "openai/gpt-oss-120b", - "name": "GPT OSS 120B", - "display_name": "GPT OSS 120B", + "id": "deepseek-ai/DeepSeek-V3-0324", + "name": "DeepSeek-V3-0324", + "display_name": "DeepSeek-V3-0324", "modalities": { "input": [ "text" @@ -39358,105 +39403,102 @@ ] }, "limit": { - "context": 131072, - "output": 16384 + "context": 161000, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2024-10", + "release_date": "2025-03-24", + "last_updated": "2025-03-24", "cost": { - "input": 0.05, - "output": 0.24 + "input": 1.14, + "output": 2.75 } } ] }, - "zhipuai": { - "id": "zhipuai", - "name": "Zhipu AI", - "display_name": "Zhipu AI", - "api": "https://open.bigmodel.cn/api/paas/v4", - "doc": "https://docs.z.ai/guides/overview/pricing", + "cloudflare-ai-gateway": { + "id": "cloudflare-ai-gateway", + "name": "Cloudflare AI Gateway", + "display_name": "Cloudflare AI Gateway", + "api": "https://gateway.ai.cloudflare.com/v1/${CLOUDFLARE_ACCOUNT_ID}/${CLOUDFLARE_GATEWAY_ID}/compat/", + "doc": "https://developers.cloudflare.com/ai-gateway/", "models": [ { - "id": "glm-4.6v-flash", - "name": "GLM-4.6V-Flash", - "display_name": "GLM-4.6V-Flash", + "id": "openai/gpt-4", + "name": "GPT-4", + "display_name": "GPT-4", "modalities": { "input": [ - "text", - "image", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 8192, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-12-08", - "last_updated": "2025-12-08", + "open_weights": false, + "knowledge": "2023-11", + "release_date": "2023-11-06", + "last_updated": "2024-04-09", "cost": { - "input": 0, - "output": 0 + "input": 30, + "output": 60 } }, { - "id": "glm-4.6v", - "name": "GLM-4.6V", - "display_name": "GLM-4.6V", + "id": "openai/gpt-5.1-codex", + "name": "GPT-5.1 Codex", + "display_name": "GPT-5.1 Codex", "modalities": { "input": [ "text", - "image", - "video" + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": true, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-12-08", - "last_updated": "2025-12-08", + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-11-13", + "last_updated": "2025-11-13", "cost": { - "input": 0.3, - "output": 0.9 + "input": 1.25, + "output": 10, + "cache_read": 0.125 } }, { - "id": "glm-4.6", - "name": "GLM-4.6", - "display_name": "GLM-4.6", + "id": "openai/gpt-3.5-turbo", + "name": "GPT-3.5-turbo", + "display_name": "GPT-3.5-turbo", "modalities": { "input": [ "text" @@ -39466,65 +39508,61 @@ ] }, "limit": { - "context": 204800, - "output": 131072 + "context": 16385, + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-09-30", - "last_updated": "2025-09-30", + "open_weights": false, + "knowledge": "2021-09-01", + "release_date": "2023-03-01", + "last_updated": "2023-11-06", "cost": { - "input": 0.6, - "output": 2.2, - "cache_read": 0.11, - "cache_write": 0 + "input": 0.5, + "output": 1.5, + "cache_read": 1.25 } }, { - "id": "glm-4.5v", - "name": "GLM-4.5V", - "display_name": "GLM-4.5V", + "id": "openai/gpt-4-turbo", + "name": "GPT-4 Turbo", + "display_name": "GPT-4 Turbo", "modalities": { "input": [ "text", - "image", - "video" + "image" ], "output": [ "text" ] }, "limit": { - "context": 64000, - "output": 16384 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-08-11", - "last_updated": "2025-08-11", + "open_weights": false, + "knowledge": "2023-12", + "release_date": "2023-11-06", + "last_updated": "2024-04-09", "cost": { - "input": 0.6, - "output": 1.8 + "input": 10, + "output": 30 } }, { - "id": "glm-4.5-air", - "name": "GLM-4.5-Air", - "display_name": "GLM-4.5-Air", + "id": "openai/o3-mini", + "name": "o3-mini", + "display_name": "o3-mini", "modalities": { "input": [ "text" @@ -39534,331 +39572,312 @@ ] }, "limit": { - "context": 131072, - "output": 98304 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2024-12-20", + "last_updated": "2025-01-29", "cost": { - "input": 0.2, - "output": 1.1, - "cache_read": 0.03, - "cache_write": 0 + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 } }, { - "id": "glm-4.5", - "name": "GLM-4.5", - "display_name": "GLM-4.5", + "id": "openai/gpt-5.1", + "name": "GPT-5.1", + "display_name": "GPT-5.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 98304 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-11-13", + "last_updated": "2025-11-13", "cost": { - "input": 0.6, - "output": 2.2, - "cache_read": 0.11, - "cache_write": 0 + "input": 1.25, + "output": 10, + "cache_read": 0.13 } }, { - "id": "glm-4.5-flash", - "name": "GLM-4.5-Flash", - "display_name": "GLM-4.5-Flash", + "id": "openai/gpt-4o", + "name": "GPT-4o", + "display_name": "GPT-4o", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 98304 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-05-13", + "last_updated": "2024-08-06", "cost": { - "input": 0, - "output": 0, - "cache_read": 0, - "cache_write": 0 + "input": 2.5, + "output": 10, + "cache_read": 1.25 } - } - ] - }, - "submodel": { - "id": "submodel", - "name": "submodel", - "display_name": "submodel", - "api": "https://llm.submodel.ai/v1", - "doc": "https://submodel.gitbook.io", - "models": [ + }, { - "id": "openai/gpt-oss-120b", - "name": "GPT OSS 120B", - "display_name": "GPT OSS 120B", + "id": "openai/o4-mini", + "name": "o4-mini", + "display_name": "o4-mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "release_date": "2025-08-23", - "last_updated": "2025-08-23", + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", "cost": { - "input": 0.1, - "output": 0.5 + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 } - } - ] - }, - "zai": { - "id": "zai", - "name": "Z.AI", - "display_name": "Z.AI", - "api": "https://api.z.ai/api/paas/v4", - "doc": "https://docs.z.ai/guides/overview/pricing", - "models": [ + }, { - "id": "glm-4.5-flash", - "name": "GLM-4.5-Flash", - "display_name": "GLM-4.5-Flash", + "id": "openai/o1", + "name": "o1", + "display_name": "o1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 98304 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-12-05", + "last_updated": "2024-12-05", "cost": { - "input": 0, - "output": 0, - "cache_read": 0, - "cache_write": 0 + "input": 15, + "output": 60, + "cache_read": 7.5 } }, { - "id": "glm-4.5", - "name": "GLM-4.5", - "display_name": "GLM-4.5", + "id": "openai/o3-pro", + "name": "o3-pro", + "display_name": "o3-pro", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 98304 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-06-10", + "last_updated": "2025-06-10", "cost": { - "input": 0.6, - "output": 2.2, - "cache_read": 0.11, - "cache_write": 0 + "input": 20, + "output": 80 } }, { - "id": "glm-4.5-air", - "name": "GLM-4.5-Air", - "display_name": "GLM-4.5-Air", + "id": "openai/o3", + "name": "o3", + "display_name": "o3", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 98304 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28", + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", "cost": { - "input": 0.2, - "output": 1.1, - "cache_read": 0.03, - "cache_write": 0 + "input": 2, + "output": 8, + "cache_read": 0.5 } }, { - "id": "glm-4.5v", - "name": "GLM-4.5V", - "display_name": "GLM-4.5V", + "id": "openai/gpt-4o-mini", + "name": "GPT-4o mini", + "display_name": "GPT-4o mini", "modalities": { "input": [ "text", - "image", - "video" + "image" ], "output": [ "text" ] }, "limit": { - "context": 64000, + "context": 128000, "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-08-11", - "last_updated": "2025-08-11", + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", "cost": { - "input": 0.6, - "output": 1.8 + "input": 0.15, + "output": 0.6, + "cache_read": 0.08 } }, { - "id": "glm-4.6", - "name": "GLM-4.6", - "display_name": "GLM-4.6", + "id": "openai/gpt-5.2", + "name": "GPT-5.2", + "display_name": "GPT-5.2", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 204800, - "output": 131072 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-09-30", - "last_updated": "2025-09-30", + "attachment": true, + "open_weights": false, + "knowledge": "2025-08-31", + "release_date": "2025-12-11", + "last_updated": "2025-12-11", "cost": { - "input": 0.6, - "output": 2.2, - "cache_read": 0.11, - "cache_write": 0 + "input": 1.75, + "output": 14, + "cache_read": 0.175 } }, { - "id": "glm-4.6v", - "name": "GLM-4.6V", - "display_name": "GLM-4.6V", + "id": "anthropic/claude-opus-4", + "name": "Claude Opus 4 (latest)", + "display_name": "Claude Opus 4 (latest)", "modalities": { "input": [ "text", "image", - "video" + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 200000, + "output": 32000 }, "temperature": true, "tool_call": true, @@ -39867,164 +39886,176 @@ "default": true }, "attachment": true, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-12-08", - "last_updated": "2025-12-08", + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { - "input": 0.3, - "output": 0.9 + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } - } - ] - }, - "inference": { - "id": "inference", - "name": "Inference", - "display_name": "Inference", - "api": "https://inference.net/v1", - "doc": "https://inference.net/models", - "models": [ + }, { - "id": "mistral/mistral-nemo-12b-instruct", - "name": "Mistral Nemo 12B Instruct", - "display_name": "Mistral Nemo 12B Instruct", + "id": "anthropic/claude-opus-4-1", + "name": "Claude Opus 4.1 (latest)", + "display_name": "Claude Opus 4.1 (latest)", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 16000, - "output": 4096 + "context": 200000, + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0.038, - "output": 0.1 + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } }, { - "id": "google/gemma-3", - "name": "Google Gemma 3", - "display_name": "Google Gemma 3", + "id": "anthropic/claude-haiku-4-5", + "name": "Claude Haiku 4.5 (latest)", + "display_name": "Claude Haiku 4.5 (latest)", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 125000, - "output": 4096 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, - "open_weights": true, - "knowledge": "2024-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": false, + "knowledge": "2025-02-28", + "release_date": "2025-10-15", + "last_updated": "2025-10-15", "cost": { - "input": 0.15, - "output": 0.3 + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 } }, { - "id": "osmosis/osmosis-structure-0.6b", - "name": "Osmosis Structure 0.6B", - "display_name": "Osmosis Structure 0.6B", + "id": "anthropic/claude-3-haiku", + "name": "Claude Haiku 3", + "display_name": "Claude Haiku 3", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 4000, - "output": 2048 + "context": 200000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "attachment": true, + "open_weights": false, + "knowledge": "2023-08-31", + "release_date": "2024-03-13", + "last_updated": "2024-03-13", "cost": { - "input": 0.1, - "output": 0.5 + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 } }, { - "id": "qwen/qwen3-embedding-4b", - "name": "Qwen 3 Embedding 4B", - "display_name": "Qwen 3 Embedding 4B", + "id": "anthropic/claude-opus-4-5", + "name": "Claude Opus 4.5 (latest)", + "display_name": "Claude Opus 4.5 (latest)", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 32000, - "output": 2048 + "context": 200000, + "output": 64000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-11-24", + "last_updated": "2025-11-24", "cost": { - "input": 0.01, - "output": 0 + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 } }, { - "id": "qwen/qwen-2.5-7b-vision-instruct", - "name": "Qwen 2.5 7B Vision Instruct", - "display_name": "Qwen 2.5 7B Vision Instruct", + "id": "anthropic/claude-3-opus", + "name": "Claude Opus 3", + "display_name": "Claude Opus 3", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 125000, + "context": 200000, "output": 4096 }, "temperature": true, @@ -40033,92 +40064,104 @@ "supported": false }, "attachment": true, - "open_weights": true, - "knowledge": "2024-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": false, + "knowledge": "2023-08-31", + "release_date": "2024-02-29", + "last_updated": "2024-02-29", "cost": { - "input": 0.2, - "output": 0.2 + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } }, { - "id": "meta/llama-3.2-11b-vision-instruct", - "name": "Llama 3.2 11B Vision Instruct", - "display_name": "Llama 3.2 11B Vision Instruct", + "id": "anthropic/claude-sonnet-4-5", + "name": "Claude Sonnet 4.5 (latest)", + "display_name": "Claude Sonnet 4.5 (latest)", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 16000, - "output": 4096 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "open_weights": false, + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "cost": { - "input": 0.055, - "output": 0.055 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "meta/llama-3.1-8b-instruct", - "name": "Llama 3.1 8B Instruct", - "display_name": "Llama 3.1 8B Instruct", + "id": "anthropic/claude-3.5-sonnet", + "name": "Claude Sonnet 3.5 v2", + "display_name": "Claude Sonnet 3.5 v2", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 16000, - "output": 4096 + "context": 200000, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "attachment": true, + "open_weights": false, + "knowledge": "2024-04-30", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { - "input": 0.025, - "output": 0.025 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "meta/llama-3.2-3b-instruct", - "name": "Llama 3.2 3B Instruct", - "display_name": "Llama 3.2 3B Instruct", + "id": "anthropic/claude-3-sonnet", + "name": "Claude Sonnet 3", + "display_name": "Claude Sonnet 3", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 16000, + "context": 200000, "output": 4096 }, "temperature": true, @@ -40126,105 +40169,104 @@ "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "attachment": true, + "open_weights": false, + "knowledge": "2023-08-31", + "release_date": "2024-03-04", + "last_updated": "2024-03-04", "cost": { - "input": 0.02, - "output": 0.02 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 0.3 } }, { - "id": "meta/llama-3.2-1b-instruct", - "name": "Llama 3.2 1B Instruct", - "display_name": "Llama 3.2 1B Instruct", + "id": "anthropic/claude-3-5-haiku", + "name": "Claude Haiku 3.5 (latest)", + "display_name": "Claude Haiku 3.5 (latest)", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 16000, - "output": 4096 + "context": 200000, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "attachment": true, + "open_weights": false, + "knowledge": "2024-07-31", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { - "input": 0.01, - "output": 0.01 + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 } - } - ] - }, - "requesty": { - "id": "requesty", - "name": "Requesty", - "display_name": "Requesty", - "api": "https://router.requesty.ai/v1", - "doc": "https://requesty.ai/solution/llm-routing/models", - "models": [ + }, { - "id": "xai/grok-4", - "name": "Grok 4", - "display_name": "Grok 4", + "id": "anthropic/claude-3.5-haiku", + "name": "Claude Haiku 3.5 (latest)", + "display_name": "Claude Haiku 3.5 (latest)", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 64000 + "context": 200000, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-09-09", - "last_updated": "2025-09-09", + "knowledge": "2024-07-31", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.75, - "cache_write": 3 + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 } }, { - "id": "xai/grok-4-fast", - "name": "Grok 4 Fast", - "display_name": "Grok 4 Fast", + "id": "anthropic/claude-sonnet-4", + "name": "Claude Sonnet 4 (latest)", + "display_name": "Claude Sonnet 4 (latest)", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 2000000, + "context": 200000, "output": 64000 }, "temperature": true, @@ -40235,151 +40277,137 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-09-19", - "last_updated": "2025-09-19", + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05, - "cache_write": 0.2 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } - }, + } + ] + }, + "openai": { + "id": "openai", + "name": "OpenAI", + "display_name": "OpenAI", + "doc": "https://platform.openai.com/docs/models", + "models": [ { - "id": "google/gemini-3-flash-preview", - "name": "Gemini 3 Flash", - "display_name": "Gemini 3 Flash", + "id": "gpt-4.1-nano", + "name": "GPT-4.1 nano", + "display_name": "GPT-4.1 nano", "modalities": { "input": [ "text", - "image", - "audio", - "video", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 1047576, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-12-17", - "last_updated": "2025-12-17", + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0.5, - "output": 3, - "cache_read": 0.05, - "cache_write": 1 + "input": 0.1, + "output": 0.4, + "cache_read": 0.03 } }, { - "id": "google/gemini-3-pro-preview", - "name": "Gemini 3 Pro", - "display_name": "Gemini 3 Pro", + "id": "text-embedding-3-small", + "name": "text-embedding-3-small", + "display_name": "text-embedding-3-small", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 8191, + "output": 1536 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", + "knowledge": "2024-01", + "release_date": "2024-01-25", + "last_updated": "2024-01-25", "cost": { - "input": 2, - "output": 12, - "cache_read": 0.2, - "cache_write": 4.5 + "input": 0.02, + "output": 0 } }, { - "id": "google/gemini-2.5-flash", - "name": "Gemini 2.5 Flash", - "display_name": "Gemini 2.5 Flash", + "id": "gpt-4", + "name": "GPT-4", + "display_name": "GPT-4", "modalities": { "input": [ - "text", - "image", - "audio", - "video", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 8192, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-06-17", - "last_updated": "2025-06-17", + "knowledge": "2023-11", + "release_date": "2023-11-06", + "last_updated": "2024-04-09", "cost": { - "input": 0.3, - "output": 2.5, - "cache_read": 0.075, - "cache_write": 0.55 + "input": 30, + "output": 60 } }, { - "id": "google/gemini-2.5-pro", - "name": "Gemini 2.5 Pro", - "display_name": "Gemini 2.5 Pro", + "id": "o1-pro", + "name": "o1-pro", + "display_name": "o1-pro", "modalities": { "input": [ "text", - "image", - "audio", - "video", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 - }, - "temperature": true, + "context": 200000, + "output": 100000 + }, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, @@ -40387,20 +40415,18 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-06-17", - "last_updated": "2025-06-17", + "knowledge": "2023-09", + "release_date": "2025-03-19", + "last_updated": "2025-03-19", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31, - "cache_write": 2.375 + "input": 150, + "output": 600 } }, { - "id": "openai/gpt-4.1-mini", - "name": "GPT-4.1 Mini", - "display_name": "GPT-4.1 Mini", + "id": "gpt-4o-2024-05-13", + "name": "GPT-4o (2024-05-13)", + "display_name": "GPT-4o (2024-05-13)", "modalities": { "input": [ "text", @@ -40411,8 +40437,8 @@ ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -40421,30 +40447,30 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "knowledge": "2023-09", + "release_date": "2024-05-13", + "last_updated": "2024-05-13", "cost": { - "input": 0.4, - "output": 1.6, - "cache_read": 0.1 + "input": 5, + "output": 15 } }, { - "id": "openai/gpt-5-nano", - "name": "GPT-5 Nano", - "display_name": "GPT-5 Nano", + "id": "gpt-5.1-codex", + "name": "GPT-5.1 Codex", + "display_name": "GPT-5.1 Codex", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 16000, - "output": 4000 + "context": 400000, + "output": 128000 }, "temperature": false, "tool_call": true, @@ -40454,19 +40480,19 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-05-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "knowledge": "2024-09-30", + "release_date": "2025-11-13", + "last_updated": "2025-11-13", "cost": { - "input": 0.05, - "output": 0.4, - "cache_read": 0.01 + "input": 1.25, + "output": 10, + "cache_read": 0.125 } }, { - "id": "openai/gpt-4.1", - "name": "GPT-4.1", - "display_name": "GPT-4.1", + "id": "gpt-4o-2024-08-06", + "name": "GPT-4o (2024-08-06)", + "display_name": "GPT-4o (2024-08-06)", "modalities": { "input": [ "text", @@ -40477,8 +40503,8 @@ ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -40487,19 +40513,19 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "knowledge": "2023-09", + "release_date": "2024-08-06", + "last_updated": "2024-08-06", "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 2.5, + "output": 10, + "cache_read": 1.25 } }, { - "id": "openai/o4-mini", - "name": "o4 Mini", - "display_name": "o4 Mini", + "id": "gpt-4.1-mini", + "name": "GPT-4.1 mini", + "display_name": "GPT-4.1 mini", "modalities": { "input": [ "text", @@ -40510,30 +40536,29 @@ ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 1047576, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2024-06", - "release_date": "2025-04-16", - "last_updated": "2025-04-16", + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.28 + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 } }, { - "id": "openai/gpt-5-mini", - "name": "GPT-5 Mini", - "display_name": "GPT-5 Mini", + "id": "o3-deep-research", + "name": "o3-deep-research", + "display_name": "o3-deep-research", "modalities": { "input": [ "text", @@ -40544,8 +40569,8 @@ ] }, "limit": { - "context": 128000, - "output": 32000 + "context": 200000, + "output": 100000 }, "temperature": false, "tool_call": true, @@ -40555,63 +40580,58 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-05-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "knowledge": "2024-05", + "release_date": "2024-06-26", + "last_updated": "2024-06-26", "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.03 + "input": 10, + "output": 40, + "cache_read": 2.5 } }, { - "id": "openai/gpt-4o-mini", - "name": "GPT-4o Mini", - "display_name": "GPT-4o Mini", + "id": "gpt-3.5-turbo", + "name": "GPT-3.5-turbo", + "display_name": "GPT-3.5-turbo", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 16385, + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-07-18", - "last_updated": "2024-07-18", + "knowledge": "2021-09-01", + "release_date": "2023-03-01", + "last_updated": "2023-11-06", "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.08 + "input": 0.5, + "output": 1.5, + "cache_read": 1.25 } }, { - "id": "openai/gpt-5", - "name": "GPT-5", - "display_name": "GPT-5", + "id": "gpt-5.2-pro", + "name": "GPT-5.2 Pro", + "display_name": "GPT-5.2 Pro", "modalities": { "input": [ "text", - "audio", - "image", - "video" + "image" ], "output": [ - "text", - "audio", - "image" + "text" ] }, "limit": { @@ -40626,106 +40646,129 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "knowledge": "2025-08-31", + "release_date": "2025-12-11", + "last_updated": "2025-12-11", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.13 + "input": 21, + "output": 168 } }, { - "id": "anthropic/claude-opus-4", - "name": "Claude Opus 4", - "display_name": "Claude Opus 4", + "id": "text-embedding-3-large", + "name": "text-embedding-3-large", + "display_name": "text-embedding-3-large", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8191, + "output": 3072 + }, + "temperature": false, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "knowledge": "2024-01", + "release_date": "2024-01-25", + "last_updated": "2024-01-25", + "cost": { + "input": 0.13, + "output": 0 + } + }, + { + "id": "gpt-4-turbo", + "name": "GPT-4 Turbo", + "display_name": "GPT-4 Turbo", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 128000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "knowledge": "2023-12", + "release_date": "2023-11-06", + "last_updated": "2024-04-09", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 10, + "output": 30 } }, { - "id": "anthropic/claude-opus-4-1", - "name": "Claude Opus 4.1", - "display_name": "Claude Opus 4.1", + "id": "o1-preview", + "name": "o1-preview", + "display_name": "o1-preview", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 128000, + "output": 32768 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2023-09", + "release_date": "2024-09-12", + "last_updated": "2024-09-12", "cost": { "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "output": 60, + "cache_read": 7.5 } }, { - "id": "anthropic/claude-haiku-4-5", - "name": "Claude Haiku 4.5", - "display_name": "Claude Haiku 4.5", + "id": "gpt-5.1-codex-mini", + "name": "GPT-5.1 Codex mini", + "display_name": "GPT-5.1 Codex mini", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ - "text" + "text", + "image" ] }, "limit": { - "context": 200000, - "output": 62000 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, @@ -40733,25 +40776,22 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-02-01", - "release_date": "2025-10-15", - "last_updated": "2025-10-15", + "knowledge": "2024-09-30", + "release_date": "2025-11-13", + "last_updated": "2025-11-13", "cost": { - "input": 1, - "output": 5, - "cache_read": 0.1, - "cache_write": 1.25 + "input": 0.25, + "output": 2, + "cache_read": 0.025 } }, { - "id": "anthropic/claude-opus-4-5", - "name": "Claude Opus 4.5", - "display_name": "Claude Opus 4.5", + "id": "o3-mini", + "name": "o3-mini", + "display_name": "o3-mini", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" @@ -40759,45 +40799,43 @@ }, "limit": { "context": 200000, - "output": 64000 + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-11-24", - "last_updated": "2025-11-24", + "knowledge": "2024-05", + "release_date": "2024-12-20", + "last_updated": "2025-01-29", "cost": { - "input": 5, - "output": 25, - "cache_read": 0.5, - "cache_write": 6.25 + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 } }, { - "id": "anthropic/claude-sonnet-4-5", - "name": "Claude Sonnet 4.5", - "display_name": "Claude Sonnet 4.5", + "id": "gpt-5.2-chat-latest", + "name": "GPT-5.2 Chat", + "display_name": "GPT-5.2 Chat", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 64000 + "context": 128000, + "output": 16384 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, @@ -40805,35 +40843,33 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-07-31", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "knowledge": "2025-08-31", + "release_date": "2025-12-11", + "last_updated": "2025-12-11", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 1.75, + "output": 14, + "cache_read": 0.175 } }, { - "id": "anthropic/claude-3-7-sonnet", - "name": "Claude Sonnet 3.7", - "display_name": "Claude Sonnet 3.7", + "id": "gpt-5.1", + "name": "GPT-5.1", + "display_name": "GPT-5.1", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, @@ -40841,25 +40877,22 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-01", - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "knowledge": "2024-09-30", + "release_date": "2025-11-13", + "last_updated": "2025-11-13", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 1.25, + "output": 10, + "cache_read": 0.13 } }, { - "id": "anthropic/claude-sonnet-4", - "name": "Claude Sonnet 4", - "display_name": "Claude Sonnet 4", + "id": "codex-mini-latest", + "name": "Codex Mini", + "display_name": "Codex Mini", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" @@ -40867,9 +40900,9 @@ }, "limit": { "context": 200000, - "output": 64000 + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, @@ -40877,317 +40910,333 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "knowledge": "2024-04", + "release_date": "2025-05-16", + "last_updated": "2025-05-16", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 1.5, + "output": 6, + "cache_read": 0.375 } - } - ] - }, - "morph": { - "id": "morph", - "name": "Morph", - "display_name": "Morph", - "api": "https://api.morphllm.com/v1", - "doc": "https://docs.morphllm.com/api-reference/introduction", - "models": [ + }, { - "id": "morph-v3-large", - "name": "Morph v3 Large", - "display_name": "Morph v3 Large", + "id": "gpt-5-nano", + "name": "GPT-5 Nano", + "display_name": "GPT-5 Nano", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 32000, - "output": 32000 + "context": 400000, + "output": 128000 }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-08-15", - "last_updated": "2024-08-15", + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 0.9, - "output": 1.9 + "input": 0.05, + "output": 0.4, + "cache_read": 0.01 } }, { - "id": "auto", - "name": "Auto", - "display_name": "Auto", + "id": "gpt-5-codex", + "name": "GPT-5-Codex", + "display_name": "GPT-5-Codex", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 32000, - "output": 32000 + "context": 400000, + "output": 128000 }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": false, - "release_date": "2024-06-01", - "last_updated": "2024-06-01", + "knowledge": "2024-09-30", + "release_date": "2025-09-15", + "last_updated": "2025-09-15", "cost": { - "input": 0.85, - "output": 1.55 + "input": 1.25, + "output": 10, + "cache_read": 0.125 } }, { - "id": "morph-v3-fast", - "name": "Morph v3 Fast", - "display_name": "Morph v3 Fast", + "id": "gpt-4o", + "name": "GPT-4o", + "display_name": "GPT-4o", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 16000, - "output": 16000 + "context": 128000, + "output": 16384 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-08-15", - "last_updated": "2024-08-15", + "knowledge": "2023-09", + "release_date": "2024-05-13", + "last_updated": "2024-08-06", "cost": { - "input": 0.8, - "output": 1.2 + "input": 2.5, + "output": 10, + "cache_read": 1.25 } - } - ] - }, - "lmstudio": { - "id": "lmstudio", - "name": "LMStudio", - "display_name": "LMStudio", - "api": "http://127.0.0.1:1234/v1", - "doc": "https://lmstudio.ai/models", - "models": [ + }, { - "id": "openai/gpt-oss-20b", - "name": "GPT OSS 20B", - "display_name": "GPT OSS 20B", + "id": "gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, + "context": 1047576, "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0, - "output": 0 + "input": 2, + "output": 8, + "cache_read": 0.5 } }, { - "id": "qwen/qwen3-30b-a3b-2507", - "name": "Qwen3 30B A3B 2507", - "display_name": "Qwen3 30B A3B 2507", + "id": "o4-mini", + "name": "o4-mini", + "display_name": "o4-mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 16384 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-30", - "last_updated": "2025-07-30", + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", "cost": { - "input": 0, - "output": 0 + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 } }, { - "id": "qwen/qwen3-coder-30b", - "name": "Qwen3 Coder 30B", - "display_name": "Qwen3 Coder 30B", + "id": "o1", + "name": "o1", + "display_name": "o1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 65536 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-23", - "last_updated": "2025-07-23", + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-12-05", + "last_updated": "2024-12-05", "cost": { - "input": 0, - "output": 0 + "input": 15, + "output": 60, + "cache_read": 7.5 } - } - ] - }, - "sap-ai-core": { - "id": "sap-ai-core", - "name": "SAP AI Core", - "display_name": "SAP AI Core", - "doc": "https://help.sap.com/docs/sap-ai-core", - "models": [ + }, { - "id": "anthropic--claude-3.5-sonnet", - "name": "anthropic--claude-3.5-sonnet", - "display_name": "anthropic--claude-3.5-sonnet", + "id": "gpt-5-mini", + "name": "GPT-5 Mini", + "display_name": "GPT-5 Mini", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-04-30", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.25, + "output": 2, + "cache_read": 0.03 } }, { - "id": "anthropic--claude-4-opus", - "name": "anthropic--claude-4-opus", - "display_name": "anthropic--claude-4-opus", + "id": "o1-mini", + "name": "o1-mini", + "display_name": "o1-mini", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 128000, + "output": 65536 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-01-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "knowledge": "2023-09", + "release_date": "2024-09-12", + "last_updated": "2024-09-12", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 } }, { - "id": "gemini-2.5-flash", - "name": "gemini-2.5-flash", - "display_name": "gemini-2.5-flash", + "id": "text-embedding-ada-002", + "name": "text-embedding-ada-002", + "display_name": "text-embedding-ada-002", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 1536 + }, + "temperature": false, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "knowledge": "2022-12", + "release_date": "2022-12-15", + "last_updated": "2022-12-15", + "cost": { + "input": 0.1, + "output": 0 + } + }, + { + "id": "o3-pro", + "name": "o3-pro", + "display_name": "o3-pro", "modalities": { "input": [ "text", - "image", - "audio", - "video", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, @@ -41195,33 +41244,30 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-03-25", - "last_updated": "2025-06-05", + "knowledge": "2024-05", + "release_date": "2025-06-10", + "last_updated": "2025-06-10", "cost": { - "input": 0.3, - "output": 2.5, - "cache_read": 0.075, - "input_audio": 1 + "input": 20, + "output": 80 } }, { - "id": "anthropic--claude-3-haiku", - "name": "anthropic--claude-3-haiku", - "display_name": "anthropic--claude-3-haiku", + "id": "gpt-4o-2024-11-20", + "name": "GPT-4o (2024-11-20)", + "display_name": "GPT-4o (2024-11-20)", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 4096 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -41230,53 +41276,53 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2023-08-31", - "release_date": "2024-03-13", - "last_updated": "2024-03-13", + "knowledge": "2023-09", + "release_date": "2024-11-20", + "last_updated": "2024-11-20", "cost": { - "input": 0.25, - "output": 1.25, - "cache_read": 0.03, - "cache_write": 0.3 + "input": 2.5, + "output": 10, + "cache_read": 1.25 } }, { - "id": "anthropic--claude-3-sonnet", - "name": "anthropic--claude-3-sonnet", - "display_name": "anthropic--claude-3-sonnet", + "id": "gpt-5.1-codex-max", + "name": "GPT-5.1 Codex Max", + "display_name": "GPT-5.1 Codex Max", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 4096 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2023-08-31", - "release_date": "2024-03-04", - "last_updated": "2024-03-04", + "knowledge": "2024-09-30", + "release_date": "2025-11-13", + "last_updated": "2025-11-13", "cost": { - "input": 3, - "output": 15 + "input": 1.25, + "output": 10, + "cache_read": 0.125 } }, { - "id": "gpt-5-nano", - "name": "gpt-5-nano", - "display_name": "gpt-5-nano", + "id": "o3", + "name": "o3", + "display_name": "o3", "modalities": { "input": [ "text", @@ -41287,8 +41333,8 @@ ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 200000, + "output": 100000 }, "temperature": false, "tool_call": true, @@ -41298,24 +41344,23 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-05-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", "cost": { - "input": 0.05, - "output": 0.4, - "cache_read": 0.01 + "input": 2, + "output": 8, + "cache_read": 0.5 } }, { - "id": "anthropic--claude-3.7-sonnet", - "name": "anthropic--claude-3.7-sonnet", - "display_name": "anthropic--claude-3.7-sonnet", + "id": "o4-mini-deep-research", + "name": "o4-mini-deep-research", + "display_name": "o4-mini-deep-research", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" @@ -41323,9 +41368,9 @@ }, "limit": { "context": 200000, - "output": 64000 + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, @@ -41333,20 +41378,19 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-10-31", - "release_date": "2025-02-24", - "last_updated": "2025-02-24", + "knowledge": "2024-05", + "release_date": "2024-06-26", + "last_updated": "2024-06-26", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 2, + "output": 8, + "cache_read": 0.5 } }, { - "id": "gpt-5-mini", - "name": "gpt-5-mini", - "display_name": "gpt-5-mini", + "id": "gpt-5-chat-latest", + "name": "GPT-5 Chat (latest)", + "display_name": "GPT-5 Chat (latest)", "modalities": { "input": [ "text", @@ -41360,80 +41404,73 @@ "context": 400000, "output": 128000 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": true, "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-05-30", + "knowledge": "2024-09-30", "release_date": "2025-08-07", "last_updated": "2025-08-07", "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.03 + "input": 1.25, + "output": 10 } }, { - "id": "anthropic--claude-4.5-sonnet", - "name": "anthropic--claude-4.5-sonnet", - "display_name": "anthropic--claude-4.5-sonnet", + "id": "gpt-4o-mini", + "name": "GPT-4o mini", + "display_name": "GPT-4o mini", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 128000, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-01-31", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "knowledge": "2023-09", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.15, + "output": 0.6, + "cache_read": 0.08 } }, { - "id": "gemini-2.5-pro", - "name": "gemini-2.5-pro", - "display_name": "gemini-2.5-pro", + "id": "gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", "modalities": { "input": [ "text", - "image", - "audio", - "video", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, @@ -41441,67 +41478,66 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-03-25", - "last_updated": "2025-06-05", + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { "input": 1.25, "output": 10, - "cache_read": 0.31 + "cache_read": 0.13 } }, { - "id": "anthropic--claude-3-opus", - "name": "anthropic--claude-3-opus", - "display_name": "anthropic--claude-3-opus", + "id": "gpt-5-pro", + "name": "GPT-5 Pro", + "display_name": "GPT-5 Pro", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 4096 + "context": 400000, + "output": 272000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2023-08-31", - "release_date": "2024-02-29", - "last_updated": "2024-02-29", + "knowledge": "2024-09-30", + "release_date": "2025-10-06", + "last_updated": "2025-10-06", "cost": { "input": 15, - "output": 75 + "output": 120 } }, { - "id": "anthropic--claude-4-sonnet", - "name": "anthropic--claude-4-sonnet", - "display_name": "anthropic--claude-4-sonnet", + "id": "gpt-5.2", + "name": "GPT-5.2", + "display_name": "GPT-5.2", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, @@ -41509,20 +41545,19 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-01-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "knowledge": "2025-08-31", + "release_date": "2025-12-11", + "last_updated": "2025-12-11", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 1.75, + "output": 14, + "cache_read": 0.175 } }, { - "id": "gpt-5", - "name": "gpt-5", - "display_name": "gpt-5", + "id": "gpt-5.1-chat-latest", + "name": "GPT-5.1 Chat", + "display_name": "GPT-5.1 Chat", "modalities": { "input": [ "text", @@ -41533,8 +41568,8 @@ ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 128000, + "output": 16384 }, "temperature": false, "tool_call": true, @@ -41545,39 +41580,40 @@ "attachment": true, "open_weights": false, "knowledge": "2024-09-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "release_date": "2025-11-13", + "last_updated": "2025-11-13", "cost": { "input": 1.25, "output": 10, - "cache_read": 0.13 + "cache_read": 0.125 } } ] }, - "anthropic": { - "id": "anthropic", - "name": "Anthropic", - "display_name": "Anthropic", - "doc": "https://docs.anthropic.com/en/docs/about-claude/models", + "zhipuai-coding-plan": { + "id": "zhipuai-coding-plan", + "name": "Zhipu AI Coding Plan", + "display_name": "Zhipu AI Coding Plan", + "api": "https://open.bigmodel.cn/api/coding/paas/v4", + "doc": "https://docs.bigmodel.cn/cn/coding-plan/overview", "models": [ { - "id": "claude-opus-4-0", - "name": "Claude Opus 4 (latest)", - "display_name": "Claude Opus 4 (latest)", + "id": "glm-4.6v-flash", + "name": "GLM-4.6V-Flash", + "display_name": "GLM-4.6V-Flash", "modalities": { "input": [ "text", "image", - "pdf" + "video" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -41586,69 +41622,64 @@ "default": true }, "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-12-08", + "last_updated": "2025-12-08", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0, + "output": 0 } }, { - "id": "claude-3-5-sonnet-20241022", - "name": "Claude Sonnet 3.5 v2", - "display_name": "Claude Sonnet 3.5 v2", + "id": "glm-4.6v", + "name": "GLM-4.6V", + "display_name": "GLM-4.6V", "modalities": { "input": [ "text", "image", - "pdf" + "video" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, - "open_weights": false, - "knowledge": "2024-04-30", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-12-08", + "last_updated": "2025-12-08", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0, + "output": 0 } }, { - "id": "claude-opus-4-1", - "name": "Claude Opus 4.1 (latest)", - "display_name": "Claude Opus 4.1 (latest)", + "id": "glm-4.6", + "name": "GLM-4.6", + "display_name": "GLM-4.6", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 204800, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -41656,35 +41687,35 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-30", + "last_updated": "2025-09-30", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 } }, { - "id": "claude-haiku-4-5", - "name": "Claude Haiku 4.5 (latest)", - "display_name": "Claude Haiku 4.5 (latest)", + "id": "glm-4.5v", + "name": "GLM-4.5V", + "display_name": "GLM-4.5V", "modalities": { "input": [ "text", "image", - "pdf" + "video" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 64000, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -41693,104 +41724,98 @@ "default": true }, "attachment": true, - "open_weights": false, - "knowledge": "2025-02-28", - "release_date": "2025-10-15", - "last_updated": "2025-10-15", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-08-11", + "last_updated": "2025-08-11", "cost": { - "input": 1, - "output": 5, - "cache_read": 0.1, - "cache_write": 1.25 + "input": 0, + "output": 0 } }, { - "id": "claude-3-5-sonnet-20240620", - "name": "Claude Sonnet 3.5", - "display_name": "Claude Sonnet 3.5", + "id": "glm-4.5-air", + "name": "GLM-4.5-Air", + "display_name": "GLM-4.5-Air", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 131072, + "output": 98304 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04-30", - "release_date": "2024-06-20", - "last_updated": "2024-06-20", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 } }, { - "id": "claude-3-5-haiku-latest", - "name": "Claude Haiku 3.5 (latest)", - "display_name": "Claude Haiku 3.5 (latest)", + "id": "glm-4.5", + "name": "GLM-4.5", + "display_name": "GLM-4.5", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 131072, + "output": 98304 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-07-31", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 0.8, - "output": 4, - "cache_read": 0.08, - "cache_write": 1 + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 } }, { - "id": "claude-opus-4-5", - "name": "Claude Opus 4.5 (latest)", - "display_name": "Claude Opus 4.5 (latest)", + "id": "glm-4.5-flash", + "name": "GLM-4.5-Flash", + "display_name": "GLM-4.5-Flash", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 131072, + "output": 98304 }, "temperature": true, "tool_call": true, @@ -41798,70 +41823,76 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-11-24", - "last_updated": "2025-11-24", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 5, - "output": 25, - "cache_read": 0.5, - "cache_write": 6.25 + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 } }, { - "id": "claude-3-opus-20240229", - "name": "Claude Opus 3", - "display_name": "Claude Opus 3", + "id": "glm-4.7", + "name": "GLM-4.7", + "display_name": "GLM-4.7", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 4096 + "context": 204800, + "output": 131072 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-08-31", - "release_date": "2024-02-29", - "last_updated": "2024-02-29", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-12-22", + "last_updated": "2025-12-22", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 } - }, + } + ] + }, + "minimax-cn": { + "id": "minimax-cn", + "name": "MiniMax (China)", + "display_name": "MiniMax (China)", + "api": "https://api.minimaxi.com/anthropic/v1", + "doc": "https://platform.minimaxi.com/docs/guides/quickstart", + "models": [ { - "id": "claude-opus-4-5-20251101", - "name": "Claude Opus 4.5", - "display_name": "Claude Opus 4.5", + "id": "MiniMax-M2.1", + "name": "MiniMax-M2.1", + "display_name": "MiniMax-M2.1", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 204800, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -41869,35 +41900,30 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-11-01", - "last_updated": "2025-11-01", + "attachment": false, + "open_weights": true, + "release_date": "2025-12-23", + "last_updated": "2025-12-23", "cost": { - "input": 5, - "output": 25, - "cache_read": 0.5, - "cache_write": 6.25 + "input": 0.3, + "output": 1.2 } }, { - "id": "claude-sonnet-4-5", - "name": "Claude Sonnet 4.5 (latest)", - "display_name": "Claude Sonnet 4.5 (latest)", + "id": "MiniMax-M2", + "name": "MiniMax-M2", + "display_name": "MiniMax-M2", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 196608, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -41905,99 +41931,94 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-07-31", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "attachment": false, + "open_weights": true, + "release_date": "2025-10-27", + "last_updated": "2025-10-27", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.3, + "output": 1.2 } - }, + } + ] + }, + "perplexity": { + "id": "perplexity", + "name": "Perplexity", + "display_name": "Perplexity", + "doc": "https://docs.perplexity.ai", + "models": [ { - "id": "claude-sonnet-4-5-20250929", - "name": "Claude Sonnet 4.5", - "display_name": "Claude Sonnet 4.5", + "id": "sonar-reasoning", + "name": "Sonar Reasoning", + "display_name": "Sonar Reasoning", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 128000, + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-07-31", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "knowledge": "2025-09-01", + "release_date": "2024-01-01", + "last_updated": "2025-09-01", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 1, + "output": 5 } }, { - "id": "claude-sonnet-4-20250514", - "name": "Claude Sonnet 4", - "display_name": "Claude Sonnet 4", + "id": "sonar", + "name": "Sonar", + "display_name": "Sonar", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 128000, + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "knowledge": "2025-09-01", + "release_date": "2024-01-01", + "last_updated": "2025-09-01", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 1, + "output": 1 } }, { - "id": "claude-opus-4-20250514", - "name": "Claude Opus 4", - "display_name": "Claude Opus 4", + "id": "sonar-pro", + "name": "Sonar Pro", + "display_name": "Sonar Pro", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" @@ -42005,149 +42026,145 @@ }, "limit": { "context": 200000, - "output": 32000 + "output": 8192 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "knowledge": "2025-09-01", + "release_date": "2024-01-01", + "last_updated": "2025-09-01", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 3, + "output": 15 } }, { - "id": "claude-3-5-haiku-20241022", - "name": "Claude Haiku 3.5", - "display_name": "Claude Haiku 3.5", + "id": "sonar-reasoning-pro", + "name": "Sonar Reasoning Pro", + "display_name": "Sonar Reasoning Pro", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 128000, + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-07-31", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "knowledge": "2025-09-01", + "release_date": "2024-01-01", + "last_updated": "2025-09-01", "cost": { - "input": 0.8, - "output": 4, - "cache_read": 0.08, - "cache_write": 1 + "input": 2, + "output": 8 } - }, + } + ] + }, + "zenmux": { + "id": "zenmux", + "name": "zenmux", + "display_name": "zenmux", + "api": "https://zenmux.ai/api/v1", + "doc": "https://docs.zenmux.ai", + "models": [ { - "id": "claude-3-haiku-20240307", - "name": "Claude Haiku 3", - "display_name": "Claude Haiku 3", + "id": "moonshotai/kimi-k2-thinking-turbo", + "name": "Kimi K2 Thinking Turbo", + "display_name": "Kimi K2 Thinking Turbo", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 4096 + "context": 262144, + "output": 262144 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2023-08-31", - "release_date": "2024-03-13", - "last_updated": "2024-03-13", + "knowledge": "2025-11", + "release_date": "2025-11-06", + "last_updated": "2025-11-06", "cost": { - "input": 0.25, - "output": 1.25, - "cache_read": 0.03, - "cache_write": 0.3 + "input": 1.15, + "output": 8 } }, { - "id": "claude-3-7-sonnet-20250219", - "name": "Claude Sonnet 3.7", - "display_name": "Claude Sonnet 3.7", + "id": "moonshotai/kimi-k2-0905", + "name": "MoonshotAI: Kimi K2 0905", + "display_name": "MoonshotAI: Kimi K2 0905", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 262144, + "output": 262144 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-10-31", - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "knowledge": "2024-10", + "release_date": "2025-09-04", + "last_updated": "2025-09-04", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 - } + "input": 0.6, + "output": 2.5, + "cache_read": 0.15 + }, + "type": "chat" }, { - "id": "claude-3-7-sonnet-latest", - "name": "Claude Sonnet 3.7 (latest)", - "display_name": "Claude Sonnet 3.7 (latest)", + "id": "moonshotai/kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 262144, + "output": 262144 }, "temperature": true, "tool_call": true, @@ -42155,35 +42172,31 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-10-31", - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "knowledge": "2025-11", + "release_date": "2025-11-06", + "last_updated": "2025-11-06", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.6, + "output": 2.5 } }, { - "id": "claude-sonnet-4-0", - "name": "Claude Sonnet 4 (latest)", - "display_name": "Claude Sonnet 4 (latest)", + "id": "xiaomi/mimo-v2-flash", + "name": "MiMo-V2-Flash", + "display_name": "MiMo-V2-Flash", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 256000, + "output": 32000 }, "temperature": true, "tool_call": true, @@ -42191,106 +42204,98 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "attachment": false, + "open_weights": true, + "knowledge": "2024-12-01", + "release_date": "2025-12-17", + "last_updated": "2025-12-17", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.07, + "output": 0.21 } }, { - "id": "claude-opus-4-1-20250805", - "name": "Claude Opus 4.1", - "display_name": "Claude Opus 4.1", + "id": "x-ai/grok-4-fast-non-reasoning", + "name": "Grok 4 Fast (Non-Reasoning)", + "display_name": "Grok 4 Fast (Non-Reasoning)", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 2000000, + "output": 30000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2025-07", + "release_date": "2025-09-19", + "last_updated": "2025-09-19", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 } }, { - "id": "claude-3-sonnet-20240229", - "name": "Claude Sonnet 3", - "display_name": "Claude Sonnet 3", + "id": "x-ai/grok-4", + "name": "Grok 4", + "display_name": "Grok 4", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 4096 + "context": 256000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2023-08-31", - "release_date": "2024-03-04", - "last_updated": "2024-03-04", + "knowledge": "2025-07", + "release_date": "2025-07-09", + "last_updated": "2025-07-09", "cost": { "input": 3, "output": 15, - "cache_read": 0.3, - "cache_write": 0.3 + "cache_read": 0.75, + "reasoning": 15 } }, { - "id": "claude-haiku-4-5-20251001", - "name": "Claude Haiku 4.5", - "display_name": "Claude Haiku 4.5", + "id": "x-ai/grok-code-fast-1", + "name": "Grok Code Fast 1", + "display_name": "Grok Code Fast 1", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 256000, + "output": 10000 }, "temperature": true, "tool_call": true, @@ -42298,42 +42303,33 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-02-28", - "release_date": "2025-10-15", - "last_updated": "2025-10-15", + "knowledge": "2023-10", + "release_date": "2025-08-28", + "last_updated": "2025-08-28", "cost": { - "input": 1, - "output": 5, - "cache_read": 0.1, - "cache_write": 1.25 + "input": 0.2, + "output": 1.5, + "cache_read": 0.02 } - } - ] - }, - "fireworks-ai": { - "id": "fireworks-ai", - "name": "Fireworks AI", - "display_name": "Fireworks AI", - "api": "https://api.fireworks.ai/inference/v1/", - "doc": "https://fireworks.ai/docs/", - "models": [ + }, { - "id": "accounts/fireworks/models/deepseek-r1-0528", - "name": "Deepseek R1 05/28", - "display_name": "Deepseek R1 05/28", + "id": "x-ai/grok-4-fast", + "name": "Grok 4 Fast", + "display_name": "Grok 4 Fast", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 160000, - "output": 16384 + "context": 2000000, + "output": 30000 }, "temperature": true, "tool_call": true, @@ -42341,20 +42337,21 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-05", - "release_date": "2025-05-28", - "last_updated": "2025-05-28", + "attachment": true, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-09-19", + "last_updated": "2025-09-19", "cost": { - "input": 3, - "output": 8 + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 } }, { - "id": "accounts/fireworks/models/deepseek-v3p1", - "name": "DeepSeek V3.1", - "display_name": "DeepSeek V3.1", + "id": "deepseek/deepseek-chat", + "name": "DeepSeek: DeepSeek V3", + "display_name": "DeepSeek: DeepSeek V3", "modalities": { "input": [ "text" @@ -42370,23 +42367,24 @@ "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, "knowledge": "2025-07", - "release_date": "2025-08-21", - "last_updated": "2025-08-21", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "cost": { "input": 0.56, - "output": 1.68 - } + "output": 1.68, + "cache_read": 0.07 + }, + "type": "chat" }, { - "id": "accounts/fireworks/models/minimax-m2", - "name": "MiniMax-M2", - "display_name": "MiniMax-M2", + "id": "minimax/minimax-m2", + "name": "MiniMax M2", + "display_name": "MiniMax M2", "modalities": { "input": [ "text" @@ -42396,8 +42394,8 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 204800, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -42406,8 +42404,8 @@ "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2024-11", + "open_weights": false, + "knowledge": "2025-10", "release_date": "2025-10-27", "last_updated": "2025-10-27", "cost": { @@ -42416,51 +42414,58 @@ } }, { - "id": "accounts/fireworks/models/deepseek-v3-0324", - "name": "Deepseek V3 03-24", - "display_name": "Deepseek V3 03-24", + "id": "google/gemini-2.5-pro", + "name": "Google: Gemini 2.5 Pro", + "display_name": "Google: Gemini 2.5 Pro", "modalities": { "input": [ - "text" + "image", + "text", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 160000, - "output": 16384 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-10", - "release_date": "2025-03-24", - "last_updated": "2025-03-24", + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05", "cost": { - "input": 0.9, - "output": 0.9 - } + "input": 1.25, + "output": 10, + "cache_read": 0.31, + "cache_write": 4.5 + }, + "type": "imageGeneration" }, { - "id": "accounts/fireworks/models/kimi-k2-thinking", - "name": "Kimi K2 Thinking", - "display_name": "Kimi K2 Thinking", + "id": "openai/gpt-5-codex", + "name": "GPT-5 Codex", + "display_name": "GPT-5 Codex", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 16384 + "context": 400000, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -42468,50 +42473,56 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "release_date": "2025-11-06", - "last_updated": "2025-11-06", + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-01", + "release_date": "2025-09-23", + "last_updated": "2025-09-23", "cost": { - "input": 0.6, - "output": 2.5 + "input": 1.25, + "output": 10, + "cache_read": 0.125 } }, { - "id": "accounts/fireworks/models/kimi-k2-instruct", - "name": "Kimi K2 Instruct", - "display_name": "Kimi K2 Instruct", + "id": "openai/gpt-5", + "name": "gpt-5", + "display_name": "gpt-5", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 272000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-10", - "release_date": "2025-07-11", - "last_updated": "2025-07-11", + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 1, - "output": 3 - } + "input": 1.25, + "output": 10, + "cache_read": 0.13 + }, + "type": "chat" }, { - "id": "accounts/fireworks/models/qwen3-235b-a22b", - "name": "Qwen3 235B-A22B", - "display_name": "Qwen3 235B-A22B", + "id": "inclusionai/ring-1t", + "name": "inclusionAI: Ring 1T", + "display_name": "inclusionAI: Ring 1T", "modalities": { "input": [ "text" @@ -42521,8 +42532,8 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -42532,18 +42543,20 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-04-29", - "last_updated": "2025-04-29", + "knowledge": "2025-10", + "release_date": "2025-10-12", + "last_updated": "2025-10-12", "cost": { - "input": 0.22, - "output": 0.88 - } + "input": 0.56, + "output": 2.24, + "cache_read": 0.112 + }, + "type": "chat" }, { - "id": "accounts/fireworks/models/gpt-oss-20b", - "name": "GPT OSS 20B", - "display_name": "GPT OSS 20B", + "id": "inclusionai/lint-1t", + "name": "Ling-1T", + "display_name": "Ling-1T", "modalities": { "input": [ "text" @@ -42553,8 +42566,8 @@ ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 128000, + "output": 32000 }, "temperature": true, "tool_call": true, @@ -42564,17 +42577,19 @@ }, "attachment": false, "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2025-10", + "release_date": "2025-10-09", + "last_updated": "2025-10-09", "cost": { - "input": 0.05, - "output": 0.2 + "input": 0.56, + "output": 2.24, + "cache_read": 0.112 } }, { - "id": "accounts/fireworks/models/gpt-oss-120b", - "name": "GPT OSS 120B", - "display_name": "GPT OSS 120B", + "id": "z-ai/glm-4.5-air", + "name": "GLM-4.5-Air", + "display_name": "GLM-4.5-Air", "modalities": { "input": [ "text" @@ -42585,7 +42600,7 @@ }, "limit": { "context": 131072, - "output": 32768 + "output": 98304 }, "temperature": true, "tool_call": true, @@ -42595,17 +42610,20 @@ }, "attachment": false, "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 0.15, - "output": 0.6 + "input": 0.2, + "output": 1.1, + "cache_read": 0.03, + "cache_write": 0 } }, { - "id": "accounts/fireworks/models/glm-4p5-air", - "name": "GLM 4.5 Air", - "display_name": "GLM 4.5 Air", + "id": "z-ai/glm-4.6", + "name": "GLM-4.6", + "display_name": "GLM-4.6", "modalities": { "input": [ "text" @@ -42615,7 +42633,7 @@ ] }, "limit": { - "context": 131072, + "context": 204800, "output": 131072 }, "temperature": true, @@ -42627,17 +42645,19 @@ "attachment": false, "open_weights": true, "knowledge": "2025-04", - "release_date": "2025-08-01", - "last_updated": "2025-08-01", + "release_date": "2025-09-30", + "last_updated": "2025-09-30", "cost": { - "input": 0.22, - "output": 0.88 + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 } }, { - "id": "accounts/fireworks/models/qwen3-coder-480b-a35b-instruct", - "name": "Qwen3 Coder 480B A35B Instruct", - "display_name": "Qwen3 Coder 480B A35B Instruct", + "id": "qwen/qwen3-coder-plus", + "name": "Qwen: Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen: Qwen3 Coder 480B A35B Instruct", "modalities": { "input": [ "text" @@ -42647,27 +42667,30 @@ ] }, "limit": { - "context": 256000, - "output": 32768 + "context": 4096, + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2025-07-22", - "last_updated": "2025-07-22", + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", "cost": { - "input": 0.45, - "output": 1.8 + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 } }, { - "id": "accounts/fireworks/models/glm-4p5", - "name": "GLM 4.5", - "display_name": "GLM 4.5", + "id": "kuaishou/kat-coder-pro-v1", + "name": "KAT-Coder-Pro-V1", + "display_name": "KAT-Coder-Pro-V1", "modalities": { "input": [ "text" @@ -42677,8 +42700,8 @@ ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 256000, + "output": 32000 }, "temperature": true, "tool_call": true, @@ -42687,133 +42710,126 @@ "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-29", - "last_updated": "2025-07-29", + "open_weights": false, + "knowledge": "2025-01-01", + "release_date": "2025-10-23", + "last_updated": "2025-10-23", "cost": { - "input": 0.55, - "output": 2.19 + "input": 0.6, + "output": 2.4, + "cache_read": 0.12 } - } - ] - }, - "io-net": { - "id": "io-net", - "name": "IO.NET", - "display_name": "IO.NET", - "api": "https://api.intelligence.io.solutions/api/v1", - "doc": "https://io.net/docs/guides/intelligence/io-intelligence", - "models": [ + }, { - "id": "openai/gpt-oss-20b", - "name": "GPT-OSS 20B", - "display_name": "GPT-OSS 20B", + "id": "anthropic/claude-haiku-4.5", + "name": "Claude Haiku 4.5", + "display_name": "Claude Haiku 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 64000, - "output": 4096 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-10", - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "attachment": true, + "open_weights": false, + "knowledge": "2025-02-28", + "release_date": "2025-10-15", + "last_updated": "2025-10-15", "cost": { - "input": 0.03, - "output": 0.14, - "cache_read": 0.015, - "cache_write": 0.06 + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 } }, { - "id": "openai/gpt-oss-120b", - "name": "GPT-OSS 120B", - "display_name": "GPT-OSS 120B", + "id": "anthropic/claude-opus-4.1", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 4096 + "context": 200000, + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-10", - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0.04, - "output": 0.4, - "cache_read": 0.02, - "cache_write": 0.08 + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } - } - ] - }, - "azure-cognitive-services": { - "id": "azure-cognitive-services", - "name": "Azure Cognitive Services", - "display_name": "Azure Cognitive Services", - "doc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - "models": [ + }, { - "id": "gpt-3.5-turbo-1106", - "name": "GPT-3.5 Turbo 1106", - "display_name": "GPT-3.5 Turbo 1106", + "id": "anthropic/claude-sonnet-4.5", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 16384, - "output": 16384 + "context": 200000, + "output": 64000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2021-08", - "release_date": "2023-11-06", - "last_updated": "2023-11-06", + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "cost": { - "input": 1, - "output": 2 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "mistral-small-2503", - "name": "Mistral Small 3.1", - "display_name": "Mistral Small 3.1", + "id": "anthropic/claude-3.5-haiku", + "name": "Claude Haiku 3.5", + "display_name": "Claude Haiku 3.5", "modalities": { "input": [ "text", @@ -42824,8 +42840,8 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 200000, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -42834,80 +42850,89 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-09", - "release_date": "2025-03-01", - "last_updated": "2025-03-01", + "knowledge": "2024-07-31", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { - "input": 0.1, - "output": 0.3 + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 } }, { - "id": "codestral-2501", - "name": "Codestral 25.01", - "display_name": "Codestral 25.01", + "id": "anthropic/claude-3.5-sonnet", + "name": "Claude Sonnet 3.5 v2", + "display_name": "Claude Sonnet 3.5 v2", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 200000, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-03", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2024-04-30", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { - "input": 0.3, - "output": 0.9 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "mistral-large-2411", - "name": "Mistral Large 24.11", - "display_name": "Mistral Large 24.11", + "id": "anthropic/claude-3.7-sonnet", + "name": "Claude Sonnet 3.7", + "display_name": "Claude Sonnet 3.7", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-09", - "release_date": "2024-11-01", - "last_updated": "2024-11-01", + "knowledge": "2024-10-31", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", "cost": { - "input": 2, - "output": 6 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "gpt-5-pro", - "name": "GPT-5 Pro", - "display_name": "GPT-5 Pro", + "id": "anthropic/claude-opus-4", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", "modalities": { "input": [ "text", @@ -42918,10 +42943,10 @@ ] }, "limit": { - "context": 400000, - "output": 272000 + "context": 200000, + "output": 32000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -42929,29 +42954,32 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-10-06", - "last_updated": "2025-10-06", + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { "input": 15, - "output": 120 + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } }, { - "id": "deepseek-v3.2", - "name": "DeepSeek-V3.2", - "display_name": "DeepSeek-V3.2", + "id": "anthropic/claude-sonnet-4", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, @@ -42959,21 +42987,22 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-12-01", - "last_updated": "2025-12-01", + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { - "input": 0.28, - "output": 0.42, - "cache_read": 0.028 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "mai-ds-r1", - "name": "MAI-DS-R1", - "display_name": "MAI-DS-R1", + "id": "deepseek/deepseek-chat-v3.1", + "name": "DeepSeek: DeepSeek V3.1", + "display_name": "DeepSeek: DeepSeek V3.1", "modalities": { "input": [ "text" @@ -42983,192 +43012,145 @@ ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 131072, + "output": 32768 }, - "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-06", - "release_date": "2025-01-20", - "last_updated": "2025-01-20", - "cost": { - "input": 1.35, - "output": 5.4 - } + "type": "chat" }, { - "id": "gpt-5", - "name": "GPT-5", - "display_name": "GPT-5", + "id": "deepseek/deepseek-r1-0528", + "name": "DeepSeek: R1 0528", + "display_name": "DeepSeek: R1 0528", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 272000, - "output": 128000 + "context": 163840, + "output": 163840 }, - "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", - "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.13 - } + "type": "chat" }, { - "id": "gpt-4o-mini", - "name": "GPT-4o mini", - "display_name": "GPT-4o mini", + "id": "google/gemini-2.0-flash", + "name": "Google: Gemini 2.0 Flash", + "display_name": "Google: Gemini 2.0 Flash", "modalities": { "input": [ "text", - "image" + "image", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 1048576, + "output": 8192 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-07-18", - "last_updated": "2024-07-18", - "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.08 - } + "type": "imageGeneration" }, { - "id": "phi-4-reasoning-plus", - "name": "Phi-4-reasoning-plus", - "display_name": "Phi-4-reasoning-plus", + "id": "google/gemini-2.0-flash-lite-001", + "name": "Google: Gemini 2.0 Flash Lite", + "display_name": "Google: Gemini 2.0 Flash Lite", "modalities": { "input": [ - "text" + "text", + "image", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 32000, - "output": 4096 + "context": 1048576, + "output": 8192 }, - "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", - "cost": { - "input": 0.125, - "output": 0.5 - } + "attachment": true, + "type": "imageGeneration" }, { - "id": "gpt-4-turbo-vision", - "name": "GPT-4 Turbo Vision", - "display_name": "GPT-4 Turbo Vision", + "id": "google/gemini-2.5-flash", + "name": "Google: Gemini 2.5 Flash", + "display_name": "Google: Gemini 2.5 Flash", "modalities": { "input": [ + "image", "text", - "image" + "audio" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 1048576, + "output": 65535 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, - "open_weights": false, - "knowledge": "2023-11", - "release_date": "2023-11-06", - "last_updated": "2024-04-09", - "cost": { - "input": 10, - "output": 30 - } + "type": "imageGeneration" }, { - "id": "phi-4-reasoning", - "name": "Phi-4-reasoning", - "display_name": "Phi-4-reasoning", + "id": "google/gemini-2.5-flash-lite", + "name": "Google: Gemini 2.5 Flash Lite", + "display_name": "Google: Gemini 2.5 Flash Lite", "modalities": { "input": [ - "text" + "image", + "text", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 32000, - "output": 4096 + "context": 1048576, + "output": 65535 }, - "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", - "cost": { - "input": 0.125, - "output": 0.5 - } + "attachment": true, + "type": "imageGeneration" }, { - "id": "phi-3-medium-4k-instruct", - "name": "Phi-3-medium-instruct (4k)", - "display_name": "Phi-3-medium-instruct (4k)", + "id": "inclusionai/ling-1t", + "name": "inclusionAI: Ling-1T", + "display_name": "inclusionAI: Ling-1T", "modalities": { "input": [ "text" @@ -43178,28 +43160,19 @@ ] }, "limit": { - "context": 4096, - "output": 1024 + "context": 131072, + "output": 131072 }, - "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", - "cost": { - "input": 0.17, - "output": 0.68 - } + "type": "chat" }, { - "id": "codex-mini", - "name": "Codex Mini", - "display_name": "Codex Mini", + "id": "inclusionai/ling-flash-2.0", + "name": "inclusionAI: Ling Flash 2.0", + "display_name": "inclusionAI: Ling Flash 2.0", "modalities": { "input": [ "text" @@ -43209,64 +43182,41 @@ ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 131072, + "output": 131072 }, - "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-05-16", - "last_updated": "2025-05-16", - "cost": { - "input": 1.5, - "output": 6, - "cache_read": 0.375 - } + "type": "chat" }, { - "id": "o3", - "name": "o3", - "display_name": "o3", + "id": "inclusionai/ling-mini-2.0", + "name": "inclusionAI: Ling Mini 2.0", + "display_name": "inclusionAI: Ling Mini 2.0", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 131072, + "output": 131072 }, - "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-16", - "last_updated": "2025-04-16", - "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 - } + "type": "chat" }, { - "id": "mistral-nemo", - "name": "Mistral Nemo", - "display_name": "Mistral Nemo", + "id": "inclusionai/ring-flash-2.0", + "name": "inclusionAI: Ring Flash 2.0", + "display_name": "inclusionAI: Ring Flash 2.0", "modalities": { "input": [ "text" @@ -43276,28 +43226,20 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131072, + "output": 131072 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-07", - "release_date": "2024-07-18", - "last_updated": "2024-07-18", - "cost": { - "input": 0.15, - "output": 0.15 - } + "type": "chat" }, { - "id": "gpt-3.5-turbo-instruct", - "name": "GPT-3.5 Turbo Instruct", - "display_name": "GPT-3.5 Turbo Instruct", + "id": "inclusionai/ring-mini-2.0", + "name": "inclusionAI: Ring Mini 2.0", + "display_name": "inclusionAI: Ring Mini 2.0", "modalities": { "input": [ "text" @@ -43307,28 +43249,20 @@ ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 131072, + "output": 131072 }, - "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": false, - "knowledge": "2021-08", - "release_date": "2023-09-21", - "last_updated": "2023-09-21", - "cost": { - "input": 1.5, - "output": 2 - } + "type": "chat" }, { - "id": "meta-llama-3.1-8b-instruct", - "name": "Meta-Llama-3.1-8B-Instruct", - "display_name": "Meta-Llama-3.1-8B-Instruct", + "id": "moonshotai/kimi-k2-0711", + "name": "kimi-k2-0711", + "display_name": "kimi-k2-0711", "modalities": { "input": [ "text" @@ -43339,86 +43273,117 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 128000 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", - "cost": { - "input": 0.3, - "output": 0.61 - } + "type": "chat" }, { - "id": "text-embedding-ada-002", - "name": "text-embedding-ada-002", - "display_name": "text-embedding-ada-002", + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 1536 + "context": 1047576, + "output": 32768 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2022-12-15", - "last_updated": "2022-12-15", + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0.1, - "output": 0 + "input": 2, + "output": 8, + "cache_read": 0.5 } }, { - "id": "cohere-embed-v3-english", - "name": "Embed v3 English", - "display_name": "Embed v3 English", + "id": "openai/gpt-4.1-mini", + "name": "GPT-4.1 mini", + "display_name": "GPT-4.1 mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 512, - "output": 1024 + "context": 1047576, + "output": 32768 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "release_date": "2023-11-07", - "last_updated": "2023-11-07", + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + } + }, + { + "id": "openai/gpt-4.1-nano", + "name": "GPT-4.1 nano", + "display_name": "GPT-4.1 nano", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { "input": 0.1, - "output": 0 + "output": 0.4, + "cache_read": 0.03 } }, { - "id": "llama-4-scout-17b-16e-instruct", - "name": "Llama 4 Scout 17B 16E Instruct", - "display_name": "Llama 4 Scout 17B 16E Instruct", + "id": "openai/gpt-4o", + "name": "GPT-4o", + "display_name": "GPT-4o", "modalities": { "input": [ "text", @@ -43430,7 +43395,7 @@ }, "limit": { "context": 128000, - "output": 8192 + "output": 16384 }, "temperature": true, "tool_call": true, @@ -43438,22 +43403,24 @@ "supported": false }, "attachment": true, - "open_weights": true, - "knowledge": "2024-08", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-05-13", + "last_updated": "2024-08-06", "cost": { - "input": 0.2, - "output": 0.78 + "input": 2.5, + "output": 10, + "cache_read": 1.25 } }, { - "id": "o1-mini", - "name": "o1-mini", - "display_name": "o1-mini", + "id": "openai/gpt-4o-mini", + "name": "GPT-4o mini", + "display_name": "GPT-4o mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -43461,29 +43428,38 @@ }, "limit": { "context": 128000, - "output": 65536 + "output": 16384 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, "knowledge": "2023-09", - "release_date": "2024-09-12", - "last_updated": "2024-09-12", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.55 + "input": 0.15, + "output": 0.6, + "cache_read": 0.08 } }, { - "id": "gpt-5-mini", - "name": "GPT-5 Mini", - "display_name": "GPT-5 Mini", + "id": "openai/gpt-5-chat", + "name": "gpt-5-chat", + "display_name": "gpt-5-chat", + "limit": { + "context": 272000, + "output": 16384 + }, + "type": "chat" + }, + { + "id": "openai/gpt-5-mini", + "name": "gpt-5-mini", + "display_name": "gpt-5-mini", "modalities": { "input": [ "text", @@ -43512,58 +43488,60 @@ "input": 0.25, "output": 2, "cache_read": 0.03 - } + }, + "type": "chat" }, { - "id": "phi-3.5-moe-instruct", - "name": "Phi-3.5-MoE-instruct", - "display_name": "Phi-3.5-MoE-instruct", + "id": "openai/gpt-5-nano", + "name": "gpt-5-nano", + "display_name": "gpt-5-nano", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 272000, + "output": 128000 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-08-20", - "last_updated": "2024-08-20", + "attachment": true, + "open_weights": false, + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 0.16, - "output": 0.64 - } + "input": 0.05, + "output": 0.4, + "cache_read": 0.01 + }, + "type": "chat" }, { - "id": "gpt-5.1-chat", - "name": "GPT-5.1 Chat", - "display_name": "GPT-5.1 Chat", + "id": "openai/o4-mini", + "name": "o4-mini", + "display_name": "o4-mini", "modalities": { "input": [ "text", - "image", - "audio" + "image" ], "output": [ - "text", - "image", - "audio" + "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 200000, + "output": 100000 }, "temperature": false, "tool_call": true, @@ -43573,19 +43551,19 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 } }, { - "id": "grok-3-mini", - "name": "Grok 3 Mini", - "display_name": "Grok 3 Mini", + "id": "qwen/qwen3-235b-a22b-2507", + "name": "Qwen: Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen: Qwen3 235B A22B Instruct 2507", "modalities": { "input": [ "text" @@ -43595,65 +43573,43 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 262144, + "output": 262144 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-11", - "release_date": "2025-02-17", - "last_updated": "2025-02-17", - "cost": { - "input": 0.3, - "output": 0.5, - "reasoning": 0.5, - "cache_read": 0.075 - } + "type": "chat" }, { - "id": "o1", - "name": "o1", - "display_name": "o1", + "id": "qwen/qwen3-235b-a22b-thinking-2507", + "name": "Qwen: Qwen3 235B A22B Thinking 2507", + "display_name": "Qwen: Qwen3 235B A22B Thinking 2507", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 262144, + "output": 262144 }, - "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-12-05", - "last_updated": "2024-12-05", - "cost": { - "input": 15, - "output": 60, - "cache_read": 7.5 - } + "type": "chat" }, { - "id": "meta-llama-3-8b-instruct", - "name": "Meta-Llama-3-8B-Instruct", - "display_name": "Meta-Llama-3-8B-Instruct", + "id": "qwen/qwen3-coder", + "name": "Qwen: Qwen3 Coder 480B A35B", + "display_name": "Qwen: Qwen3 Coder 480B A35B", "modalities": { "input": [ "text" @@ -43663,62 +43619,42 @@ ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 262144, + "output": 262144 }, - "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-04-18", - "last_updated": "2024-04-18", - "cost": { - "input": 0.3, - "output": 0.61 - } + "type": "chat" }, { - "id": "phi-4-multimodal", - "name": "Phi-4-multimodal", - "display_name": "Phi-4-multimodal", + "id": "qwen/qwen3-max", + "name": "Qwen: Qwen3 Max", + "display_name": "Qwen: Qwen3 Max", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 256000, + "output": 32768 }, - "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", - "cost": { - "input": 0.08, - "output": 0.32, - "input_audio": 4 - } + "type": "chat" }, { - "id": "o4-mini", - "name": "o4-mini", - "display_name": "o4-mini", + "id": "qwen/qwen3-vl-plus", + "name": "Qwen: Qwen3 VL 235B A22B Instruct", + "display_name": "Qwen: Qwen3 VL 235B A22B Instruct", "modalities": { "input": [ "text", @@ -43729,63 +43665,64 @@ ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 262144, + "output": 262144 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-16", - "last_updated": "2025-04-16", - "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.28 - } + "type": "imageGeneration" }, { - "id": "gpt-4.1", - "name": "GPT-4.1", - "display_name": "GPT-4.1", + "id": "z-ai/glm-4.5", + "name": "GLM-4.5", + "display_name": "GLM-4.5", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 131072, + "output": 98304 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 } - }, + } + ] + }, + "ovhcloud": { + "id": "ovhcloud", + "name": "OVHcloud AI Endpoints", + "display_name": "OVHcloud AI Endpoints", + "api": "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1", + "doc": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//", + "models": [ { - "id": "ministral-3b", - "name": "Ministral 3B", - "display_name": "Ministral 3B", + "id": "mixtral-8x7b-instruct-v0.1", + "name": "Mixtral-8x7B-Instruct-v0.1", + "display_name": "Mixtral-8x7B-Instruct-v0.1", "modalities": { "input": [ "text" @@ -43795,28 +43732,27 @@ ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 32000, + "output": 32000 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2024-03", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "release_date": "2025-04-01", + "last_updated": "2025-04-01", "cost": { - "input": 0.04, - "output": 0.04 + "input": 0.7, + "output": 0.7 } }, { - "id": "gpt-3.5-turbo-0301", - "name": "GPT-3.5 Turbo 0301", - "display_name": "GPT-3.5 Turbo 0301", + "id": "mistral-7b-instruct-v0.3", + "name": "Mistral-7B-Instruct-v0.3", + "display_name": "Mistral-7B-Instruct-v0.3", "modalities": { "input": [ "text" @@ -43826,124 +43762,118 @@ ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 127000, + "output": 127000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2021-08", - "release_date": "2023-03-01", - "last_updated": "2023-03-01", + "open_weights": true, + "release_date": "2025-04-01", + "last_updated": "2025-04-01", "cost": { - "input": 1.5, - "output": 2 + "input": 0.11, + "output": 0.11 } }, { - "id": "gpt-4o", - "name": "GPT-4o", - "display_name": "GPT-4o", + "id": "llama-3.1-8b-instruct", + "name": "Llama-3.1-8B-Instruct", + "display_name": "Llama-3.1-8B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-05-13", - "last_updated": "2024-05-13", + "attachment": false, + "open_weights": true, + "release_date": "2025-06-11", + "last_updated": "2025-06-11", "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 + "input": 0.11, + "output": 0.11 } }, { - "id": "phi-3-mini-128k-instruct", - "name": "Phi-3-mini-instruct (128k)", - "display_name": "Phi-3-mini-instruct (128k)", + "id": "qwen2.5-vl-72b-instruct", + "name": "Qwen2.5-VL-72B-Instruct", + "display_name": "Qwen2.5-VL-72B-Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 32000, + "output": 32000 }, "temperature": true, "tool_call": false, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", + "release_date": "2025-03-31", + "last_updated": "2025-03-31", "cost": { - "input": 0.13, - "output": 0.52 + "input": 1.01, + "output": 1.01 } }, { - "id": "llama-3.2-90b-vision-instruct", - "name": "Llama-3.2-90B-Vision-Instruct", - "display_name": "Llama-3.2-90B-Vision-Instruct", + "id": "mistral-nemo-instruct-2407", + "name": "Mistral-Nemo-Instruct-2407", + "display_name": "Mistral-Nemo-Instruct-2407", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 118000, + "output": 118000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-09-25", - "last_updated": "2024-09-25", + "release_date": "2024-11-20", + "last_updated": "2024-11-20", "cost": { - "input": 2.04, - "output": 2.04 + "input": 0.14, + "output": 0.14 } }, { - "id": "gpt-5-codex", - "name": "GPT-5-Codex", - "display_name": "GPT-5-Codex", + "id": "mistral-small-3.2-24b-instruct-2506", + "name": "Mistral-Small-3.2-24B-Instruct-2506", + "display_name": "Mistral-Small-3.2-24B-Instruct-2506", "modalities": { "input": [ "text", @@ -43954,101 +43884,57 @@ ] }, "limit": { - "context": 400000, + "context": 128000, "output": 128000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-09-15", - "last_updated": "2025-09-15", + "attachment": true, + "open_weights": true, + "release_date": "2025-07-16", + "last_updated": "2025-07-16", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.13 + "input": 0.1, + "output": 0.31 } }, { - "id": "gpt-5-nano", - "name": "GPT-5 Nano", - "display_name": "GPT-5 Nano", + "id": "qwen2.5-coder-32b-instruct", + "name": "Qwen2.5-Coder-32B-Instruct", + "display_name": "Qwen2.5-Coder-32B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 272000, - "output": 128000 + "context": 32000, + "output": 32000 }, - "temperature": false, - "tool_call": true, - "reasoning": { - "supported": true, - "default": true - }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", - "cost": { - "input": 0.05, - "output": 0.4, - "cache_read": 0.01 - } - }, - { - "id": "gpt-5.1", - "name": "GPT-5.1", - "display_name": "GPT-5.1", - "modalities": { - "input": [ - "text", - "image", - "audio" - ], - "output": [ - "text", - "image", - "audio" - ] - }, - "limit": { - "context": 272000, - "output": 128000 - }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "attachment": false, + "open_weights": true, + "release_date": "2025-03-24", + "last_updated": "2025-03-24", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 0.96, + "output": 0.96 } }, { - "id": "o3-mini", - "name": "o3-mini", - "display_name": "o3-mini", + "id": "qwen3-coder-30b-a3b-instruct", + "name": "Qwen3-Coder-30B-A3B-Instruct", + "display_name": "Qwen3-Coder-30B-A3B-Instruct", "modalities": { "input": [ "text" @@ -44058,30 +43944,27 @@ ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 256000, + "output": 256000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-05", - "release_date": "2024-12-20", - "last_updated": "2025-01-29", + "open_weights": true, + "release_date": "2025-10-28", + "last_updated": "2025-10-28", "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.55 + "input": 0.07, + "output": 0.26 } }, { - "id": "model-router", - "name": "Model Router", - "display_name": "Model Router", + "id": "llava-next-mistral-7b", + "name": "llava-next-mistral-7b", + "display_name": "llava-next-mistral-7b", "modalities": { "input": [ "text", @@ -44092,26 +43975,27 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 32000, + "output": 32000 }, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": true, - "open_weights": false, - "release_date": "2025-05-19", - "last_updated": "2025-11-18", + "open_weights": true, + "release_date": "2025-01-08", + "last_updated": "2025-01-08", "cost": { - "input": 0.14, - "output": 0 + "input": 0.32, + "output": 0.32 } }, { - "id": "kimi-k2-thinking", - "name": "Kimi K2 Thinking", - "display_name": "Kimi K2 Thinking", + "id": "deepseek-r1-distill-llama-70b", + "name": "DeepSeek-R1-Distill-Llama-70B", + "display_name": "DeepSeek-R1-Distill-Llama-70B", "modalities": { "input": [ "text" @@ -44121,8 +44005,8 @@ ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 131000, + "output": 131000 }, "temperature": true, "tool_call": true, @@ -44132,56 +44016,47 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-08", - "release_date": "2025-11-06", - "last_updated": "2025-12-02", + "release_date": "2025-01-30", + "last_updated": "2025-01-30", "cost": { - "input": 0.6, - "output": 2.5, - "cache_read": 0.15 + "input": 0.74, + "output": 0.74 } }, { - "id": "gpt-5.1-codex-mini", - "name": "GPT-5.1 Codex Mini", - "display_name": "GPT-5.1 Codex Mini", + "id": "meta-llama-3_1-70b-instruct", + "name": "Meta-Llama-3_1-70B-Instruct", + "display_name": "Meta-Llama-3_1-70B-Instruct", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ - "text", - "image", - "audio" + "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 131000, + "output": 131000 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "open_weights": true, + "release_date": "2025-04-01", + "last_updated": "2025-04-01", "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.025 + "input": 0.74, + "output": 0.74 } }, { - "id": "llama-3.3-70b-instruct", - "name": "Llama-3.3-70B-Instruct", - "display_name": "Llama-3.3-70B-Instruct", + "id": "gpt-oss-20b", + "name": "gpt-oss-20b", + "display_name": "gpt-oss-20b", "modalities": { "input": [ "text" @@ -44191,28 +44066,27 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 131000, + "output": 131000 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-12-06", - "last_updated": "2024-12-06", + "release_date": "2025-08-28", + "last_updated": "2025-08-28", "cost": { - "input": 0.71, - "output": 0.71 + "input": 0.05, + "output": 0.18 } }, { - "id": "o1-preview", - "name": "o1-preview", - "display_name": "o1-preview", + "id": "gpt-oss-120b", + "name": "gpt-oss-120b", + "display_name": "gpt-oss-120b", "modalities": { "input": [ "text" @@ -44222,30 +44096,27 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 131000, + "output": 131000 }, - "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2023-09", - "release_date": "2024-09-12", - "last_updated": "2024-09-12", + "open_weights": true, + "release_date": "2025-08-28", + "last_updated": "2025-08-28", "cost": { - "input": 16.5, - "output": 66, - "cache_read": 8.25 + "input": 0.09, + "output": 0.47 } }, { - "id": "phi-3.5-mini-instruct", - "name": "Phi-3.5-mini-instruct", - "display_name": "Phi-3.5-mini-instruct", + "id": "meta-llama-3_3-70b-instruct", + "name": "Meta-Llama-3_3-70B-Instruct", + "display_name": "Meta-Llama-3_3-70B-Instruct", "modalities": { "input": [ "text" @@ -44255,28 +44126,27 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131000, + "output": 131000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-08-20", - "last_updated": "2024-08-20", + "release_date": "2025-04-01", + "last_updated": "2025-04-01", "cost": { - "input": 0.13, - "output": 0.52 + "input": 0.74, + "output": 0.74 } }, { - "id": "gpt-3.5-turbo-0613", - "name": "GPT-3.5 Turbo 0613", - "display_name": "GPT-3.5 Turbo 0613", + "id": "qwen3-32b", + "name": "Qwen3-32B", + "display_name": "Qwen3-32B", "modalities": { "input": [ "text" @@ -44286,28 +44156,36 @@ ] }, "limit": { - "context": 16384, - "output": 16384 + "context": 32000, + "output": 32000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2021-08", - "release_date": "2023-06-13", - "last_updated": "2023-06-13", + "open_weights": true, + "release_date": "2025-07-16", + "last_updated": "2025-07-16", "cost": { - "input": 3, - "output": 4 + "input": 0.09, + "output": 0.25 } - }, + } + ] + }, + "v0": { + "id": "v0", + "name": "v0", + "display_name": "v0", + "doc": "https://sdk.vercel.ai/providers/ai-sdk-providers/vercel", + "models": [ { - "id": "gpt-4-turbo", - "name": "GPT-4 Turbo", - "display_name": "GPT-4 Turbo", + "id": "v0-1.5-lg", + "name": "v0-1.5-lg", + "display_name": "v0-1.5-lg", "modalities": { "input": [ "text", @@ -44318,31 +44196,32 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 512000, + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2023-11", - "release_date": "2023-11-06", - "last_updated": "2024-04-09", + "release_date": "2025-06-09", + "last_updated": "2025-06-09", "cost": { - "input": 10, - "output": 30 + "input": 15, + "output": 75 } }, { - "id": "meta-llama-3.1-70b-instruct", - "name": "Meta-Llama-3.1-70B-Instruct", - "display_name": "Meta-Llama-3.1-70B-Instruct", + "id": "v0-1.5-md", + "name": "v0-1.5-md", + "display_name": "v0-1.5-md", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -44350,58 +44229,68 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "attachment": true, + "open_weights": false, + "release_date": "2025-06-09", + "last_updated": "2025-06-09", "cost": { - "input": 2.68, - "output": 3.54 + "input": 3, + "output": 15 } }, { - "id": "phi-3-small-8k-instruct", - "name": "Phi-3-small-instruct (8k)", - "display_name": "Phi-3-small-instruct (8k)", + "id": "v0-1.0-md", + "name": "v0-1.0-md", + "display_name": "v0-1.0-md", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 128000, + "output": 32000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", + "attachment": true, + "open_weights": false, + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { - "input": 0.15, - "output": 0.6 + "input": 3, + "output": 15 } - }, + } + ] + }, + "iflowcn": { + "id": "iflowcn", + "name": "iFlow", + "display_name": "iFlow", + "api": "https://apis.iflow.cn/v1", + "doc": "https://platform.iflow.cn/en/docs", + "models": [ { - "id": "deepseek-v3-0324", - "name": "DeepSeek-V3-0324", - "display_name": "DeepSeek-V3-0324", + "id": "qwen3-coder", + "name": "Qwen3-Coder-480B-A35B", + "display_name": "Qwen3-Coder-480B-A35B", "modalities": { "input": [ "text" @@ -44411,8 +44300,8 @@ ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 256000, + "output": 64000 }, "temperature": true, "tool_call": true, @@ -44421,18 +44310,18 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-03-24", - "last_updated": "2025-03-24", + "knowledge": "2025-04", + "release_date": "2025-07-01", + "last_updated": "2025-07-01", "cost": { - "input": 1.14, - "output": 4.56 + "input": 0, + "output": 0 } }, { - "id": "meta-llama-3-70b-instruct", - "name": "Meta-Llama-3-70B-Instruct", - "display_name": "Meta-Llama-3-70B-Instruct", + "id": "deepseek-v3", + "name": "DeepSeek-V3", + "display_name": "DeepSeek-V3", "modalities": { "input": [ "text" @@ -44442,28 +44331,28 @@ ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 128000, + "output": 32000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-04-18", - "last_updated": "2024-04-18", + "knowledge": "2024-10", + "release_date": "2024-12-26", + "last_updated": "2024-12-26", "cost": { - "input": 2.68, - "output": 3.54 + "input": 0, + "output": 0 } }, { - "id": "text-embedding-3-large", - "name": "text-embedding-3-large", - "display_name": "text-embedding-3-large", + "id": "kimi-k2", + "name": "Kimi-K2", + "display_name": "Kimi-K2", "modalities": { "input": [ "text" @@ -44473,26 +44362,28 @@ ] }, "limit": { - "context": 8191, - "output": 3072 + "context": 128000, + "output": 64000 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2024-01-25", - "last_updated": "2024-01-25", + "knowledge": "2024-10", + "release_date": "2024-12-01", + "last_updated": "2024-12-01", "cost": { - "input": 0.13, + "input": 0, "output": 0 } }, { - "id": "grok-3", - "name": "Grok 3", - "display_name": "Grok 3", + "id": "deepseek-r1", + "name": "DeepSeek-R1", + "display_name": "DeepSeek-R1", "modalities": { "input": [ "text" @@ -44502,29 +44393,29 @@ ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 128000, + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-11", - "release_date": "2025-02-17", - "last_updated": "2025-02-17", + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.75 + "input": 0, + "output": 0 } }, { - "id": "gpt-3.5-turbo-0125", - "name": "GPT-3.5 Turbo 0125", - "display_name": "GPT-3.5 Turbo 0125", + "id": "deepseek-v3.1", + "name": "DeepSeek-V3.1-Terminus", + "display_name": "DeepSeek-V3.1-Terminus", "modalities": { "input": [ "text" @@ -44534,41 +44425,40 @@ ] }, "limit": { - "context": 16384, - "output": 16384 + "context": 128000, + "output": 64000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2021-08", - "release_date": "2024-01-25", - "last_updated": "2024-01-25", + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.5, - "output": 1.5 + "input": 0, + "output": 0 } }, { - "id": "claude-sonnet-4-5", - "name": "Claude Sonnet 4.5", - "display_name": "Claude Sonnet 4.5", + "id": "minimax-m2", + "name": "MiniMax-M2", + "display_name": "MiniMax-M2", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 204800, + "output": 131100 }, "temperature": true, "tool_call": true, @@ -44576,22 +44466,21 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-07-31", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", + "attachment": false, + "open_weights": true, + "release_date": "2025-11-13", + "last_updated": "2025-11-13", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 } }, { - "id": "phi-4-mini-reasoning", - "name": "Phi-4-mini-reasoning", - "display_name": "Phi-4-mini-reasoning", + "id": "qwen3-235b", + "name": "Qwen3-235B-A22B", + "display_name": "Qwen3-235B-A22B", "modalities": { "input": [ "text" @@ -44602,7 +44491,7 @@ }, "limit": { "context": 128000, - "output": 4096 + "output": 32000 }, "temperature": true, "tool_call": true, @@ -44612,18 +44501,18 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", + "knowledge": "2024-10", + "release_date": "2024-12-01", + "last_updated": "2024-12-01", "cost": { - "input": 0.075, - "output": 0.3 + "input": 0, + "output": 0 } }, { - "id": "phi-4", - "name": "Phi-4", - "display_name": "Phi-4", + "id": "deepseek-v3.2-chat", + "name": "DeepSeek-V3.2", + "display_name": "DeepSeek-V3.2", "modalities": { "input": [ "text" @@ -44634,27 +44523,28 @@ }, "limit": { "context": 128000, - "output": 4096 + "output": 64000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", + "knowledge": "2025-11", + "release_date": "2025-12-01", + "last_updated": "2025-12-01", "cost": { - "input": 0.125, - "output": 0.5 + "input": 0, + "output": 0 } }, { - "id": "deepseek-v3.1", - "name": "DeepSeek-V3.1", - "display_name": "DeepSeek-V3.1", + "id": "kimi-k2-0905", + "name": "Kimi-K2-0905", + "display_name": "Kimi-K2-0905", "modalities": { "input": [ "text" @@ -44664,8 +44554,39 @@ ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 256000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "knowledge": "2024-12", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "kimi-k2-thinking", + "name": "Kimi-K2-Thinking", + "display_name": "Kimi-K2-Thinking", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 64000 }, "temperature": true, "tool_call": true, @@ -44675,52 +44596,50 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-08-21", - "last_updated": "2025-08-21", + "knowledge": "2025-11", + "release_date": "2025-11-06", + "last_updated": "2025-11-06", "cost": { - "input": 0.56, - "output": 1.68 + "input": 0, + "output": 0 } }, { - "id": "gpt-5-chat", - "name": "GPT-5 Chat", - "display_name": "GPT-5 Chat", + "id": "qwen3-235b-a22b-thinking-2507", + "name": "Qwen3-235B-A22B-Thinking", + "display_name": "Qwen3-235B-A22B-Thinking", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 256000, + "output": 64000 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-10-24", - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-01", + "last_updated": "2025-07-01", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.13 + "input": 0, + "output": 0 } }, { - "id": "gpt-4.1-mini", - "name": "GPT-4.1 mini", - "display_name": "GPT-4.1 mini", + "id": "qwen3-vl-plus", + "name": "Qwen3-VL-Plus", + "display_name": "Qwen3-VL-Plus", "modalities": { "input": [ "text", @@ -44731,8 +44650,8 @@ ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 256000, + "output": 32000 }, "temperature": true, "tool_call": true, @@ -44741,23 +44660,53 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.4, - "output": 1.6, - "cache_read": 0.1 + "input": 0, + "output": 0 } }, { - "id": "llama-4-maverick-17b-128e-instruct-fp8", - "name": "Llama 4 Maverick 17B 128E Instruct FP8", - "display_name": "Llama 4 Maverick 17B 128E Instruct FP8", + "id": "glm-4.6", + "name": "GLM-4.6", + "display_name": "GLM-4.6", "modalities": { "input": [ - "text", - "image" + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-01", + "last_updated": "2025-11-13", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "tstars2.0", + "name": "TStars-2.0", + "display_name": "TStars-2.0", + "modalities": { + "input": [ + "text" ], "output": [ "text" @@ -44765,27 +44714,27 @@ }, "limit": { "context": 128000, - "output": 8192 + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": true, - "knowledge": "2024-08", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "attachment": false, + "open_weights": false, + "knowledge": "2024-01", + "release_date": "2024-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.25, - "output": 1 + "input": 0, + "output": 0 } }, { - "id": "cohere-command-r-plus-08-2024", - "name": "Command R+", - "display_name": "Command R+", + "id": "qwen3-235b-a22b-instruct", + "name": "Qwen3-235B-A22B-Instruct", + "display_name": "Qwen3-235B-A22B-Instruct", "modalities": { "input": [ "text" @@ -44795,29 +44744,28 @@ ] }, "limit": { - "context": 128000, - "output": 4000 + "context": 256000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2024-06-01", - "release_date": "2024-08-30", - "last_updated": "2024-08-30", + "knowledge": "2025-04", + "release_date": "2025-07-01", + "last_updated": "2025-07-01", "cost": { - "input": 2.5, - "output": 10 + "input": 0, + "output": 0 } }, { - "id": "cohere-command-a", - "name": "Command A", - "display_name": "Command A", + "id": "qwen3-max", + "name": "Qwen3-Max", + "display_name": "Qwen3-Max", "modalities": { "input": [ "text" @@ -44828,28 +44776,27 @@ }, "limit": { "context": 256000, - "output": 8000 + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, - "knowledge": "2024-06-01", - "release_date": "2025-03-13", - "last_updated": "2025-03-13", + "open_weights": false, + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 2.5, - "output": 10 + "input": 0, + "output": 0 } }, { - "id": "phi-3-small-128k-instruct", - "name": "Phi-3-small-instruct (128k)", - "display_name": "Phi-3-small-instruct (128k)", + "id": "deepseek-v3.2", + "name": "DeepSeek-V3.2-Exp", + "display_name": "DeepSeek-V3.2-Exp", "modalities": { "input": [ "text" @@ -44860,95 +44807,89 @@ }, "limit": { "context": 128000, - "output": 4096 + "output": 64000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.15, - "output": 0.6 + "input": 0, + "output": 0 } }, { - "id": "claude-opus-4-5", - "name": "Claude Opus 4.5", - "display_name": "Claude Opus 4.5", + "id": "qwen3-max-preview", + "name": "Qwen3-Max-Preview", + "display_name": "Qwen3-Max-Preview", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 256000, + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-11-24", - "last_updated": "2025-08-01", + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 5, - "output": 25, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0, + "output": 0 } }, { - "id": "mistral-medium-2505", - "name": "Mistral Medium 3", - "display_name": "Mistral Medium 3", + "id": "qwen3-coder-plus", + "name": "Qwen3-Coder-Plus", + "display_name": "Qwen3-Coder-Plus", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 256000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-05", - "release_date": "2025-05-07", - "last_updated": "2025-05-07", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-01", + "last_updated": "2025-07-01", "cost": { - "input": 0.4, - "output": 2 + "input": 0, + "output": 0 } }, { - "id": "deepseek-v3.2-speciale", - "name": "DeepSeek-V3.2-Speciale", - "display_name": "DeepSeek-V3.2-Speciale", + "id": "qwen3-32b", + "name": "Qwen3-32B", + "display_name": "Qwen3-32B", "modalities": { "input": [ "text" @@ -44959,64 +44900,67 @@ }, "limit": { "context": 128000, - "output": 128000 + "output": 32000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-12-01", - "last_updated": "2025-12-01", + "knowledge": "2024-10", + "release_date": "2024-12-01", + "last_updated": "2024-12-01", "cost": { - "input": 0.28, - "output": 0.42 + "input": 0, + "output": 0 } - }, + } + ] + }, + "synthetic": { + "id": "synthetic", + "name": "Synthetic", + "display_name": "Synthetic", + "api": "https://api.synthetic.new/v1", + "doc": "https://synthetic.new/pricing", + "models": [ { - "id": "claude-haiku-4-5", - "name": "Claude Haiku 4.5", - "display_name": "Claude Haiku 4.5", + "id": "hf:Qwen/Qwen3-235B-A22B-Instruct-2507", + "name": "Qwen 3 235B Instruct", + "display_name": "Qwen 3 235B Instruct", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 256000, + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-02-31", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-28", + "last_updated": "2025-07-21", "cost": { - "input": 1, - "output": 5, - "cache_read": 0.1, - "cache_write": 1.25 + "input": 0.2, + "output": 0.6 } }, { - "id": "phi-3-mini-4k-instruct", - "name": "Phi-3-mini-instruct (4k)", - "display_name": "Phi-3-mini-instruct (4k)", + "id": "hf:Qwen/Qwen2.5-Coder-32B-Instruct", + "name": "Qwen2.5-Coder-32B-Instruct", + "display_name": "Qwen2.5-Coder-32B-Instruct", "modalities": { "input": [ "text" @@ -45026,8 +44970,8 @@ ] }, "limit": { - "context": 4096, - "output": 1024 + "context": 32768, + "output": 32768 }, "temperature": true, "tool_call": false, @@ -45036,55 +44980,49 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", + "knowledge": "2024-10", + "release_date": "2024-11-11", + "last_updated": "2024-11-11", "cost": { - "input": 0.13, - "output": 0.52 + "input": 0.8, + "output": 0.8 } }, { - "id": "gpt-5.1-codex", - "name": "GPT-5.1 Codex", - "display_name": "GPT-5.1 Codex", + "id": "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct", + "name": "Qwen 3 Coder 480B", + "display_name": "Qwen 3 Coder 480B", "modalities": { "input": [ - "text", - "image", - "audio" + "text" ], "output": [ - "text", - "image", - "audio" + "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 256000, + "output": 32000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-11-14", - "last_updated": "2025-11-14", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 2, + "output": 2 } }, { - "id": "grok-code-fast-1", - "name": "Grok Code Fast 1", - "display_name": "Grok Code Fast 1", + "id": "hf:Qwen/Qwen3-235B-A22B-Thinking-2507", + "name": "Qwen3 235B A22B Thinking 2507", + "display_name": "Qwen3 235B A22B Thinking 2507", "modalities": { "input": [ "text" @@ -45095,7 +45033,7 @@ }, "limit": { "context": 256000, - "output": 10000 + "output": 32000 }, "temperature": true, "tool_call": true, @@ -45104,20 +45042,19 @@ "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2023-10", - "release_date": "2025-08-28", - "last_updated": "2025-08-28", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-25", + "last_updated": "2025-07-25", "cost": { - "input": 0.2, - "output": 1.5, - "cache_read": 0.02 + "input": 0.65, + "output": 3 } }, { - "id": "deepseek-r1", - "name": "DeepSeek-R1", - "display_name": "DeepSeek-R1", + "id": "hf:MiniMaxAI/MiniMax-M2", + "name": "MiniMax-M2", + "display_name": "MiniMax-M2", "modalities": { "input": [ "text" @@ -45127,29 +45064,28 @@ ] }, "limit": { - "context": 163840, - "output": 163840 + "context": 196608, + "output": 131000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-01-20", - "last_updated": "2025-01-20", + "release_date": "2025-10-27", + "last_updated": "2025-10-27", "cost": { - "input": 1.35, - "output": 5.4 + "input": 0.55, + "output": 2.19 } }, { - "id": "meta-llama-3.1-405b-instruct", - "name": "Meta-Llama-3.1-405B-Instruct", - "display_name": "Meta-Llama-3.1-405B-Instruct", + "id": "hf:meta-llama/Llama-3.1-70B-Instruct", + "name": "Llama-3.1-70B-Instruct", + "display_name": "Llama-3.1-70B-Instruct", "modalities": { "input": [ "text" @@ -45165,7 +45101,8 @@ "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, @@ -45173,14 +45110,14 @@ "release_date": "2024-07-23", "last_updated": "2024-07-23", "cost": { - "input": 5.33, - "output": 16 + "input": 0.9, + "output": 0.9 } }, { - "id": "gpt-4-32k", - "name": "GPT-4 32K", - "display_name": "GPT-4 32K", + "id": "hf:meta-llama/Llama-3.1-8B-Instruct", + "name": "Llama-3.1-8B-Instruct", + "display_name": "Llama-3.1-8B-Instruct", "modalities": { "input": [ "text" @@ -45190,28 +45127,29 @@ ] }, "limit": { - "context": 32768, + "context": 128000, "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2023-11", - "release_date": "2023-03-14", - "last_updated": "2023-03-14", + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 60, - "output": 120 + "input": 0.2, + "output": 0.2 } }, { - "id": "phi-4-mini", - "name": "Phi-4-mini", - "display_name": "Phi-4-mini", + "id": "hf:meta-llama/Llama-3.3-70B-Instruct", + "name": "Llama-3.3-70B-Instruct", + "display_name": "Llama-3.3-70B-Instruct", "modalities": { "input": [ "text" @@ -45222,91 +45160,92 @@ }, "limit": { "context": 128000, - "output": 4096 + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-12-11", - "last_updated": "2024-12-11", + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", "cost": { - "input": 0.075, - "output": 0.3 + "input": 0.9, + "output": 0.9 } }, { - "id": "cohere-embed-v3-multilingual", - "name": "Embed v3 Multilingual", - "display_name": "Embed v3 Multilingual", + "id": "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct", + "name": "Llama-4-Scout-17B-16E-Instruct", + "display_name": "Llama-4-Scout-17B-16E-Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 512, - "output": 1024 + "context": 328000, + "output": 4096 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, - "release_date": "2023-11-07", - "last_updated": "2023-11-07", + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", "cost": { - "input": 0.1, - "output": 0 + "input": 0.15, + "output": 0.6 } }, { - "id": "grok-4", - "name": "Grok 4", - "display_name": "Grok 4", + "id": "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", + "name": "Llama-4-Maverick-17B-128E-Instruct-FP8", + "display_name": "Llama-4-Maverick-17B-128E-Instruct-FP8", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 64000 + "context": 524000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-07-09", - "last_updated": "2025-07-09", + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", "cost": { - "input": 3, - "output": 15, - "reasoning": 15, - "cache_read": 0.75 + "input": 0.22, + "output": 0.88 } }, { - "id": "cohere-command-r-08-2024", - "name": "Command R", - "display_name": "Command R", + "id": "hf:meta-llama/Llama-3.1-405B-Instruct", + "name": "Llama-3.1-405B-Instruct", + "display_name": "Llama-3.1-405B-Instruct", "modalities": { "input": [ "text" @@ -45317,7 +45256,7 @@ }, "limit": { "context": 128000, - "output": 4000 + "output": 32768 }, "temperature": true, "tool_call": true, @@ -45327,22 +45266,21 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-06-01", - "release_date": "2024-08-30", - "last_updated": "2024-08-30", + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 0.15, - "output": 0.6 + "input": 3, + "output": 3 } }, { - "id": "cohere-embed-v-4-0", - "name": "Embed v4", - "display_name": "Embed v4", + "id": "hf:moonshotai/Kimi-K2-Instruct", + "name": "Kimi K2", + "display_name": "Kimi K2", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -45350,105 +45288,101 @@ }, "limit": { "context": 128000, - "output": 1536 + "output": 32768 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "release_date": "2025-04-15", - "last_updated": "2025-04-15", + "knowledge": "2024-10", + "release_date": "2025-07-11", + "last_updated": "2025-07-11", "cost": { - "input": 0.12, - "output": 0 + "input": 0.6, + "output": 2.5 } }, { - "id": "llama-3.2-11b-vision-instruct", - "name": "Llama-3.2-11B-Vision-Instruct", - "display_name": "Llama-3.2-11B-Vision-Instruct", + "id": "hf:moonshotai/Kimi-K2-Instruct-0905", + "name": "Kimi K2 0905", + "display_name": "Kimi K2 0905", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 262144, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-09-25", - "last_updated": "2024-09-25", + "knowledge": "2024-10", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", "cost": { - "input": 0.37, - "output": 0.37 + "input": 1.2, + "output": 1.2 } }, { - "id": "gpt-5.2-chat", - "name": "GPT-5.2 Chat", - "display_name": "GPT-5.2 Chat", + "id": "hf:moonshotai/Kimi-K2-Thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 262144, + "output": 262144 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-08-31", - "release_date": "2025-12-11", - "last_updated": "2025-12-11", + "attachment": false, + "open_weights": true, + "knowledge": "2025-11", + "release_date": "2025-11-07", + "last_updated": "2025-11-07", "cost": { - "input": 1.75, - "output": 14, - "cache_read": 0.175 + "input": 0.55, + "output": 2.19 } }, { - "id": "claude-opus-4-1", - "name": "Claude Opus 4.1", - "display_name": "Claude Opus 4.1", + "id": "hf:zai-org/GLM-4.5", + "name": "GLM 4.5", + "display_name": "GLM 4.5", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 128000, + "output": 96000 }, "temperature": true, "tool_call": true, @@ -45456,22 +45390,20 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0.55, + "output": 2.19 } }, { - "id": "gpt-4", - "name": "GPT-4", - "display_name": "GPT-4", + "id": "hf:zai-org/GLM-4.7", + "name": "GLM 4.7", + "display_name": "GLM 4.7", "modalities": { "input": [ "text" @@ -45481,28 +45413,29 @@ ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2023-11", - "release_date": "2023-03-14", - "last_updated": "2023-03-14", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-12-22", + "last_updated": "2025-12-22", "cost": { - "input": 60, - "output": 120 + "input": 0.55, + "output": 2.19 } }, { - "id": "phi-3-medium-128k-instruct", - "name": "Phi-3-medium-instruct (128k)", - "display_name": "Phi-3-medium-instruct (128k)", + "id": "hf:zai-org/GLM-4.6", + "name": "GLM 4.6", + "display_name": "GLM 4.6", "modalities": { "input": [ "text" @@ -45512,40 +45445,40 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 200000, + "output": 64000 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2023-10", - "release_date": "2024-04-23", - "last_updated": "2024-04-23", + "knowledge": "2025-04", + "release_date": "2025-09-30", + "last_updated": "2025-09-30", "cost": { - "input": 0.17, - "output": 0.68 + "input": 0.55, + "output": 2.19 } }, { - "id": "grok-4-fast-reasoning", - "name": "Grok 4 Fast (Reasoning)", - "display_name": "Grok 4 Fast (Reasoning)", + "id": "hf:deepseek-ai/DeepSeek-R1", + "name": "DeepSeek R1", + "display_name": "DeepSeek R1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 2000000, - "output": 30000 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -45553,21 +45486,20 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-09-19", - "last_updated": "2025-09-19", + "attachment": false, + "open_weights": true, + "knowledge": "2025-01", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05 + "input": 0.55, + "output": 2.19 } }, { - "id": "deepseek-r1-0528", - "name": "DeepSeek-R1-0528", - "display_name": "DeepSeek-R1-0528", + "id": "hf:deepseek-ai/DeepSeek-R1-0528", + "name": "DeepSeek R1 (0528)", + "display_name": "DeepSeek R1 (0528)", "modalities": { "input": [ "text" @@ -45577,8 +45509,8 @@ ] }, "limit": { - "context": 163840, - "output": 163840 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, @@ -45587,52 +45519,49 @@ "default": true }, "attachment": false, - "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-05-28", - "last_updated": "2025-05-28", + "open_weights": false, + "release_date": "2025-08-01", + "last_updated": "2025-08-01", "cost": { - "input": 1.35, - "output": 5.4 + "input": 3, + "output": 8 } }, { - "id": "grok-4-fast-non-reasoning", - "name": "Grok 4 Fast (Non-Reasoning)", - "display_name": "Grok 4 Fast (Non-Reasoning)", + "id": "hf:deepseek-ai/DeepSeek-V3.1-Terminus", + "name": "DeepSeek V3.1 Terminus", + "display_name": "DeepSeek V3.1 Terminus", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 2000000, - "output": 30000 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-09-19", - "last_updated": "2025-09-19", + "release_date": "2025-09-22", + "last_updated": "2025-09-25", "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05 + "input": 1.2, + "output": 1.2 } }, { - "id": "text-embedding-3-small", - "name": "text-embedding-3-small", - "display_name": "text-embedding-3-small", + "id": "hf:deepseek-ai/DeepSeek-V3.2", + "name": "DeepSeek V3.2", + "display_name": "DeepSeek V3.2", "modalities": { "input": [ "text" @@ -45642,68 +45571,62 @@ ] }, "limit": { - "context": 8191, - "output": 1536 + "context": 162816, + "output": 8000 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2024-01-25", - "last_updated": "2024-01-25", + "open_weights": true, + "release_date": "2025-12-01", + "last_updated": "2025-12-01", "cost": { - "input": 0.02, - "output": 0 + "input": 0.27, + "output": 0.4, + "cache_read": 0.27, + "cache_write": 0 } }, { - "id": "gpt-4.1-nano", - "name": "GPT-4.1 nano", - "display_name": "GPT-4.1 nano", + "id": "hf:deepseek-ai/DeepSeek-V3", + "name": "DeepSeek V3", + "display_name": "DeepSeek V3", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 128000, + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-05", - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-05-29", "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.03 + "input": 1.25, + "output": 1.25 } - } - ] - }, - "llama": { - "id": "llama", - "name": "Llama", - "display_name": "Llama", - "api": "https://api.llama.com/compat/v1/", - "doc": "https://llama.developer.meta.com/docs/models", - "models": [ + }, { - "id": "llama-3.3-8b-instruct", - "name": "Llama-3.3-8B-Instruct", - "display_name": "Llama-3.3-8B-Instruct", + "id": "hf:deepseek-ai/DeepSeek-V3.1", + "name": "DeepSeek V3.1", + "display_name": "DeepSeek V3.1", "modalities": { "input": [ "text" @@ -45714,31 +45637,30 @@ }, "limit": { "context": 128000, - "output": 4096 + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-12-06", - "last_updated": "2024-12-06", + "attachment": false, + "open_weights": false, + "release_date": "2025-08-21", + "last_updated": "2025-08-21", "cost": { - "input": 0, - "output": 0 + "input": 0.56, + "output": 1.68 } }, { - "id": "llama-4-maverick-17b-128e-instruct-fp8", - "name": "Llama-4-Maverick-17B-128E-Instruct-FP8", - "display_name": "Llama-4-Maverick-17B-128E-Instruct-FP8", + "id": "hf:deepseek-ai/DeepSeek-V3-0324", + "name": "DeepSeek V3 (0324)", + "display_name": "DeepSeek V3 (0324)", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -45746,27 +45668,26 @@ }, "limit": { "context": 128000, - "output": 4096 + "output": 128000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": true, - "knowledge": "2024-08", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "attachment": false, + "open_weights": false, + "release_date": "2025-08-01", + "last_updated": "2025-08-01", "cost": { - "input": 0, - "output": 0 + "input": 1.2, + "output": 1.2 } }, { - "id": "llama-3.3-70b-instruct", - "name": "Llama-3.3-70B-Instruct", - "display_name": "Llama-3.3-70B-Instruct", + "id": "hf:openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", "modalities": { "input": [ "text" @@ -45777,59 +45698,66 @@ }, "limit": { "context": 128000, - "output": 4096 + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-12-06", - "last_updated": "2024-12-06", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0, - "output": 0 + "input": 0.1, + "output": 0.1 } - }, + } + ] + }, + "deepinfra": { + "id": "deepinfra", + "name": "Deep Infra", + "display_name": "Deep Infra", + "doc": "https://deepinfra.com/models", + "models": [ { - "id": "llama-4-scout-17b-16e-instruct-fp8", - "name": "Llama-4-Scout-17B-16E-Instruct-FP8", - "display_name": "Llama-4-Scout-17B-16E-Instruct-FP8", + "id": "moonshotai/Kimi-K2-Instruct", + "name": "Kimi K2", + "display_name": "Kimi K2", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2024-08", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "knowledge": "2024-10", + "release_date": "2025-07-11", + "last_updated": "2025-07-11", "cost": { - "input": 0, - "output": 0 + "input": 0.5, + "output": 2 } }, { - "id": "groq-llama-4-maverick-17b-128e-instruct", - "name": "Groq-Llama-4-Maverick-17B-128E-Instruct", - "display_name": "Groq-Llama-4-Maverick-17B-128E-Instruct", + "id": "moonshotai/Kimi-K2-Thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ "text" @@ -45839,28 +45767,29 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2025-01", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "knowledge": "2024-10", + "release_date": "2025-11-06", + "last_updated": "2025-11-07", "cost": { - "input": 0, - "output": 0 + "input": 0.47, + "output": 2 } }, { - "id": "cerebras-llama-4-scout-17b-16e-instruct", - "name": "Cerebras-Llama-4-Scout-17B-16E-Instruct", - "display_name": "Cerebras-Llama-4-Scout-17B-16E-Instruct", + "id": "MiniMaxAI/MiniMax-M2", + "name": "MiniMax M2", + "display_name": "MiniMax M2", "modalities": { "input": [ "text" @@ -45870,28 +45799,29 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 262144, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2025-01", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "knowledge": "2024-10", + "release_date": "2025-11-13", + "last_updated": "2025-11-13", "cost": { - "input": 0, - "output": 0 + "input": 0.254, + "output": 1.02 } }, { - "id": "cerebras-llama-4-maverick-17b-128e-instruct", - "name": "Cerebras-Llama-4-Maverick-17B-128E-Instruct", - "display_name": "Cerebras-Llama-4-Maverick-17B-128E-Instruct", + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "display_name": "GPT OSS 20B", "modalities": { "input": [ "text" @@ -45901,37 +45831,28 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2025-01", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0, - "output": 0 + "input": 0.03, + "output": 0.14 } - } - ] - }, - "scaleway": { - "id": "scaleway", - "name": "Scaleway", - "display_name": "Scaleway", - "api": "https://api.scaleway.ai/v1", - "doc": "https://www.scaleway.com/en/docs/generative-apis/", - "models": [ + }, { - "id": "qwen3-235b-a22b-instruct-2507", - "name": "Qwen3 235B A22B Instruct 2507", - "display_name": "Qwen3 235B A22B Instruct 2507", + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", "modalities": { "input": [ "text" @@ -45941,58 +45862,59 @@ ] }, "limit": { - "context": 260000, - "output": 8192 + "context": 131072, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": true, - "release_date": "2025-07-01", - "last_updated": "2025-07-01", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 0.75, - "output": 2.25 + "input": 0.05, + "output": 0.24 } }, { - "id": "pixtral-12b-2409", - "name": "Pixtral 12B 2409", - "display_name": "Pixtral 12B 2409", + "id": "Qwen/Qwen3-Coder-480B-A35B-Instruct", + "name": "Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen3 Coder 480B A35B Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 262144, + "output": 66536 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "release_date": "2024-09-25", - "last_updated": "2024-09-25", + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", "cost": { - "input": 0.2, - "output": 0.2 + "input": 0.4, + "output": 1.6 } }, { - "id": "llama-3.1-8b-instruct", - "name": "Llama 3.1 8B Instruct", - "display_name": "Llama 3.1 8B Instruct", + "id": "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo", + "name": "Qwen3 Coder 480B A35B Instruct Turbo", + "display_name": "Qwen3 Coder 480B A35B Instruct Turbo", "modalities": { "input": [ "text" @@ -46002,8 +45924,8 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 262144, + "output": 66536 }, "temperature": true, "tool_call": true, @@ -46012,18 +45934,18 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2025-01-01", - "last_updated": "2025-01-01", + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", "cost": { - "input": 0.2, - "output": 0.2 + "input": 0.3, + "output": 1.2 } }, { - "id": "mistral-nemo-instruct-2407", - "name": "Mistral Nemo Instruct 2407", - "display_name": "Mistral Nemo Instruct 2407", + "id": "zai-org/GLM-4.5", + "name": "GLM-4.5", + "display_name": "GLM-4.5", "modalities": { "input": [ "text" @@ -46033,61 +45955,75 @@ ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 131072, + "output": 98304 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "release_date": "2024-07-25", - "last_updated": "2024-07-25", + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 0.2, - "output": 0.2 + "input": 0.6, + "output": 2.2 } }, { - "id": "mistral-small-3.2-24b-instruct-2506", - "name": "Mistral Small 3.2 24B Instruct (2506)", - "display_name": "Mistral Small 3.2 24B Instruct (2506)", + "id": "zai-org/GLM-4.7", + "name": "GLM-4.7", + "display_name": "GLM-4.7", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 202752, + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "release_date": "2025-06-20", - "last_updated": "2025-06-20", + "knowledge": "2025-04", + "release_date": "2025-12-22", + "last_updated": "2025-12-22", "cost": { - "input": 0.15, - "output": 0.35 + "input": 0.43, + "output": 1.75, + "cache_read": 0.08 } - }, + } + ] + }, + "zhipuai": { + "id": "zhipuai", + "name": "Zhipu AI", + "display_name": "Zhipu AI", + "api": "https://open.bigmodel.cn/api/paas/v4", + "doc": "https://docs.z.ai/guides/overview/pricing", + "models": [ { - "id": "qwen3-coder-30b-a3b-instruct", - "name": "Qwen3-Coder 30B-A3B Instruct", - "display_name": "Qwen3-Coder 30B-A3B Instruct", + "id": "glm-4.6v-flash", + "name": "GLM-4.6V-Flash", + "display_name": "GLM-4.6V-Flash", "modalities": { "input": [ - "text" + "text", + "image", + "video" ], "output": [ "text" @@ -46095,100 +46031,109 @@ }, "limit": { "context": 128000, - "output": 8192 + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": true, "knowledge": "2025-04", - "release_date": "2025-04", - "last_updated": "2025-04", + "release_date": "2025-12-08", + "last_updated": "2025-12-08", "cost": { - "input": 0.2, - "output": 0.8 + "input": 0, + "output": 0 } }, { - "id": "llama-3.3-70b-instruct", - "name": "Llama-3.3-70B-Instruct", - "display_name": "Llama-3.3-70B-Instruct", + "id": "glm-4.6v", + "name": "GLM-4.6V", + "display_name": "GLM-4.6V", "modalities": { "input": [ - "text" + "text", + "image", + "video" ], "output": [ "text" ] }, "limit": { - "context": 100000, - "output": 4096 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-12-06", - "last_updated": "2024-12-06", + "knowledge": "2025-04", + "release_date": "2025-12-08", + "last_updated": "2025-12-08", "cost": { - "input": 0.9, + "input": 0.3, "output": 0.9 } }, { - "id": "whisper-large-v3", - "name": "Whisper Large v3", - "display_name": "Whisper Large v3", + "id": "glm-4.6", + "name": "GLM-4.6", + "display_name": "GLM-4.6", "modalities": { "input": [ - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 0, - "output": 4096 + "context": 204800, + "output": 131072 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2023-09", - "release_date": "2023-09-01", - "last_updated": "2025-09-05", + "knowledge": "2025-04", + "release_date": "2025-09-30", + "last_updated": "2025-09-30", "cost": { - "input": 0.003, - "output": 0 + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 } }, { - "id": "deepseek-r1-distill-llama-70b", - "name": "DeepSeek R1 Distill Llama 70B", - "display_name": "DeepSeek R1 Distill Llama 70B", + "id": "glm-4.5v", + "name": "GLM-4.5V", + "display_name": "GLM-4.5V", "modalities": { "input": [ - "text" + "text", + "image", + "video" ], "output": [ "text" ] }, "limit": { - "context": 32000, - "output": 4096 + "context": 64000, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -46196,51 +46141,54 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-01-20", - "last_updated": "2025-01-20", + "knowledge": "2025-04", + "release_date": "2025-08-11", + "last_updated": "2025-08-11", "cost": { - "input": 0.9, - "output": 0.9 + "input": 0.6, + "output": 1.8 } }, { - "id": "voxtral-small-24b-2507", - "name": "Voxtral Small 24B 2507", - "display_name": "Voxtral Small 24B 2507", + "id": "glm-4.5-air", + "name": "GLM-4.5-Air", + "display_name": "GLM-4.5-Air", "modalities": { "input": [ - "text", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 32000, - "output": 8192 + "context": 131072, + "output": 98304 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": true, - "release_date": "2025-07-01", - "last_updated": "2025-07-01", + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 0.15, - "output": 0.35 + "input": 0.2, + "output": 1.1, + "cache_read": 0.03, + "cache_write": 0 } }, { - "id": "gpt-oss-120b", - "name": "GPT-OSS 120B", - "display_name": "GPT-OSS 120B", + "id": "glm-4.5", + "name": "GLM-4.5", + "display_name": "GLM-4.5", "modalities": { "input": [ "text" @@ -46250,27 +46198,31 @@ ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 131072, + "output": 98304 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": true, - "release_date": "2024-01-01", - "last_updated": "2024-01-01", + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 0.15, - "output": 0.6 + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 } }, { - "id": "bge-multilingual-gemma2", - "name": "BGE Multilingual Gemma2", - "display_name": "BGE Multilingual Gemma2", + "id": "glm-4.5-flash", + "name": "GLM-4.5-Flash", + "display_name": "GLM-4.5-Flash", "modalities": { "input": [ "text" @@ -46280,39 +46232,42 @@ ] }, "limit": { - "context": 8191, - "output": 3072 + "context": 131072, + "output": 98304 }, - "temperature": false, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2024-07-26", - "last_updated": "2025-06-15", + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 0.13, - "output": 0 + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 } }, { - "id": "gemma-3-27b-it", - "name": "Gemma-3-27B-IT", - "display_name": "Gemma-3-27B-IT", + "id": "glm-4.7", + "name": "GLM-4.7", + "display_name": "GLM-4.7", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 40000, - "output": 8192 + "context": 204800, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -46320,28 +46275,31 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-12", - "release_date": "2024-12-01", - "last_updated": "2025-09-05", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-12-22", + "last_updated": "2025-12-22", "cost": { - "input": 0.25, - "output": 0.5 + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 } } ] }, - "amazon-bedrock": { - "id": "amazon-bedrock", - "name": "Amazon Bedrock", - "display_name": "Amazon Bedrock", - "doc": "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", + "submodel": { + "id": "submodel", + "name": "submodel", + "display_name": "submodel", + "api": "https://llm.submodel.ai/v1", + "doc": "https://submodel.gitbook.io", "models": [ { - "id": "cohere.command-r-plus-v1:0", - "name": "Command R+", - "display_name": "Command R+", + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", "modalities": { "input": [ "text" @@ -46351,28 +46309,28 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2024-04", - "release_date": "2024-04-04", - "last_updated": "2024-04-04", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 3, - "output": 15 + "input": 0.1, + "output": 0.5 } }, { - "id": "anthropic.claude-v2", - "name": "Claude 2", - "display_name": "Claude 2", + "id": "Qwen/Qwen3-235B-A22B-Instruct-2507", + "name": "Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen3 235B A22B Instruct 2507", "modalities": { "input": [ "text" @@ -46382,76 +46340,68 @@ ] }, "limit": { - "context": 100000, - "output": 4096 + "context": 262144, + "output": 131072 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, - "knowledge": "2023-08", - "release_date": "2023-07-11", - "last_updated": "2023-07-11", + "open_weights": true, + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 8, - "output": 24 + "input": 0.2, + "output": 0.3 } }, { - "id": "anthropic.claude-3-7-sonnet-20250219-v1:0", - "name": "Claude Sonnet 3.7", - "display_name": "Claude Sonnet 3.7", + "id": "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", + "name": "Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen3 Coder 480B A35B Instruct", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 262144, + "output": 262144 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.2, + "output": 0.8 } }, { - "id": "anthropic.claude-sonnet-4-20250514-v1:0", - "name": "Claude Sonnet 4", - "display_name": "Claude Sonnet 4", + "id": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "name": "Qwen3 235B A22B Thinking 2507", + "display_name": "Qwen3 235B A22B Thinking 2507", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 262144, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -46459,22 +46409,19 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "attachment": false, + "open_weights": true, + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.2, + "output": 0.6 } }, { - "id": "qwen.qwen3-coder-30b-a3b-v1:0", - "name": "Qwen3 Coder 30B A3B Instruct", - "display_name": "Qwen3 Coder 30B A3B Instruct", + "id": "zai-org/GLM-4.5-FP8", + "name": "GLM 4.5 FP8", + "display_name": "GLM 4.5 FP8", "modalities": { "input": [ "text" @@ -46484,40 +46431,39 @@ ] }, "limit": { - "context": 262144, + "context": 131072, "output": 131072 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-09-18", - "last_updated": "2025-09-18", + "open_weights": true, + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 0.15, - "output": 0.6 + "input": 0.2, + "output": 0.8 } }, { - "id": "google.gemma-3-4b-it", - "name": "Gemma 3 4B IT", - "display_name": "Gemma 3 4B IT", + "id": "zai-org/GLM-4.5-Air", + "name": "GLM 4.5 Air", + "display_name": "GLM 4.5 Air", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -46525,18 +46471,18 @@ "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", - "cost": { - "input": 0.04, - "output": 0.08 + "open_weights": true, + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0.1, + "output": 0.5 } }, { - "id": "minimax.minimax-m2", - "name": "MiniMax M2", - "display_name": "MiniMax M2", + "id": "deepseek-ai/DeepSeek-R1-0528", + "name": "DeepSeek R1 0528", + "display_name": "DeepSeek R1 0528", "modalities": { "input": [ "text" @@ -46546,8 +46492,8 @@ ] }, "limit": { - "context": 204608, - "output": 128000 + "context": 75000, + "output": 163840 }, "temperature": true, "tool_call": true, @@ -46556,50 +46502,49 @@ "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2025-10-27", - "last_updated": "2025-10-27", + "open_weights": false, + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0.3, - "output": 1.2 + "input": 0.5, + "output": 2.15 } }, { - "id": "meta.llama3-2-11b-instruct-v1:0", - "name": "Llama 3.2 11B Instruct", - "display_name": "Llama 3.2 11B Instruct", + "id": "deepseek-ai/DeepSeek-V3.1", + "name": "DeepSeek V3.1", + "display_name": "DeepSeek V3.1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 75000, + "output": 163840 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-09-25", - "last_updated": "2024-09-25", + "attachment": false, + "open_weights": false, + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0.16, - "output": 0.16 + "input": 0.2, + "output": 0.8 } }, { - "id": "qwen.qwen3-next-80b-a3b", - "name": "Qwen/Qwen3-Next-80B-A3B-Instruct", - "display_name": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "id": "deepseek-ai/DeepSeek-V3-0324", + "name": "DeepSeek V3 0324", + "display_name": "DeepSeek V3 0324", "modalities": { "input": [ "text" @@ -46609,8 +46554,8 @@ ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 75000, + "output": 163840 }, "temperature": true, "tool_call": true, @@ -46619,113 +46564,128 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-09-18", - "last_updated": "2025-11-25", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0.14, - "output": 1.4 + "input": 0.2, + "output": 0.8 } - }, + } + ] + }, + "zai": { + "id": "zai", + "name": "Z.AI", + "display_name": "Z.AI", + "api": "https://api.z.ai/api/paas/v4", + "doc": "https://docs.z.ai/guides/overview/pricing", + "models": [ { - "id": "anthropic.claude-3-haiku-20240307-v1:0", - "name": "Claude Haiku 3", - "display_name": "Claude Haiku 3", + "id": "glm-4.7", + "name": "GLM-4.7", + "display_name": "GLM-4.7", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 4096 + "context": 204800, + "output": 131072 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-02", - "release_date": "2024-03-13", - "last_updated": "2024-03-13", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-12-22", + "last_updated": "2025-12-22", "cost": { - "input": 0.25, - "output": 1.25 + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 } }, { - "id": "meta.llama3-2-90b-instruct-v1:0", - "name": "Llama 3.2 90B Instruct", - "display_name": "Llama 3.2 90B Instruct", + "id": "glm-4.5-flash", + "name": "GLM-4.5-Flash", + "display_name": "GLM-4.5-Flash", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 98304 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-09-25", - "last_updated": "2024-09-25", + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 0.72, - "output": 0.72 + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 } }, { - "id": "qwen.qwen3-vl-235b-a22b", - "name": "Qwen/Qwen3-VL-235B-A22B-Instruct", - "display_name": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "id": "glm-4.5", + "name": "GLM-4.5", + "display_name": "GLM-4.5", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262000, - "output": 262000 + "context": 131072, + "output": 98304 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-10-04", - "last_updated": "2025-11-25", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 0.3, - "output": 1.5 + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 } }, { - "id": "meta.llama3-2-1b-instruct-v1:0", - "name": "Llama 3.2 1B Instruct", - "display_name": "Llama 3.2 1B Instruct", + "id": "glm-4.5-air", + "name": "GLM-4.5-Air", + "display_name": "GLM-4.5-Air", "modalities": { "input": [ "text" @@ -46735,59 +46695,65 @@ ] }, "limit": { - "context": 131000, - "output": 4096 + "context": 131072, + "output": 98304 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-09-25", - "last_updated": "2024-09-25", + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", "cost": { - "input": 0.1, - "output": 0.1 + "input": 0.2, + "output": 1.1, + "cache_read": 0.03, + "cache_write": 0 } }, { - "id": "anthropic.claude-v2:1", - "name": "Claude 2.1", - "display_name": "Claude 2.1", + "id": "glm-4.5v", + "name": "GLM-4.5V", + "display_name": "GLM-4.5V", "modalities": { "input": [ - "text" + "text", + "image", + "video" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 4096 + "context": 64000, + "output": 16384 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": false, - "knowledge": "2023-08", - "release_date": "2023-11-21", - "last_updated": "2023-11-21", + "attachment": true, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-08-11", + "last_updated": "2025-08-11", "cost": { - "input": 8, - "output": 24 + "input": 0.6, + "output": 1.8 } }, { - "id": "deepseek.v3-v1:0", - "name": "DeepSeek-V3.1", - "display_name": "DeepSeek-V3.1", + "id": "glm-4.6", + "name": "GLM-4.6", + "display_name": "GLM-4.6", "modalities": { "input": [ "text" @@ -46797,8 +46763,8 @@ ] }, "limit": { - "context": 163840, - "output": 81920 + "context": 204800, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -46808,31 +46774,33 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-07", - "release_date": "2025-09-18", - "last_updated": "2025-09-18", + "knowledge": "2025-04", + "release_date": "2025-09-30", + "last_updated": "2025-09-30", "cost": { - "input": 0.58, - "output": 1.68 + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 } }, { - "id": "anthropic.claude-opus-4-5-20251101-v1:0", - "name": "Claude Opus 4.5", - "display_name": "Claude Opus 4.5", + "id": "glm-4.6v", + "name": "GLM-4.6V", + "display_name": "GLM-4.6V", "modalities": { "input": [ "text", "image", - "pdf" + "video" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 128000, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -46841,52 +46809,28 @@ "default": true }, "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-11-24", - "last_updated": "2025-08-01", - "cost": { - "input": 5, - "output": 25, - "cache_read": 1.5, - "cache_write": 18.75 - } - }, - { - "id": "cohere.command-light-text-v14", - "name": "Command Light", - "display_name": "Command Light", - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "limit": { - "context": 4096, - "output": 4096 - }, - "temperature": true, - "tool_call": false, - "reasoning": { - "supported": false - }, - "attachment": false, "open_weights": true, - "knowledge": "2023-08", - "release_date": "2023-11-01", - "last_updated": "2023-11-01", + "knowledge": "2025-04", + "release_date": "2025-12-08", + "last_updated": "2025-12-08", "cost": { "input": 0.3, - "output": 0.6 + "output": 0.9 } - }, + } + ] + }, + "inference": { + "id": "inference", + "name": "Inference", + "display_name": "Inference", + "api": "https://inference.net/v1", + "doc": "https://inference.net/models", + "models": [ { - "id": "mistral.mistral-large-2402-v1:0", - "name": "Mistral Large (24.02)", - "display_name": "Mistral Large (24.02)", + "id": "mistral/mistral-nemo-12b-instruct", + "name": "Mistral Nemo 12B Instruct", + "display_name": "Mistral Nemo 12B Instruct", "modalities": { "input": [ "text" @@ -46896,7 +46840,7 @@ ] }, "limit": { - "context": 128000, + "context": 16000, "output": 4096 }, "temperature": true, @@ -46905,18 +46849,19 @@ "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.5, - "output": 1.5 + "input": 0.038, + "output": 0.1 } }, { - "id": "google.gemma-3-27b-it", - "name": "Google Gemma 3 27B Instruct", - "display_name": "Google Gemma 3 27B Instruct", + "id": "google/gemma-3", + "name": "Google Gemma 3", + "display_name": "Google Gemma 3", "modalities": { "input": [ "text", @@ -46927,8 +46872,8 @@ ] }, "limit": { - "context": 202752, - "output": 8192 + "context": 125000, + "output": 4096 }, "temperature": true, "tool_call": true, @@ -46937,30 +46882,29 @@ }, "attachment": true, "open_weights": true, - "knowledge": "2025-07", - "release_date": "2025-07-27", - "last_updated": "2025-07-27", + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.12, - "output": 0.2 + "input": 0.15, + "output": 0.3 } }, { - "id": "nvidia.nemotron-nano-12b-v2", - "name": "NVIDIA Nemotron Nano 12B v2 VL BF16", - "display_name": "NVIDIA Nemotron Nano 12B v2 VL BF16", + "id": "osmosis/osmosis-structure-0.6b", + "name": "Osmosis Structure 0.6B", + "display_name": "Osmosis Structure 0.6B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 4000, + "output": 2048 }, "temperature": true, "tool_call": true, @@ -46968,60 +46912,61 @@ "supported": false }, "attachment": false, - "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.2, - "output": 0.6 + "input": 0.1, + "output": 0.5 } }, { - "id": "google.gemma-3-12b-it", - "name": "Google Gemma 3 12B", - "display_name": "Google Gemma 3 12B", + "id": "qwen/qwen3-embedding-4b", + "name": "Qwen 3 Embedding 4B", + "display_name": "Qwen 3 Embedding 4B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 32000, + "output": 2048 }, - "temperature": true, + "temperature": false, "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": false, + "open_weights": true, "knowledge": "2024-12", - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.049999999999999996, - "output": 0.09999999999999999 + "input": 0.01, + "output": 0 } }, { - "id": "ai21.jamba-1-5-large-v1:0", - "name": "Jamba 1.5 Large", - "display_name": "Jamba 1.5 Large", + "id": "qwen/qwen-2.5-7b-vision-instruct", + "name": "Qwen 2.5 7B Vision Instruct", + "display_name": "Qwen 2.5 7B Vision Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 256000, + "context": 125000, "output": 4096 }, "temperature": true, @@ -47029,30 +46974,31 @@ "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, - "knowledge": "2024-08", - "release_date": "2024-08-15", - "last_updated": "2024-08-15", + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 2, - "output": 8 + "input": 0.2, + "output": 0.2 } }, { - "id": "meta.llama3-3-70b-instruct-v1:0", - "name": "Llama 3.3 70B Instruct", - "display_name": "Llama 3.3 70B Instruct", + "id": "meta/llama-3.2-11b-vision-instruct", + "name": "Llama 3.2 11B Vision Instruct", + "display_name": "Llama 3.2 11B Vision Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, + "context": 16000, "output": 4096 }, "temperature": true, @@ -47060,32 +47006,30 @@ "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": true, "knowledge": "2023-12", - "release_date": "2024-12-06", - "last_updated": "2024-12-06", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.72, - "output": 0.72 + "input": 0.055, + "output": 0.055 } }, { - "id": "anthropic.claude-3-opus-20240229-v1:0", - "name": "Claude Opus 3", - "display_name": "Claude Opus 3", + "id": "meta/llama-3.1-8b-instruct", + "name": "Llama 3.1 8B Instruct", + "display_name": "Llama 3.1 8B Instruct", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, + "context": 16000, "output": 4096 }, "temperature": true, @@ -47093,54 +47037,51 @@ "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-08", - "release_date": "2024-02-29", - "last_updated": "2024-02-29", + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 15, - "output": 75 + "input": 0.025, + "output": 0.025 } }, { - "id": "amazon.nova-pro-v1:0", - "name": "Nova Pro", - "display_name": "Nova Pro", + "id": "meta/llama-3.2-3b-instruct", + "name": "Llama 3.2 3B Instruct", + "display_name": "Llama 3.2 3B Instruct", "modalities": { "input": [ - "text", - "image", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 300000, - "output": 8192 + "context": 16000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-12-03", - "last_updated": "2024-12-03", + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.8, - "output": 3.2, - "cache_read": 0.2 + "input": 0.02, + "output": 0.02 } }, { - "id": "meta.llama3-1-8b-instruct-v1:0", - "name": "Llama 3.1 8B Instruct", - "display_name": "Llama 3.1 8B Instruct", + "id": "meta/llama-3.2-1b-instruct", + "name": "Llama 3.2 1B Instruct", + "display_name": "Llama 3.2 1B Instruct", "modalities": { "input": [ "text" @@ -47150,7 +47091,7 @@ ] }, "limit": { - "context": 128000, + "context": 16000, "output": 4096 }, "temperature": true, @@ -47161,47 +47102,61 @@ "attachment": false, "open_weights": true, "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 0.22, - "output": 0.22 + "input": 0.01, + "output": 0.01 } - }, + } + ] + }, + "requesty": { + "id": "requesty", + "name": "Requesty", + "display_name": "Requesty", + "api": "https://router.requesty.ai/v1", + "doc": "https://requesty.ai/solution/llm-routing/models", + "models": [ { - "id": "openai.gpt-oss-120b-1:0", - "name": "gpt-oss-120b", - "display_name": "gpt-oss-120b", + "id": "xai/grok-4", + "name": "Grok 4", + "display_name": "Grok 4", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 256000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2025-01", + "release_date": "2025-09-09", + "last_updated": "2025-09-09", "cost": { - "input": 0.15, - "output": 0.6 + "input": 3, + "output": 15, + "cache_read": 0.75, + "cache_write": 3 } }, { - "id": "qwen.qwen3-32b-v1:0", - "name": "Qwen3 32B (dense)", - "display_name": "Qwen3 32B (dense)", + "id": "xai/grok-4-fast", + "name": "Grok 4 Fast", + "display_name": "Grok 4 Fast", "modalities": { "input": [ "text" @@ -47211,8 +47166,8 @@ ] }, "limit": { - "context": 16384, - "output": 16384 + "context": 2000000, + "output": 64000 }, "temperature": true, "tool_call": true, @@ -47220,24 +47175,28 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-04", - "release_date": "2025-09-18", - "last_updated": "2025-09-18", + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-09-19", + "last_updated": "2025-09-19", "cost": { - "input": 0.15, - "output": 0.6 + "input": 0.2, + "output": 0.5, + "cache_read": 0.05, + "cache_write": 0.2 } }, { - "id": "anthropic.claude-3-5-sonnet-20240620-v1:0", - "name": "Claude Sonnet 3.5", - "display_name": "Claude Sonnet 3.5", + "id": "google/gemini-3-flash-preview", + "name": "Gemini 3 Flash", + "display_name": "Gemini 3 Flash", "modalities": { "input": [ "text", "image", + "audio", + "video", "pdf" ], "output": [ @@ -47245,34 +47204,37 @@ ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-06-20", - "last_updated": "2024-06-20", + "knowledge": "2025-01", + "release_date": "2025-12-17", + "last_updated": "2025-12-17", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 1 } }, { - "id": "anthropic.claude-haiku-4-5-20251001-v1:0", - "name": "Claude Haiku 4.5", - "display_name": "Claude Haiku 4.5", + "id": "google/gemini-3-pro-preview", + "name": "Gemini 3 Pro", + "display_name": "Gemini 3 Pro", "modalities": { "input": [ "text", "image", + "audio", + "video", "pdf" ], "output": [ @@ -47280,8 +47242,8 @@ ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -47291,114 +47253,129 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-02-28", - "release_date": "2025-10-15", - "last_updated": "2025-10-15", + "knowledge": "2025-01", + "release_date": "2025-11-18", + "last_updated": "2025-11-18", "cost": { - "input": 1, - "output": 5, - "cache_read": 0.1, - "cache_write": 1.25 + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 4.5 } }, { - "id": "cohere.command-r-v1:0", - "name": "Command R", - "display_name": "Command R", + "id": "google/gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "display_name": "Gemini 2.5 Flash", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-04", - "release_date": "2024-03-11", - "last_updated": "2024-03-11", + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", "cost": { - "input": 0.5, - "output": 1.5 + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.55 } }, { - "id": "mistral.voxtral-small-24b-2507", - "name": "Voxtral Small 24B 2507", - "display_name": "Voxtral Small 24B 2507", + "id": "google/gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", "modalities": { "input": [ "text", - "audio" + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 32000, - "output": 8192 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, - "open_weights": true, - "release_date": "2025-07-01", - "last_updated": "2025-07-01", + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", "cost": { - "input": 0.15, - "output": 0.35 + "input": 1.25, + "output": 10, + "cache_read": 0.31, + "cache_write": 2.375 } }, { - "id": "amazon.nova-micro-v1:0", - "name": "Nova Micro", - "display_name": "Nova Micro", + "id": "openai/gpt-4.1-mini", + "name": "GPT-4.1 Mini", + "display_name": "GPT-4.1 Mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 1047576, + "output": 32768 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-12-03", - "last_updated": "2024-12-03", + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 0.035, - "output": 0.14, - "cache_read": 0.00875 + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 } }, { - "id": "meta.llama3-1-70b-instruct-v1:0", - "name": "Llama 3.1 70B Instruct", - "display_name": "Llama 3.1 70B Instruct", + "id": "openai/gpt-5-nano", + "name": "GPT-5 Nano", + "display_name": "GPT-5 Nano", "modalities": { "input": [ "text" @@ -47408,70 +47385,75 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 16000, + "output": 4000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "attachment": true, + "open_weights": false, + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 0.72, - "output": 0.72 + "input": 0.05, + "output": 0.4, + "cache_read": 0.01 } }, { - "id": "meta.llama3-70b-instruct-v1:0", - "name": "Llama 3 70B Instruct", - "display_name": "Llama 3 70B Instruct", + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 1047576, + "output": 32768 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 2.65, - "output": 3.5 + "input": 2, + "output": 8, + "cache_read": 0.5 } }, { - "id": "deepseek.r1-v1:0", - "name": "DeepSeek-R1", - "display_name": "DeepSeek-R1", + "id": "openai/o4-mini", + "name": "o4 Mini", + "display_name": "o4 Mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 200000, + "output": 100000 }, "temperature": true, "tool_call": true, @@ -47479,58 +47461,59 @@ "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-07", - "release_date": "2025-01-20", - "last_updated": "2025-05-29", + "knowledge": "2024-06", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", "cost": { - "input": 1.35, - "output": 5.4 + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 } }, { - "id": "anthropic.claude-3-5-sonnet-20241022-v2:0", - "name": "Claude Sonnet 3.5 v2", - "display_name": "Claude Sonnet 3.5 v2", + "id": "openai/gpt-5-mini", + "name": "GPT-5 Mini", + "display_name": "GPT-5 Mini", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 128000, + "output": 32000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.25, + "output": 2, + "cache_read": 0.03 } }, { - "id": "mistral.ministral-3-8b-instruct", - "name": "Ministral 3 8B", - "display_name": "Ministral 3 8B", + "id": "openai/gpt-4o-mini", + "name": "GPT-4o Mini", + "display_name": "GPT-4o Mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -47538,55 +47521,64 @@ }, "limit": { "context": 128000, - "output": 4096 + "output": 16384 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2024-10", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", "cost": { "input": 0.15, - "output": 0.15 + "output": 0.6, + "cache_read": 0.08 } }, { - "id": "cohere.command-text-v14", - "name": "Command", - "display_name": "Command", + "id": "openai/gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", "modalities": { "input": [ - "text" + "text", + "audio", + "image", + "video" ], "output": [ - "text" + "text", + "audio", + "image" ] }, "limit": { - "context": 4096, - "output": 4096 + "context": 400000, + "output": 128000 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2023-08", - "release_date": "2023-11-01", - "last_updated": "2023-11-01", + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 1.5, - "output": 2 + "input": 1.25, + "output": 10, + "cache_read": 0.13 } }, { - "id": "anthropic.claude-opus-4-20250514-v1:0", + "id": "anthropic/claude-opus-4", "name": "Claude Opus 4", "display_name": "Claude Opus 4", "modalities": { @@ -47611,7 +47603,7 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-04", + "knowledge": "2025-03-31", "release_date": "2025-05-22", "last_updated": "2025-05-22", "cost": { @@ -47622,40 +47614,9 @@ } }, { - "id": "mistral.voxtral-mini-3b-2507", - "name": "Voxtral Mini 3B 2507", - "display_name": "Voxtral Mini 3B 2507", - "modalities": { - "input": [ - "audio", - "text" - ], - "output": [ - "text" - ] - }, - "limit": { - "context": 128000, - "output": 4096 - }, - "temperature": true, - "tool_call": true, - "reasoning": { - "supported": false - }, - "attachment": false, - "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", - "cost": { - "input": 0.04, - "output": 0.04 - } - }, - { - "id": "global.anthropic.claude-opus-4-5-20251101-v1:0", - "name": "Claude Opus 4.5 (Global)", - "display_name": "Claude Opus 4.5 (Global)", + "id": "anthropic/claude-opus-4-1", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", "modalities": { "input": [ "text", @@ -47668,7 +47629,7 @@ }, "limit": { "context": 200000, - "output": 64000 + "output": 32000 }, "temperature": true, "tool_call": true, @@ -47679,80 +47640,89 @@ "attachment": true, "open_weights": false, "knowledge": "2025-03-31", - "release_date": "2025-11-24", - "last_updated": "2025-08-01", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 5, - "output": 25, + "input": 15, + "output": 75, "cache_read": 1.5, "cache_write": 18.75 } }, { - "id": "amazon.nova-2-lite-v1:0", - "name": "Nova 2 Lite", - "display_name": "Nova 2 Lite", + "id": "anthropic/claude-haiku-4-5", + "name": "Claude Haiku 4.5", + "display_name": "Claude Haiku 4.5", "modalities": { "input": [ "text", "image", - "video" + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 200000, + "output": 62000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2025-02-01", + "release_date": "2025-10-15", + "last_updated": "2025-10-15", "cost": { - "input": 0.33, - "output": 2.75 + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 } }, { - "id": "qwen.qwen3-coder-480b-a35b-v1:0", - "name": "Qwen3 Coder 480B A35B Instruct", - "display_name": "Qwen3 Coder 480B A35B Instruct", + "id": "anthropic/claude-opus-4-5", + "name": "Claude Opus 4.5", + "display_name": "Claude Opus 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 65536 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-04", - "release_date": "2025-09-18", - "last_updated": "2025-09-18", + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-11-24", + "last_updated": "2025-11-24", "cost": { - "input": 0.22, - "output": 1.8 + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 } }, { - "id": "anthropic.claude-sonnet-4-5-20250929-v1:0", + "id": "anthropic/claude-sonnet-4-5", "name": "Claude Sonnet 4.5", "display_name": "Claude Sonnet 4.5", "modalities": { @@ -47766,7 +47736,7 @@ ] }, "limit": { - "context": 200000, + "context": 1000000, "output": 64000 }, "temperature": true, @@ -47788,69 +47758,120 @@ } }, { - "id": "openai.gpt-oss-safeguard-20b", - "name": "GPT OSS Safeguard 20B", - "display_name": "GPT OSS Safeguard 20B", + "id": "anthropic/claude-3-7-sonnet", + "name": "Claude Sonnet 3.7", + "display_name": "Claude Sonnet 3.7", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2024-01", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", "cost": { - "input": 0.07, - "output": 0.2 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "openai.gpt-oss-20b-1:0", - "name": "gpt-oss-20b", - "display_name": "gpt-oss-20b", + "id": "anthropic/claude-sonnet-4", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 200000, + "output": 64000 }, "temperature": true, "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + } + ] + }, + "morph": { + "id": "morph", + "name": "Morph", + "display_name": "Morph", + "api": "https://api.morphllm.com/v1", + "doc": "https://docs.morphllm.com/api-reference/introduction", + "models": [ + { + "id": "morph-v3-large", + "name": "Morph v3 Large", + "display_name": "Morph v3 Large", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32000, + "output": 32000 + }, + "temperature": false, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "release_date": "2024-08-15", + "last_updated": "2024-08-15", "cost": { - "input": 0.07, - "output": 0.3 + "input": 0.9, + "output": 1.9 } }, { - "id": "meta.llama3-2-3b-instruct-v1:0", - "name": "Llama 3.2 3B Instruct", - "display_name": "Llama 3.2 3B Instruct", + "id": "auto", + "name": "Auto", + "display_name": "Auto", "modalities": { "input": [ "text" @@ -47860,28 +47881,27 @@ ] }, "limit": { - "context": 131000, - "output": 4096 + "context": 32000, + "output": 32000 }, - "temperature": true, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": false }, "attachment": false, - "open_weights": true, - "knowledge": "2023-12", - "release_date": "2024-09-25", - "last_updated": "2024-09-25", + "open_weights": false, + "release_date": "2024-06-01", + "last_updated": "2024-06-01", "cost": { - "input": 0.15, - "output": 0.15 + "input": 0.85, + "output": 1.55 } }, { - "id": "anthropic.claude-instant-v1", - "name": "Claude Instant", - "display_name": "Claude Instant", + "id": "morph-v3-fast", + "name": "Morph v3 Fast", + "display_name": "Morph v3 Fast", "modalities": { "input": [ "text" @@ -47891,41 +47911,47 @@ ] }, "limit": { - "context": 100000, - "output": 4096 + "context": 16000, + "output": 16000 }, - "temperature": true, + "temperature": false, "tool_call": false, "reasoning": { "supported": false }, "attachment": false, "open_weights": false, - "knowledge": "2023-08", - "release_date": "2023-03-01", - "last_updated": "2023-03-01", + "release_date": "2024-08-15", + "last_updated": "2024-08-15", "cost": { "input": 0.8, - "output": 2.4 + "output": 1.2 } - }, + } + ] + }, + "lmstudio": { + "id": "lmstudio", + "name": "LMStudio", + "display_name": "LMStudio", + "api": "http://127.0.0.1:1234/v1", + "doc": "https://lmstudio.ai/models", + "models": [ { - "id": "amazon.nova-premier-v1:0", - "name": "Nova Premier", - "display_name": "Nova Premier", + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "display_name": "GPT OSS 20B", "modalities": { "input": [ - "text", - "image", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 16384 + "context": 131072, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -47933,20 +47959,19 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-12-03", - "last_updated": "2024-12-03", + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 2.5, - "output": 12.5 + "input": 0, + "output": 0 } }, { - "id": "mistral.mistral-7b-instruct-v0:2", - "name": "Mistral-7B-Instruct-v0.3", - "display_name": "Mistral-7B-Instruct-v0.3", + "id": "qwen/qwen3-30b-a3b-2507", + "name": "Qwen3 30B A3B 2507", + "display_name": "Qwen3 30B A3B 2507", "modalities": { "input": [ "text" @@ -47956,8 +47981,8 @@ ] }, "limit": { - "context": 127000, - "output": 127000 + "context": 262144, + "output": 16384 }, "temperature": true, "tool_call": true, @@ -47966,17 +47991,18 @@ }, "attachment": false, "open_weights": true, - "release_date": "2025-04-01", - "last_updated": "2025-04-01", + "knowledge": "2025-04", + "release_date": "2025-07-30", + "last_updated": "2025-07-30", "cost": { - "input": 0.11, - "output": 0.11 + "input": 0, + "output": 0 } }, { - "id": "mistral.mixtral-8x7b-instruct-v0:1", - "name": "Mixtral-8x7B-Instruct-v0.1", - "display_name": "Mixtral-8x7B-Instruct-v0.1", + "id": "qwen/qwen3-coder-30b", + "name": "Qwen3 Coder 30B", + "display_name": "Qwen3 Coder 30B", "modalities": { "input": [ "text" @@ -47986,40 +48012,48 @@ ] }, "limit": { - "context": 32000, - "output": 32000 + "context": 262144, + "output": 65536 }, "temperature": true, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2025-04-01", - "last_updated": "2025-04-01", + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", "cost": { - "input": 0.7, - "output": 0.7 + "input": 0, + "output": 0 } - }, + } + ] + }, + "friendli": { + "id": "friendli", + "name": "Friendli", + "display_name": "Friendli", + "api": "https://api.friendli.ai/serverless/v1", + "doc": "https://friendli.ai/docs/guides/serverless_endpoints/introduction", + "models": [ { - "id": "anthropic.claude-opus-4-1-20250805-v1:0", - "name": "Claude Opus 4.1", - "display_name": "Claude Opus 4.1", + "id": "Qwen-Qwen3-235B-A22B-Thinking-2507", + "name": "Qwen3 235B A22B Thinking 2507", + "display_name": "Qwen3 235B A22B Thinking 2507", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -48027,54 +48061,45 @@ "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-08-05", - "last_updated": "2025-08-05", - "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 - } + "attachment": false, + "open_weights": true, + "release_date": "2025-07-29", + "last_updated": "2025-12-23" }, { - "id": "meta.llama4-scout-17b-instruct-v1:0", - "name": "Llama 4 Scout 17B Instruct", - "display_name": "Llama 4 Scout 17B Instruct", + "id": "meta-llama-3.3-70b-instruct", + "name": "Llama 3.3 70B Instruct", + "display_name": "Llama 3.3 70B Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 3500000, - "output": 16384 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2024-08", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "release_date": "2024-08-01", + "last_updated": "2025-12-23", "cost": { - "input": 0.17, - "output": 0.66 + "input": 0.6, + "output": 0.6 } }, { - "id": "ai21.jamba-1-5-mini-v1:0", - "name": "Jamba 1.5 Mini", - "display_name": "Jamba 1.5 Mini", + "id": "Qwen-Qwen3-235B-A22B-Instruct-2507", + "name": "Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen3 235B A22B Instruct 2507", "modalities": { "input": [ "text" @@ -48084,8 +48109,8 @@ ] }, "limit": { - "context": 256000, - "output": 4096 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -48094,18 +48119,17 @@ }, "attachment": false, "open_weights": true, - "knowledge": "2024-08", - "release_date": "2024-08-15", - "last_updated": "2024-08-15", + "release_date": "2025-07-29", + "last_updated": "2025-12-23", "cost": { "input": 0.2, - "output": 0.4 + "output": 0.8 } }, { - "id": "meta.llama3-8b-instruct-v1:0", - "name": "Llama 3 8B Instruct", - "display_name": "Llama 3 8B Instruct", + "id": "meta-llama-Llama-4-Maverick-17B-128E-Instruct", + "name": "Llama 4 Maverick 17B 128E Instruct", + "display_name": "Llama 4 Maverick 17B 128E Instruct", "modalities": { "input": [ "text" @@ -48115,28 +48139,24 @@ ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 131072, + "output": 8000 }, "temperature": true, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "knowledge": "2023-03", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", - "cost": { - "input": 0.3, - "output": 0.6 - } + "release_date": "2025-06-16", + "last_updated": "2025-12-23" }, { - "id": "amazon.titan-text-express-v1:0:8k", - "name": "Titan Text G1 - Express", - "display_name": "Titan Text G1 - Express", + "id": "zai-org-GLM-4.6", + "name": "GLM 4.6", + "display_name": "GLM 4.6", "modalities": { "input": [ "text" @@ -48146,60 +48166,51 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", - "cost": { - "input": 0.2, - "output": 0.6 - } + "open_weights": true, + "release_date": "2025-10-31", + "last_updated": "2025-12-23" }, { - "id": "anthropic.claude-3-sonnet-20240229-v1:0", - "name": "Claude Sonnet 3", - "display_name": "Claude Sonnet 3", + "id": "Qwen-Qwen3-30B-A3B", + "name": "Qwen3 30B A3B", + "display_name": "Qwen3 30B A3B", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 4096 + "context": 131072, + "output": 8000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2023-08", - "release_date": "2024-03-04", - "last_updated": "2024-03-04", - "cost": { - "input": 3, - "output": 15 - } + "attachment": false, + "open_weights": true, + "release_date": "2025-06-16", + "last_updated": "2025-12-23" }, { - "id": "nvidia.nemotron-nano-9b-v2", - "name": "NVIDIA Nemotron Nano 9B v2", - "display_name": "NVIDIA Nemotron Nano 9B v2", + "id": "Qwen-Qwen3-32B", + "name": "Qwen3 32B", + "display_name": "Qwen3 32B", "modalities": { "input": [ "text" @@ -48209,27 +48220,24 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", - "cost": { - "input": 0.06, - "output": 0.23 - } + "open_weights": true, + "release_date": "2025-06-16", + "last_updated": "2025-12-23" }, { - "id": "amazon.titan-text-express-v1", - "name": "Titan Text G1 - Express", - "display_name": "Titan Text G1 - Express", + "id": "deepseek-ai-DeepSeek-R1-0528", + "name": "DeepSeek R1 0528", + "display_name": "DeepSeek R1 0528", "modalities": { "input": [ "text" @@ -48239,59 +48247,54 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 163840, + "output": 163840 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", - "cost": { - "input": 0.2, - "output": 0.6 - } + "open_weights": true, + "release_date": "2025-07-11", + "last_updated": "2025-12-23" }, { - "id": "meta.llama4-maverick-17b-instruct-v1:0", - "name": "Llama 4 Maverick 17B Instruct", - "display_name": "Llama 4 Maverick 17B Instruct", + "id": "meta-llama-3.1-8b-instruct", + "name": "Llama 3.1 8B Instruct", + "display_name": "Llama 3.1 8B Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 16384 + "context": 131072, + "output": 8000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": true, - "knowledge": "2024-08", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "release_date": "2024-08-01", + "last_updated": "2025-12-23", "cost": { - "input": 0.24, - "output": 0.97 + "input": 0.1, + "output": 0.1 } }, { - "id": "mistral.ministral-3-14b-instruct", - "name": "Ministral 14B 3.0", - "display_name": "Ministral 14B 3.0", + "id": "LGAI-EXAONE-EXAONE-4.0.1-32B", + "name": "EXAONE 4.0.1 32B", + "display_name": "EXAONE 4.0.1 32B", "modalities": { "input": [ "text" @@ -48301,27 +48304,28 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 131072 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "open_weights": true, + "release_date": "2025-07-31", + "last_updated": "2025-12-23", "cost": { - "input": 0.2, - "output": 0.2 + "input": 0.6, + "output": 1 } }, { - "id": "openai.gpt-oss-safeguard-120b", - "name": "GPT OSS Safeguard 120B", - "display_name": "GPT OSS Safeguard 120B", + "id": "meta-llama-Llama-4-Scout-17B-16E-Instruct", + "name": "Llama 4 Scout 17B 16E Instruct", + "display_name": "Llama 4 Scout 17B 16E Instruct", "modalities": { "input": [ "text" @@ -48331,96 +48335,109 @@ ] }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8000 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": false, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", - "cost": { - "input": 0.15, - "output": 0.6 - } - }, + "open_weights": true, + "release_date": "2025-06-16", + "last_updated": "2025-12-23" + } + ] + }, + "sap-ai-core": { + "id": "sap-ai-core", + "name": "SAP AI Core", + "display_name": "SAP AI Core", + "doc": "https://help.sap.com/docs/sap-ai-core", + "models": [ { - "id": "qwen.qwen3-235b-a22b-2507-v1:0", - "name": "Qwen3 235B A22B 2507", - "display_name": "Qwen3 235B A22B 2507", + "id": "anthropic--claude-3.5-sonnet", + "name": "anthropic--claude-3.5-sonnet", + "display_name": "anthropic--claude-3.5-sonnet", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 131072 + "context": 200000, + "output": 8192 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-04", - "release_date": "2025-09-18", - "last_updated": "2025-09-18", + "attachment": true, + "open_weights": false, + "knowledge": "2024-04-30", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { - "input": 0.22, - "output": 0.88 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "amazon.nova-lite-v1:0", - "name": "Nova Lite", - "display_name": "Nova Lite", + "id": "anthropic--claude-4-opus", + "name": "anthropic--claude-4-opus", + "display_name": "anthropic--claude-4-opus", "modalities": { "input": [ "text", "image", - "video" + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 300000, - "output": 8192 + "context": 200000, + "output": 32000 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-10", - "release_date": "2024-12-03", - "last_updated": "2024-12-03", + "knowledge": "2025-01-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { - "input": 0.06, - "output": 0.24, - "cache_read": 0.015 + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 } }, { - "id": "anthropic.claude-3-5-haiku-20241022-v1:0", - "name": "Claude Haiku 3.5", - "display_name": "Claude Haiku 3.5", + "id": "gemini-2.5-flash", + "name": "gemini-2.5-flash", + "display_name": "gemini-2.5-flash", "modalities": { "input": [ "text", "image", + "audio", + "video", "pdf" ], "output": [ @@ -48428,111 +48445,110 @@ ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-07", - "release_date": "2024-10-22", - "last_updated": "2024-10-22", + "knowledge": "2025-01", + "release_date": "2025-03-25", + "last_updated": "2025-06-05", "cost": { - "input": 0.8, - "output": 4, - "cache_read": 0.08, - "cache_write": 1 + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "input_audio": 1 } }, { - "id": "moonshot.kimi-k2-thinking", - "name": "Kimi K2 Thinking", - "display_name": "Kimi K2 Thinking", + "id": "anthropic--claude-3-haiku", + "name": "anthropic--claude-3-haiku", + "display_name": "anthropic--claude-3-haiku", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 200000, + "output": 4096 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "release_date": "2025-12-02", - "last_updated": "2025-12-02", + "attachment": true, + "open_weights": false, + "knowledge": "2023-08-31", + "release_date": "2024-03-13", + "last_updated": "2024-03-13", "cost": { - "input": 0.6, - "output": 2.5 + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 } - } - ] - }, - "poe": { - "id": "poe", - "name": "Poe", - "display_name": "Poe", - "api": "https://api.poe.com/v1", - "doc": "https://creator.poe.com/docs/external-applications/openai-compatible-api", - "models": [ + }, { - "id": "xai/grok-4-fast-non-reasoning", - "name": "Grok-4-Fast-Non-Reasoning", - "display_name": "Grok-4-Fast-Non-Reasoning", + "id": "anthropic--claude-3-sonnet", + "name": "anthropic--claude-3-sonnet", + "display_name": "anthropic--claude-3-sonnet", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 2000000, - "output": 128000 + "context": 200000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2025-09-16", - "last_updated": "2025-09-16", + "knowledge": "2023-08-31", + "release_date": "2024-03-04", + "last_updated": "2024-03-04", "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05 + "input": 3, + "output": 15 } }, { - "id": "xai/grok-4-fast-reasoning", - "name": "Grok 4 Fast Reasoning", - "display_name": "Grok 4 Fast Reasoning", + "id": "gpt-5-nano", + "name": "gpt-5-nano", + "display_name": "gpt-5-nano", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 2000000, + "context": 400000, "output": 128000 }, "temperature": false, @@ -48543,31 +48559,34 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-09-16", - "last_updated": "2025-09-16", + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05 + "input": 0.05, + "output": 0.4, + "cache_read": 0.01 } }, { - "id": "xai/grok-4.1-fast-reasoning", - "name": "Grok-4.1-Fast-Reasoning", - "display_name": "Grok-4.1-Fast-Reasoning", + "id": "anthropic--claude-3.7-sonnet", + "name": "anthropic--claude-3.7-sonnet", + "display_name": "anthropic--claude-3.7-sonnet", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 2000000, - "output": 30000 + "context": 200000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -48575,13 +48594,20 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-11-19", - "last_updated": "2025-11-19" + "knowledge": "2024-10-31", + "release_date": "2025-02-24", + "last_updated": "2025-02-24", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } }, { - "id": "xai/grok-4", - "name": "Grok 4", - "display_name": "Grok 4", + "id": "gpt-5-mini", + "name": "gpt-5-mini", + "display_name": "gpt-5-mini", "modalities": { "input": [ "text", @@ -48592,7 +48618,7 @@ ] }, "limit": { - "context": 256000, + "context": 400000, "output": 128000 }, "temperature": false, @@ -48603,32 +48629,34 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-07-10", - "last_updated": "2025-07-10", + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 3, - "output": 15, - "cache_read": 0.75 + "input": 0.25, + "output": 2, + "cache_read": 0.03 } }, { - "id": "xai/grok-code-fast-1", - "name": "Grok Code Fast 1", - "display_name": "Grok Code Fast 1", + "id": "anthropic--claude-4.5-sonnet", + "name": "anthropic--claude-4.5-sonnet", + "display_name": "anthropic--claude-4.5-sonnet", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 128000 + "context": 200000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -48636,118 +48664,138 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-08-22", - "last_updated": "2025-08-22", + "knowledge": "2025-01-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "cost": { - "input": 0.2, - "output": 1.5, - "cache_read": 0.02 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "xai/grok-2", - "name": "Grok-2", - "display_name": "Grok-2", + "id": "gemini-2.5-pro", + "name": "gemini-2.5-pro", + "display_name": "gemini-2.5-pro", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 1048576, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2025-01-14", - "last_updated": "2025-01-14", + "knowledge": "2025-01", + "release_date": "2025-03-25", + "last_updated": "2025-06-05", "cost": { - "input": 2, - "output": 10 + "input": 1.25, + "output": 10, + "cache_read": 0.31 } }, { - "id": "xai/grok-4.1-fast-non-reasoning", - "name": "Grok-4.1-Fast-Non-Reasoning", - "display_name": "Grok-4.1-Fast-Non-Reasoning", + "id": "anthropic--claude-3-opus", + "name": "anthropic--claude-3-opus", + "display_name": "anthropic--claude-3-opus", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 2000000, - "output": 30000 + "context": 200000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2025-11-19", - "last_updated": "2025-11-19" + "knowledge": "2023-08-31", + "release_date": "2024-02-29", + "last_updated": "2024-02-29", + "cost": { + "input": 15, + "output": 75 + } }, { - "id": "xai/grok-3", - "name": "Grok 3", - "display_name": "Grok 3", + "id": "anthropic--claude-4-sonnet", + "name": "anthropic--claude-4-sonnet", + "display_name": "anthropic--claude-4-sonnet", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 200000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2025-04-11", - "last_updated": "2025-04-11", + "knowledge": "2025-01-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { "input": 3, "output": 15, - "cache_read": 0.75 + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "xai/grok-3-mini", - "name": "Grok 3 Mini", - "display_name": "Grok 3 Mini", + "id": "gpt-5", + "name": "gpt-5", + "display_name": "gpt-5", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 400000, + "output": 128000 }, "temperature": false, "tool_call": true, @@ -48757,191 +48805,255 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-04-11", - "last_updated": "2025-04-11", + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 0.3, - "output": 0.5, - "cache_read": 0.075 + "input": 1.25, + "output": 10, + "cache_read": 0.13 } - }, + } + ] + }, + "anthropic": { + "id": "anthropic", + "name": "Anthropic", + "display_name": "Anthropic", + "doc": "https://docs.anthropic.com/en/docs/about-claude/models", + "models": [ { - "id": "ideogramai/ideogram", - "name": "Ideogram", - "display_name": "Ideogram", + "id": "claude-opus-4-0", + "name": "Claude Opus 4 (latest)", + "display_name": "Claude Opus 4 (latest)", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 150, - "output": 0 + "context": 200000, + "output": 32000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2024-04-03", - "last_updated": "2024-04-03" + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } }, { - "id": "ideogramai/ideogram-v2a", - "name": "Ideogram-v2a", - "display_name": "Ideogram-v2a", + "id": "claude-3-5-sonnet-20241022", + "name": "Claude Sonnet 3.5 v2", + "display_name": "Claude Sonnet 3.5 v2", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 150, - "output": 0 + "context": 200000, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2025-02-27", - "last_updated": "2025-02-27" + "knowledge": "2024-04-30", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } }, { - "id": "ideogramai/ideogram-v2a-turbo", - "name": "Ideogram-v2a-Turbo", - "display_name": "Ideogram-v2a-Turbo", + "id": "claude-opus-4-1", + "name": "Claude Opus 4.1 (latest)", + "display_name": "Claude Opus 4.1 (latest)", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 150, - "output": 0 + "context": 200000, + "output": 32000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2025-02-27", - "last_updated": "2025-02-27" + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } }, { - "id": "ideogramai/ideogram-v2", - "name": "Ideogram-v2", - "display_name": "Ideogram-v2", + "id": "claude-haiku-4-5", + "name": "Claude Haiku 4.5 (latest)", + "display_name": "Claude Haiku 4.5 (latest)", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 150, - "output": 0 + "context": 200000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2024-08-21", - "last_updated": "2024-08-21" + "knowledge": "2025-02-28", + "release_date": "2025-10-15", + "last_updated": "2025-10-15", + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } }, { - "id": "runwayml/runway", - "name": "Runway", - "display_name": "Runway", + "id": "claude-3-5-sonnet-20240620", + "name": "Claude Sonnet 3.5", + "display_name": "Claude Sonnet 3.5", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ - "video" + "text" ] }, "limit": { - "context": 256, - "output": 0 + "context": 200000, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2024-10-11", - "last_updated": "2024-10-11" + "knowledge": "2024-04-30", + "release_date": "2024-06-20", + "last_updated": "2024-06-20", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } }, { - "id": "runwayml/runway-gen-4-turbo", - "name": "Runway-Gen-4-Turbo", - "display_name": "Runway-Gen-4-Turbo", + "id": "claude-3-5-haiku-latest", + "name": "Claude Haiku 3.5 (latest)", + "display_name": "Claude Haiku 3.5 (latest)", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ - "video" + "text" ] }, "limit": { - "context": 256, - "output": 0 + "context": 200000, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2025-05-09", - "last_updated": "2025-05-09" + "knowledge": "2024-07-31", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } }, { - "id": "poetools/claude-code", - "name": "claude-code", - "display_name": "claude-code", + "id": "claude-opus-4-5", + "name": "Claude Opus 4.5 (latest)", + "display_name": "Claude Opus 4.5 (latest)", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 200000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -48949,106 +49061,142 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-11-27", - "last_updated": "2025-11-27" + "knowledge": "2025-03-31", + "release_date": "2025-11-24", + "last_updated": "2025-11-24", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } }, { - "id": "elevenlabs/elevenlabs-v3", - "name": "ElevenLabs-v3", - "display_name": "ElevenLabs-v3", + "id": "claude-3-opus-20240229", + "name": "Claude Opus 3", + "display_name": "Claude Opus 3", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ - "audio" + "text" ] }, "limit": { - "context": 128000, - "output": 0 + "context": 200000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2025-06-05", - "last_updated": "2025-06-05" + "knowledge": "2023-08-31", + "release_date": "2024-02-29", + "last_updated": "2024-02-29", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } }, { - "id": "elevenlabs/elevenlabs-music", - "name": "ElevenLabs-Music", - "display_name": "ElevenLabs-Music", + "id": "claude-opus-4-5-20251101", + "name": "Claude Opus 4.5", + "display_name": "Claude Opus 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ - "audio" + "text" ] }, "limit": { - "context": 2000, - "output": 0 + "context": 200000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2025-08-29", - "last_updated": "2025-08-29" + "knowledge": "2025-03-31", + "release_date": "2025-11-01", + "last_updated": "2025-11-01", + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } }, { - "id": "elevenlabs/elevenlabs-v2.5-turbo", - "name": "ElevenLabs-v2.5-Turbo", - "display_name": "ElevenLabs-v2.5-Turbo", + "id": "claude-sonnet-4-5", + "name": "Claude Sonnet 4.5 (latest)", + "display_name": "Claude Sonnet 4.5 (latest)", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ - "audio" + "text" ] }, "limit": { - "context": 128000, - "output": 0 + "context": 200000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2024-10-28", - "last_updated": "2024-10-28" + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } }, { - "id": "google/gemini-deep-research", - "name": "gemini-deep-research", - "display_name": "gemini-deep-research", + "id": "claude-sonnet-4-5-20250929", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", "modalities": { "input": [ "text", "image", - "video" + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 0 + "context": 200000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -49056,143 +49204,177 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-12-11", - "last_updated": "2025-12-11", + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "cost": { - "input": 1.6, - "output": 9.6 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "google/nano-banana", - "name": "Nano-Banana", - "display_name": "Nano-Banana", + "id": "claude-sonnet-4-20250514", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ - "text", - "image" + "text" ] }, "limit": { - "context": 32768, - "output": 0 + "context": 200000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2025-08-21", - "last_updated": "2025-08-21", + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { - "input": 0.21, - "output": 1.8 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "google/imagen-4", - "name": "Imagen-4", - "display_name": "Imagen-4", + "id": "claude-opus-4-20250514", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 480, - "output": 0 + "context": 200000, + "output": 32000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, + "knowledge": "2025-03-31", "release_date": "2025-05-22", - "last_updated": "2025-05-22" + "last_updated": "2025-05-22", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } }, { - "id": "google/imagen-3", - "name": "Imagen-3", - "display_name": "Imagen-3", + "id": "claude-3-5-haiku-20241022", + "name": "Claude Haiku 3.5", + "display_name": "Claude Haiku 3.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 480, - "output": 0 + "context": 200000, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2024-10-15", - "last_updated": "2024-10-15" + "knowledge": "2024-07-31", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } }, { - "id": "google/imagen-4-ultra", - "name": "Imagen-4-Ultra", - "display_name": "Imagen-4-Ultra", + "id": "claude-3-haiku-20240307", + "name": "Claude Haiku 3", + "display_name": "Claude Haiku 3", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 480, - "output": 0 + "context": 200000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2025-05-24", - "last_updated": "2025-05-24" + "knowledge": "2023-08-31", + "release_date": "2024-03-13", + "last_updated": "2024-03-13", + "cost": { + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 + } }, { - "id": "google/gemini-2.5-flash", - "name": "Gemini 2.5 Flash", - "display_name": "Gemini 2.5 Flash", + "id": "claude-3-7-sonnet-20250219", + "name": "Claude Sonnet 3.7", + "display_name": "Claude Sonnet 3.7", "modalities": { "input": [ "text", "image", - "video", - "audio" + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 1065535, - "output": 65535 + "context": 200000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -49200,67 +49382,71 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-04-26", - "last_updated": "2025-04-26", + "knowledge": "2024-10-31", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", "cost": { - "input": 0.21, - "output": 1.8, - "cache_read": 0.052 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "google/gemini-2.0-flash-lite", - "name": "Gemini-2.0-Flash-Lite", - "display_name": "Gemini-2.0-Flash-Lite", + "id": "claude-3-7-sonnet-latest", + "name": "Claude Sonnet 3.7 (latest)", + "display_name": "Claude Sonnet 3.7 (latest)", "modalities": { "input": [ "text", "image", - "video", - "audio" + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 990000, - "output": 8192 + "context": 200000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2025-02-05", - "last_updated": "2025-02-05", + "knowledge": "2024-10-31", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", "cost": { - "input": 0.052, - "output": 0.21 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "google/gemini-3-pro", - "name": "Gemini-3-Pro", - "display_name": "Gemini-3-Pro", + "id": "claude-sonnet-4-0", + "name": "Claude Sonnet 4 (latest)", + "display_name": "Claude Sonnet 4 (latest)", "modalities": { "input": [ "text", "image", - "video", - "audio" + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 1048576, + "context": 200000, "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, @@ -49268,642 +49454,721 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-10-22", - "last_updated": "2025-10-22", + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "cost": { - "input": 1.6, - "output": 9.6, - "cache_read": 0.16 + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 } }, { - "id": "google/veo-3.1", - "name": "Veo-3.1", - "display_name": "Veo-3.1", + "id": "claude-opus-4-1-20250805", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ - "video" + "text" ] }, "limit": { - "context": 480, - "output": 0 + "context": 200000, + "output": 32000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2025-10-15", - "last_updated": "2025-10-15" + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } }, { - "id": "google/imagen-3-fast", - "name": "Imagen-3-Fast", - "display_name": "Imagen-3-Fast", + "id": "claude-3-sonnet-20240229", + "name": "Claude Sonnet 3", + "display_name": "Claude Sonnet 3", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 480, - "output": 0 + "context": 200000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2024-10-17", - "last_updated": "2024-10-17" + "knowledge": "2023-08-31", + "release_date": "2024-03-04", + "last_updated": "2024-03-04", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 0.3 + } }, { - "id": "google/lyria", - "name": "Lyria", - "display_name": "Lyria", + "id": "claude-haiku-4-5-20251001", + "name": "Claude Haiku 4.5", + "display_name": "Claude Haiku 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ - "audio" + "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 200000, + "output": 64000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2025-06-04", - "last_updated": "2025-06-04" - }, + "knowledge": "2025-02-28", + "release_date": "2025-10-15", + "last_updated": "2025-10-15", + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + } + ] + }, + "fireworks-ai": { + "id": "fireworks-ai", + "name": "Fireworks AI", + "display_name": "Fireworks AI", + "api": "https://api.fireworks.ai/inference/v1/", + "doc": "https://fireworks.ai/docs/", + "models": [ { - "id": "google/gemini-2.0-flash", - "name": "Gemini-2.0-Flash", - "display_name": "Gemini-2.0-Flash", + "id": "accounts/fireworks/models/deepseek-r1-0528", + "name": "Deepseek R1 05/28", + "display_name": "Deepseek R1 05/28", "modalities": { "input": [ - "text", - "image", - "video", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 990000, - "output": 8192 + "context": 160000, + "output": 16384 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2024-12-11", - "last_updated": "2024-12-11", + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-05-28", + "last_updated": "2025-05-28", "cost": { - "input": 0.1, - "output": 0.42 + "input": 3, + "output": 8 } }, { - "id": "google/gemini-2.5-flash-lite", - "name": "Gemini 2.5 Flash Lite", - "display_name": "Gemini 2.5 Flash Lite", + "id": "accounts/fireworks/models/deepseek-v3p1", + "name": "DeepSeek V3.1", + "display_name": "DeepSeek V3.1", "modalities": { "input": [ - "text", - "image", - "video", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1024000, - "output": 64000 + "context": 163840, + "output": 163840 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-06-19", - "last_updated": "2025-06-19", + "attachment": false, + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-08-21", + "last_updated": "2025-08-21", "cost": { - "input": 0.07, - "output": 0.28 + "input": 0.56, + "output": 1.68 } }, { - "id": "google/veo-3", - "name": "Veo-3", - "display_name": "Veo-3", + "id": "accounts/fireworks/models/deepseek-v3p2", + "name": "DeepSeek V3.2", + "display_name": "DeepSeek V3.2", "modalities": { "input": [ "text" ], "output": [ - "video" + "text" ] }, "limit": { - "context": 480, - "output": 0 + "context": 160000, + "output": 160000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-05-21", - "last_updated": "2025-05-21" + "attachment": false, + "open_weights": true, + "knowledge": "2025-09", + "release_date": "2025-12-01", + "last_updated": "2025-12-01", + "cost": { + "input": 0.56, + "output": 1.68, + "cache_read": 0.28 + } }, { - "id": "google/veo-3-fast", - "name": "Veo-3-Fast", - "display_name": "Veo-3-Fast", + "id": "accounts/fireworks/models/minimax-m2", + "name": "MiniMax-M2", + "display_name": "MiniMax-M2", "modalities": { "input": [ "text" ], "output": [ - "video" + "text" ] }, "limit": { - "context": 480, - "output": 0 + "context": 128000, + "output": 128000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-10-13", - "last_updated": "2025-10-13" + "attachment": false, + "open_weights": true, + "knowledge": "2024-11", + "release_date": "2025-10-27", + "last_updated": "2025-10-27", + "cost": { + "input": 0.3, + "output": 1.2 + } }, { - "id": "google/imagen-4-fast", - "name": "Imagen-4-Fast", - "display_name": "Imagen-4-Fast", + "id": "accounts/fireworks/models/glm-4p7", + "name": "GLM 4.7", + "display_name": "GLM 4.7", "modalities": { "input": [ "text" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 480, - "output": 0 + "context": 198000, + "output": 198000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-06-25", - "last_updated": "2025-06-25" + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-12-22", + "last_updated": "2025-12-22", + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.3 + } }, { - "id": "google/veo-2", - "name": "Veo-2", - "display_name": "Veo-2", + "id": "accounts/fireworks/models/deepseek-v3-0324", + "name": "Deepseek V3 03-24", + "display_name": "Deepseek V3 03-24", "modalities": { "input": [ "text" ], "output": [ - "video" + "text" ] }, "limit": { - "context": 480, - "output": 0 + "context": 160000, + "output": 16384 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2024-12-02", - "last_updated": "2024-12-02" + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-03-24", + "last_updated": "2025-03-24", + "cost": { + "input": 0.9, + "output": 0.9 + } }, { - "id": "google/nano-banana-pro", - "name": "Nano-Banana-Pro", - "display_name": "Nano-Banana-Pro", + "id": "accounts/fireworks/models/glm-4p6", + "name": "GLM 4.6", + "display_name": "GLM 4.6", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 65536, - "output": 0 + "context": 198000, + "output": 198000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-11-19", - "last_updated": "2025-11-19", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-10-01", + "last_updated": "2025-10-01", "cost": { - "input": 1.6, - "output": 9.6, - "cache_read": 0.16 + "input": 0.55, + "output": 2.19, + "cache_read": 0.28 } }, { - "id": "google/gemini-2.5-pro", - "name": "Gemini 2.5 Pro", - "display_name": "Gemini 2.5 Pro", + "id": "accounts/fireworks/models/kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ - "text", - "image", - "video", - "audio" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1065535, - "output": 65535 + "context": 256000, + "output": 256000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-02-05", - "last_updated": "2025-02-05", + "attachment": false, + "open_weights": true, + "release_date": "2025-11-06", + "last_updated": "2025-11-06", "cost": { - "input": 0.87, - "output": 7, - "cache_read": 0.22 + "input": 0.6, + "output": 2.5 } }, { - "id": "google/veo-3.1-fast", - "name": "Veo-3.1-Fast", - "display_name": "Veo-3.1-Fast", + "id": "accounts/fireworks/models/kimi-k2-instruct", + "name": "Kimi K2 Instruct", + "display_name": "Kimi K2 Instruct", "modalities": { "input": [ "text" ], "output": [ - "video" + "text" ] }, "limit": { - "context": 480, - "output": 0 + "context": 128000, + "output": 16384 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-10-15", - "last_updated": "2025-10-15" + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-07-11", + "last_updated": "2025-07-11", + "cost": { + "input": 1, + "output": 3 + } }, { - "id": "openai/gpt-4.1-nano", - "name": "GPT-4.1-nano", - "display_name": "GPT-4.1-nano", + "id": "accounts/fireworks/models/qwen3-235b-a22b", + "name": "Qwen3 235B-A22B", + "display_name": "Qwen3 235B-A22B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 128000, + "output": 16384 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-04-15", - "last_updated": "2025-04-15", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-29", + "last_updated": "2025-04-29", "cost": { - "input": 0.09, - "output": 0.36, - "cache_read": 0.022 + "input": 0.22, + "output": 0.88 } }, { - "id": "openai/gpt-5.2-instant", - "name": "gpt-5.2-instant", - "display_name": "gpt-5.2-instant", + "id": "accounts/fireworks/models/gpt-oss-20b", + "name": "GPT OSS 20B", + "display_name": "GPT OSS 20B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 131072, + "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-12-11", - "last_updated": "2025-12-11", + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "cost": { - "input": 1.6, - "output": 13, - "cache_read": 0.16 + "input": 0.05, + "output": 0.2 } }, { - "id": "openai/sora-2", - "name": "Sora-2", - "display_name": "Sora-2", + "id": "accounts/fireworks/models/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "video" + "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 131072, + "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-10-06", - "last_updated": "2025-10-06" + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.15, + "output": 0.6 + } }, { - "id": "openai/o1-pro", - "name": "o1-pro", - "display_name": "o1-pro", + "id": "accounts/fireworks/models/glm-4p5-air", + "name": "GLM 4.5 Air", + "display_name": "GLM 4.5 Air", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 131072, + "output": 131072 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-03-19", - "last_updated": "2025-03-19", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-08-01", + "last_updated": "2025-08-01", "cost": { - "input": 140, - "output": 540 + "input": 0.22, + "output": 0.88 } }, { - "id": "openai/gpt-5.1-codex", - "name": "GPT-5.1-Codex", - "display_name": "GPT-5.1-Codex", + "id": "accounts/fireworks/models/qwen3-coder-480b-a35b-instruct", + "name": "Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen3 Coder 480B A35B Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 256000, + "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-11-12", - "last_updated": "2025-11-12", + "attachment": false, + "open_weights": true, + "release_date": "2025-07-22", + "last_updated": "2025-07-22", "cost": { - "input": 1.1, - "output": 9, - "cache_read": 0.11 + "input": 0.45, + "output": 1.8 } }, { - "id": "openai/gpt-3.5-turbo-raw", - "name": "GPT-3.5-Turbo-Raw", - "display_name": "GPT-3.5-Turbo-Raw", + "id": "accounts/fireworks/models/glm-4p5", + "name": "GLM 4.5", + "display_name": "GLM 4.5", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 4524, - "output": 2048 + "context": 131072, + "output": 131072 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2023-09-27", - "last_updated": "2023-09-27", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-29", + "last_updated": "2025-07-29", "cost": { - "input": 0.45, - "output": 1.4 + "input": 0.55, + "output": 2.19 } - }, + } + ] + }, + "io-net": { + "id": "io-net", + "name": "IO.NET", + "display_name": "IO.NET", + "api": "https://api.intelligence.io.solutions/api/v1", + "doc": "https://io.net/docs/guides/intelligence/io-intelligence", + "models": [ { - "id": "openai/gpt-4-classic", - "name": "GPT-4-Classic", - "display_name": "GPT-4-Classic", + "id": "moonshotai/Kimi-K2-Instruct-0905", + "name": "Kimi K2 Instruct", + "display_name": "Kimi K2 Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 8192, + "context": 32768, "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2024-03-25", - "last_updated": "2024-03-25", + "knowledge": "2024-08", + "release_date": "2024-09-05", + "last_updated": "2024-09-05", "cost": { - "input": 27, - "output": 54 + "input": 0.39, + "output": 1.9, + "cache_read": 0.195, + "cache_write": 0.78 } }, { - "id": "openai/gpt-4.1-mini", - "name": "GPT-4.1-mini", - "display_name": "GPT-4.1-mini", + "id": "moonshotai/Kimi-K2-Thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 32768, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-04-15", - "last_updated": "2025-04-15", + "knowledge": "2024-08", + "release_date": "2024-11-01", + "last_updated": "2024-11-01", "cost": { - "input": 0.36, - "output": 1.4, - "cache_read": 0.09 + "input": 0.55, + "output": 2.25, + "cache_read": 0.275, + "cache_write": 1.1 } }, { - "id": "openai/gpt-5-chat", - "name": "GPT-5-Chat", - "display_name": "GPT-5-Chat", + "id": "openai/gpt-oss-20b", + "name": "GPT-OSS 20B", + "display_name": "GPT-OSS 20B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 64000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-08-07", - "last_updated": "2025-08-07", + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2024-12-01", + "last_updated": "2024-12-01", "cost": { - "input": 1.1, - "output": 9, - "cache_read": 0.11 + "input": 0.03, + "output": 0.14, + "cache_read": 0.015, + "cache_write": 0.06 } }, { - "id": "openai/o3-deep-research", - "name": "o3-deep-research", - "display_name": "o3-deep-research", + "id": "openai/gpt-oss-120b", + "name": "GPT-OSS 120B", + "display_name": "GPT-OSS 120B", "modalities": { "input": [ "text" @@ -49913,29 +50178,30 @@ ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 131072, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-06-27", - "last_updated": "2025-06-27", + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2024-12-01", + "last_updated": "2024-12-01", "cost": { - "input": 9, - "output": 36, - "cache_read": 2.2 + "input": 0.04, + "output": 0.4, + "cache_read": 0.02, + "cache_write": 0.08 } }, { - "id": "openai/gpt-4o-search", - "name": "GPT-4o-Search", - "display_name": "GPT-4o-Search", + "id": "mistralai/Devstral-Small-2505", + "name": "Devstral Small 2505", + "display_name": "Devstral Small 2505", "modalities": { "input": [ "text" @@ -49946,84 +50212,95 @@ }, "limit": { "context": 128000, - "output": 8192 + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-03-11", - "last_updated": "2025-03-11", + "knowledge": "2024-12", + "release_date": "2025-05-01", + "last_updated": "2025-05-01", "cost": { - "input": 2.2, - "output": 9 + "input": 0.05, + "output": 0.22, + "cache_read": 0.025, + "cache_write": 0.1 } }, { - "id": "openai/gpt-image-1-mini", - "name": "GPT-Image-1-Mini", - "display_name": "GPT-Image-1-Mini", + "id": "mistralai/Mistral-Nemo-Instruct-2407", + "name": "Mistral Nemo Instruct 2407", + "display_name": "Mistral Nemo Instruct 2407", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 128000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-08-26", - "last_updated": "2025-08-26" + "attachment": false, + "open_weights": true, + "knowledge": "2024-05", + "release_date": "2024-07-01", + "last_updated": "2024-07-01", + "cost": { + "input": 0.02, + "output": 0.04, + "cache_read": 0.01, + "cache_write": 0.04 + } }, { - "id": "openai/gpt-3.5-turbo", - "name": "GPT-3.5-Turbo", - "display_name": "GPT-3.5-Turbo", + "id": "mistralai/Magistral-Small-2506", + "name": "Magistral Small 2506", + "display_name": "Magistral Small 2506", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 16384, - "output": 2048 + "context": 128000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2023-09-13", - "last_updated": "2023-09-13", + "knowledge": "2025-01", + "release_date": "2025-06-01", + "last_updated": "2025-06-01", "cost": { - "input": 0.45, - "output": 1.4 + "input": 0.5, + "output": 1.5, + "cache_read": 0.25, + "cache_write": 1 } }, { - "id": "openai/gpt-5.2-pro", - "name": "gpt-5.2-pro", - "display_name": "gpt-5.2-pro", + "id": "mistralai/Mistral-Large-Instruct-2411", + "name": "Mistral Large Instruct 2411", + "display_name": "Mistral Large Instruct 2411", "modalities": { "input": [ "text", @@ -50034,60 +50311,63 @@ ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 128000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-12-11", - "last_updated": "2025-12-11", + "knowledge": "2024-10", + "release_date": "2024-11-01", + "last_updated": "2024-11-01", "cost": { - "input": 19, - "output": 150 + "input": 2, + "output": 6, + "cache_read": 1, + "cache_write": 4 } }, { - "id": "openai/o3-mini-high", - "name": "o3-mini-high", - "display_name": "o3-mini-high", + "id": "meta-llama/Llama-3.3-70B-Instruct", + "name": "Llama 3.3 70B Instruct", + "display_name": "Llama 3.3 70B Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 128000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-01-31", - "last_updated": "2025-01-31", + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", "cost": { - "input": 0.99, - "output": 4 + "input": 0.13, + "output": 0.38, + "cache_read": 0.065, + "cache_write": 0.26 } }, { - "id": "openai/chatgpt-4o-latest", - "name": "ChatGPT-4o-Latest", - "display_name": "ChatGPT-4o-Latest", + "id": "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", + "name": "Llama 4 Maverick 17B 128E Instruct", + "display_name": "Llama 4 Maverick 17B 128E Instruct", "modalities": { "input": [ "text", @@ -50098,27 +50378,30 @@ ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 430000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2024-08-14", - "last_updated": "2024-08-14", + "attachment": false, + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-15", + "last_updated": "2025-01-15", "cost": { - "input": 4.5, - "output": 14 + "input": 0.15, + "output": 0.6, + "cache_read": 0.075, + "cache_write": 0.3 } }, { - "id": "openai/gpt-4-turbo", - "name": "GPT-4-Turbo", - "display_name": "GPT-4-Turbo", + "id": "meta-llama/Llama-3.2-90B-Vision-Instruct", + "name": "Llama 3.2 90B Vision Instruct", + "display_name": "Llama 3.2 90B Vision Instruct", "modalities": { "input": [ "text", @@ -50129,27 +50412,30 @@ ] }, "limit": { - "context": 128000, + "context": 16000, "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2023-09-13", - "last_updated": "2023-09-13", + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", "cost": { - "input": 9, - "output": 27 + "input": 0.35, + "output": 0.4, + "cache_read": 0.175, + "cache_write": 0.7 } }, { - "id": "openai/gpt-5.1-codex-mini", - "name": "GPT-5.1-Codex-Mini", - "display_name": "GPT-5.1-Codex-Mini", + "id": "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar", + "name": "Qwen 3 Coder 480B", + "display_name": "Qwen 3 Coder 480B", "modalities": { "input": [ "text" @@ -50159,29 +50445,30 @@ ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 106000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-11-12", - "last_updated": "2025-11-12", + "attachment": false, + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-15", + "last_updated": "2025-01-15", "cost": { "input": 0.22, - "output": 1.8, - "cache_read": 0.022 + "output": 0.95, + "cache_read": 0.11, + "cache_write": 0.44 } }, { - "id": "openai/gpt-5.1-instant", - "name": "GPT-5.1-Instant", - "display_name": "GPT-5.1-Instant", + "id": "Qwen/Qwen2.5-VL-32B-Instruct", + "name": "Qwen 2.5 VL 32B Instruct", + "display_name": "Qwen 2.5 VL 32B Instruct", "modalities": { "input": [ "text", @@ -50192,406 +50479,433 @@ ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 32000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-11-12", - "last_updated": "2025-11-12", + "attachment": false, + "open_weights": true, + "knowledge": "2024-09", + "release_date": "2024-11-01", + "last_updated": "2024-11-01", "cost": { - "input": 1.1, - "output": 9, - "cache_read": 0.11 + "input": 0.05, + "output": 0.22, + "cache_read": 0.025, + "cache_write": 0.1 } }, { - "id": "openai/o3-mini", - "name": "o3-mini", - "display_name": "o3-mini", + "id": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "name": "Qwen 3 235B Thinking", + "display_name": "Qwen 3 235B Thinking", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 262144, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-01-31", - "last_updated": "2025-01-31", + "attachment": false, + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-07-01", + "last_updated": "2025-07-01", "cost": { - "input": 0.99, - "output": 4 + "input": 0.11, + "output": 0.6, + "cache_read": 0.055, + "cache_write": 0.22 } }, { - "id": "openai/gpt-5.1", - "name": "GPT-5.1", - "display_name": "GPT-5.1", + "id": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "name": "Qwen 3 Next 80B Instruct", + "display_name": "Qwen 3 Next 80B Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 262144, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-11-12", - "last_updated": "2025-11-12", + "attachment": false, + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-10", + "last_updated": "2025-01-10", "cost": { - "input": 1.1, - "output": 9, - "cache_read": 0.11 + "input": 0.1, + "output": 0.8, + "cache_read": 0.05, + "cache_write": 0.2 } }, { - "id": "openai/gpt-5-nano", - "name": "GPT-5-nano", - "display_name": "GPT-5-nano", + "id": "zai-org/GLM-4.6", + "name": "GLM 4.6", + "display_name": "GLM 4.6", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 200000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2024-10", + "release_date": "2024-11-15", + "last_updated": "2024-11-15", "cost": { - "input": 0.045, - "output": 0.36, - "cache_read": 0.0045 + "input": 0.4, + "output": 1.75, + "cache_read": 0.2, + "cache_write": 0.8 } }, { - "id": "openai/gpt-5-codex", - "name": "GPT-5-Codex", - "display_name": "GPT-5-Codex", + "id": "deepseek-ai/DeepSeek-R1-0528", + "name": "DeepSeek R1", + "display_name": "DeepSeek R1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 128000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-09-23", - "last_updated": "2025-09-23", + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-05-28", "cost": { - "input": 1.1, - "output": 9 + "input": 2, + "output": 8.75, + "cache_read": 1, + "cache_write": 4 } - }, + } + ] + }, + "modelscope": { + "id": "modelscope", + "name": "ModelScope", + "display_name": "ModelScope", + "api": "https://api-inference.modelscope.cn/v1", + "doc": "https://modelscope.cn/docs/model-service/API-Inference/intro", + "models": [ { - "id": "openai/gpt-4o", - "name": "GPT-4o", - "display_name": "GPT-4o", + "id": "ZhipuAI/GLM-4.5", + "name": "GLM-4.5", + "display_name": "GLM-4.5", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 131072, + "output": 98304 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2024-05-13", - "last_updated": "2024-05-13" + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0, + "output": 0 + } }, { - "id": "openai/gpt-4.1", - "name": "GPT-4.1", - "display_name": "GPT-4.1", + "id": "ZhipuAI/GLM-4.6", + "name": "GLM-4.6", + "display_name": "GLM-4.6", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 202752, + "output": 98304 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-04-14", - "last_updated": "2025-04-14", + "attachment": false, + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-09-30", + "last_updated": "2025-09-30", "cost": { - "input": 1.8, - "output": 7.2, - "cache_read": 0.45 + "input": 0, + "output": 0 } }, { - "id": "openai/o4-mini", - "name": "o4-mini", - "display_name": "o4-mini", + "id": "Qwen/Qwen3-30B-A3B-Thinking-2507", + "name": "Qwen3 30B A3B Thinking 2507", + "display_name": "Qwen3 30B A3B Thinking 2507", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 262144, + "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-04-16", - "last_updated": "2025-04-16", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-30", + "last_updated": "2025-07-30", "cost": { - "input": 0.99, - "output": 4, - "cache_read": 0.25 + "input": 0, + "output": 0 } }, { - "id": "openai/o1", - "name": "o1", - "display_name": "o1", + "id": "Qwen/Qwen3-235B-A22B-Instruct-2507", + "name": "Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen3 235B A22B Instruct 2507", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 262144, + "output": 131072 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2024-12-18", - "last_updated": "2024-12-18", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-28", + "last_updated": "2025-07-21", "cost": { - "input": 14, - "output": 54 + "input": 0, + "output": 0 } }, { - "id": "openai/gpt-5-mini", - "name": "GPT-5-mini", - "display_name": "GPT-5-mini", + "id": "Qwen/Qwen3-Coder-30B-A3B-Instruct", + "name": "Qwen3 Coder 30B A3B Instruct", + "display_name": "Qwen3 Coder 30B A3B Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 262144, + "output": 65536 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-06-25", - "last_updated": "2025-06-25", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-31", + "last_updated": "2025-07-31", "cost": { - "input": 0.22, - "output": 1.8, - "cache_read": 0.022 + "input": 0, + "output": 0 } }, { - "id": "openai/gpt-4o-aug", - "name": "GPT-4o-Aug", - "display_name": "GPT-4o-Aug", + "id": "Qwen/Qwen3-30B-A3B-Instruct-2507", + "name": "Qwen3 30B A3B Instruct 2507", + "display_name": "Qwen3 30B A3B Instruct 2507", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 262144, + "output": 16384 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2024-11-21", - "last_updated": "2024-11-21", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-30", + "last_updated": "2025-07-30", "cost": { - "input": 2.2, - "output": 9, - "cache_read": 1.1 + "input": 0, + "output": 0 } }, { - "id": "openai/o3-pro", - "name": "o3-pro", - "display_name": "o3-pro", + "id": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "name": "Qwen3-235B-A22B-Thinking-2507", + "display_name": "Qwen3-235B-A22B-Thinking-2507", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 262144, + "output": 131072 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-06-10", - "last_updated": "2025-06-10", + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-25", + "last_updated": "2025-07-25", "cost": { - "input": 18, - "output": 72 + "input": 0, + "output": 0 } - }, - { - "id": "openai/gpt-image-1", - "name": "GPT-Image-1", - "display_name": "GPT-Image-1", + } + ] + }, + "azure-cognitive-services": { + "id": "azure-cognitive-services", + "name": "Azure Cognitive Services", + "display_name": "Azure Cognitive Services", + "doc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", + "models": [ + { + "id": "gpt-3.5-turbo-1106", + "name": "GPT-3.5 Turbo 1106", + "display_name": "GPT-3.5 Turbo 1106", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 128000, - "output": 0 + "context": 16384, + "output": 16384 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-03-31", - "last_updated": "2025-03-31" + "knowledge": "2021-08", + "release_date": "2023-11-06", + "last_updated": "2023-11-06", + "cost": { + "input": 1, + "output": 2 + } }, { - "id": "openai/gpt-5.1-codex-max", - "name": "gpt-5.1-codex-max", - "display_name": "gpt-5.1-codex-max", + "id": "mistral-small-2503", + "name": "Mistral Small 3.1", + "display_name": "Mistral Small 3.1", "modalities": { "input": [ "text", @@ -50602,104 +50916,102 @@ ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 128000, + "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2025-12-08", - "last_updated": "2025-12-08", + "knowledge": "2024-09", + "release_date": "2025-03-01", + "last_updated": "2025-03-01", "cost": { - "input": 1.1, - "output": 9, - "cache_read": 0.11 + "input": 0.1, + "output": 0.3 } }, { - "id": "openai/gpt-3.5-turbo-instruct", - "name": "GPT-3.5-Turbo-Instruct", - "display_name": "GPT-3.5-Turbo-Instruct", + "id": "codestral-2501", + "name": "Codestral 25.01", + "display_name": "Codestral 25.01", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 3500, - "output": 1024 + "context": 256000, + "output": 256000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2023-09-20", - "last_updated": "2023-09-20", + "knowledge": "2024-03", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", "cost": { - "input": 1.4, - "output": 1.8 + "input": 0.3, + "output": 0.9 } }, { - "id": "openai/o3", - "name": "o3", - "display_name": "o3", + "id": "mistral-large-2411", + "name": "Mistral Large 24.11", + "display_name": "Mistral Large 24.11", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 128000, + "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-04-16", - "last_updated": "2025-04-16", + "knowledge": "2024-09", + "release_date": "2024-11-01", + "last_updated": "2024-11-01", "cost": { - "input": 1.8, - "output": 7.2, - "cache_read": 0.45 + "input": 2, + "output": 6 } }, { - "id": "openai/o4-mini-deep-research", - "name": "o4-mini-deep-research", - "display_name": "o4-mini-deep-research", + "id": "gpt-5-pro", + "name": "GPT-5 Pro", + "display_name": "GPT-5 Pro", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 400000, + "output": 272000 }, "temperature": false, "tool_call": true, @@ -50709,53 +51021,54 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-06-27", - "last_updated": "2025-06-27", + "knowledge": "2024-09-30", + "release_date": "2025-10-06", + "last_updated": "2025-10-06", "cost": { - "input": 1.8, - "output": 7.2, - "cache_read": 0.45 + "input": 15, + "output": 120 } }, { - "id": "openai/gpt-4-classic-0314", - "name": "GPT-4-Classic-0314", - "display_name": "GPT-4-Classic-0314", + "id": "deepseek-v3.2", + "name": "DeepSeek-V3.2", + "display_name": "DeepSeek-V3.2", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 4096 + "context": 128000, + "output": 128000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2024-08-26", - "last_updated": "2024-08-26", + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-12-01", + "last_updated": "2025-12-01", "cost": { - "input": 27, - "output": 54 + "input": 0.28, + "output": 0.42, + "cache_read": 0.028 } }, { - "id": "openai/gpt-4o-mini", - "name": "GPT-4o-mini", - "display_name": "GPT-4o-mini", + "id": "mai-ds-r1", + "name": "MAI-DS-R1", + "display_name": "MAI-DS-R1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -50763,25 +51076,26 @@ }, "limit": { "context": 128000, - "output": 4096 + "output": 8192 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2024-07-18", - "last_updated": "2024-07-18", + "knowledge": "2024-06", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", "cost": { - "input": 0.14, - "output": 0.54, - "cache_read": 0.068 + "input": 1.35, + "output": 5.4 } }, { - "id": "openai/gpt-5", + "id": "gpt-5", "name": "GPT-5", "display_name": "GPT-5", "modalities": { @@ -50794,7 +51108,7 @@ ] }, "limit": { - "context": 400000, + "context": 272000, "output": 128000 }, "temperature": false, @@ -50805,103 +51119,84 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 1.1, - "output": 9, - "cache_read": 0.11 + "input": 1.25, + "output": 10, + "cache_read": 0.13 } }, { - "id": "openai/dall-e-3", - "name": "DALL-E-3", - "display_name": "DALL-E-3", - "modalities": { - "input": [ - "text" - ], - "output": [ - "image" - ] - }, - "limit": { - "context": 800, - "output": 0 - }, - "temperature": false, - "tool_call": true, - "reasoning": { - "supported": false - }, - "attachment": true, - "open_weights": false, - "release_date": "2023-11-06", - "last_updated": "2023-11-06" - }, - { - "id": "openai/sora-2-pro", - "name": "Sora-2-Pro", - "display_name": "Sora-2-Pro", + "id": "gpt-4o-mini", + "name": "GPT-4o mini", + "display_name": "GPT-4o mini", "modalities": { "input": [ "text", "image" ], "output": [ - "video" + "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 128000, + "output": 16384 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2025-10-06", - "last_updated": "2025-10-06" + "knowledge": "2023-09", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.08 + } }, { - "id": "openai/gpt-5-pro", - "name": "GPT-5-Pro", - "display_name": "GPT-5-Pro", + "id": "phi-4-reasoning-plus", + "name": "Phi-4-reasoning-plus", + "display_name": "Phi-4-reasoning-plus", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 32000, + "output": 4096 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": true, "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-10-06", - "last_updated": "2025-10-06", + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 14, - "output": 110 + "input": 0.125, + "output": 0.5 } }, { - "id": "openai/gpt-5.2", - "name": "gpt-5.2", - "display_name": "gpt-5.2", + "id": "gpt-4-turbo-vision", + "name": "GPT-4 Turbo Vision", + "display_name": "GPT-4 Turbo Vision", "modalities": { "input": [ "text", @@ -50912,29 +51207,28 @@ ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 128000, + "output": 4096 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2025-12-08", - "last_updated": "2025-12-08", + "knowledge": "2023-11", + "release_date": "2023-11-06", + "last_updated": "2024-04-09", "cost": { - "input": 1.6, - "output": 13, - "cache_read": 0.16 + "input": 10, + "output": 30 } }, { - "id": "openai/gpt-4o-mini-search", - "name": "GPT-4o-mini-Search", - "display_name": "GPT-4o-mini-Search", + "id": "phi-4-reasoning", + "name": "Phi-4-reasoning", + "display_name": "Phi-4-reasoning", "modalities": { "input": [ "text" @@ -50944,355 +51238,356 @@ ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 32000, + "output": 4096 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "release_date": "2025-03-11", - "last_updated": "2025-03-11", + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 0.14, - "output": 0.54 + "input": 0.125, + "output": 0.5 } }, { - "id": "stabilityai/stablediffusionxl", - "name": "StableDiffusionXL", - "display_name": "StableDiffusionXL", + "id": "phi-3-medium-4k-instruct", + "name": "Phi-3-medium-instruct (4k)", + "display_name": "Phi-3-medium-instruct (4k)", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 200, - "output": 0 + "context": 4096, + "output": 1024 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2023-07-09", - "last_updated": "2023-07-09" + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", + "cost": { + "input": 0.17, + "output": 0.68 + } }, { - "id": "topazlabs-co/topazlabs", - "name": "TopazLabs", - "display_name": "TopazLabs", + "id": "codex-mini", + "name": "Codex Mini", + "display_name": "Codex Mini", "modalities": { "input": [ "text" ], "output": [ - "image" + "text" ] }, "limit": { - "context": 204, - "output": 0 + "context": 200000, + "output": 100000 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2024-12-03", - "last_updated": "2024-12-03" + "knowledge": "2024-04", + "release_date": "2025-05-16", + "last_updated": "2025-05-16", + "cost": { + "input": 1.5, + "output": 6, + "cache_read": 0.375 + } }, { - "id": "lumalabs/ray2", - "name": "Ray2", - "display_name": "Ray2", + "id": "o3", + "name": "o3", + "display_name": "o3", "modalities": { "input": [ "text", "image" ], "output": [ - "video" + "text" ] }, "limit": { - "context": 5000, - "output": 0 + "context": 200000, + "output": 100000 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2025-02-20", - "last_updated": "2025-02-20" + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + } }, { - "id": "lumalabs/dream-machine", - "name": "Dream-Machine", - "display_name": "Dream-Machine", + "id": "mistral-nemo", + "name": "Mistral Nemo", + "display_name": "Mistral Nemo", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "video" + "text" ] }, "limit": { - "context": 5000, - "output": 0 + "context": 128000, + "output": 128000 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2024-09-18", - "last_updated": "2024-09-18" + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", + "cost": { + "input": 0.15, + "output": 0.15 + } }, { - "id": "anthropic/claude-opus-3", - "name": "Claude-Opus-3", - "display_name": "Claude-Opus-3", + "id": "gpt-3.5-turbo-instruct", + "name": "GPT-3.5 Turbo Instruct", + "display_name": "GPT-3.5 Turbo Instruct", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 189096, - "output": 8192 + "context": 4096, + "output": 4096 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2024-03-04", - "last_updated": "2024-03-04", + "knowledge": "2021-08", + "release_date": "2023-09-21", + "last_updated": "2023-09-21", "cost": { - "input": 13, - "output": 64, - "cache_read": 1.3, - "cache_write": 16 + "input": 1.5, + "output": 2 } }, { - "id": "anthropic/claude-opus-4", - "name": "Claude Opus 4", - "display_name": "Claude Opus 4", + "id": "meta-llama-3.1-8b-instruct", + "name": "Meta-Llama-3.1-8B-Instruct", + "display_name": "Meta-Llama-3.1-8B-Instruct", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 192512, + "context": 128000, "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-05-21", - "last_updated": "2025-05-21", + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "cost": { - "input": 13, - "output": 64, - "cache_read": 1.3, - "cache_write": 16 + "input": 0.3, + "output": 0.61 } }, { - "id": "anthropic/claude-sonnet-3.7-reasoning", - "name": "Claude Sonnet 3.7 Reasoning", - "display_name": "Claude Sonnet 3.7 Reasoning", + "id": "text-embedding-ada-002", + "name": "text-embedding-ada-002", + "display_name": "text-embedding-ada-002", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 196608, - "output": 128000 + "context": 8192, + "output": 1536 }, - "temperature": false, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "release_date": "2022-12-15", + "last_updated": "2022-12-15", "cost": { - "input": 2.6, - "output": 13, - "cache_read": 0.26, - "cache_write": 3.2 + "input": 0.1, + "output": 0 } }, { - "id": "anthropic/claude-opus-4-search", - "name": "Claude Opus 4 Search", - "display_name": "Claude Opus 4 Search", + "id": "cohere-embed-v3-english", + "name": "Embed v3 English", + "display_name": "Embed v3 English", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 196608, - "output": 128000 + "context": 512, + "output": 1024 }, "temperature": false, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-06-20", - "last_updated": "2025-06-20", + "attachment": false, + "open_weights": true, + "release_date": "2023-11-07", + "last_updated": "2023-11-07", "cost": { - "input": 13, - "output": 64, - "cache_read": 1.3, - "cache_write": 16 + "input": 0.1, + "output": 0 } }, { - "id": "anthropic/claude-sonnet-3.7", - "name": "Claude Sonnet 3.7", - "display_name": "Claude Sonnet 3.7", + "id": "llama-4-scout-17b-16e-instruct", + "name": "Llama 4 Scout 17B 16E Instruct", + "display_name": "Llama 4 Scout 17B 16E Instruct", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 196608, - "output": 32768 + "context": 128000, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "open_weights": false, - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", "cost": { - "input": 2.6, - "output": 13, - "cache_read": 0.26, - "cache_write": 3.2 + "input": 0.2, + "output": 0.78 } }, { - "id": "anthropic/claude-haiku-3.5-search", - "name": "Claude-Haiku-3.5-Search", - "display_name": "Claude-Haiku-3.5-Search", + "id": "o1-mini", + "name": "o1-mini", + "display_name": "o1-mini", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 189096, - "output": 8192 + "context": 128000, + "output": 65536 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-05-15", - "last_updated": "2025-05-15", + "knowledge": "2023-09", + "release_date": "2024-09-12", + "last_updated": "2024-09-12", "cost": { - "input": 0.68, - "output": 3.4, - "cache_read": 0.068, - "cache_write": 0.85 + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 } }, { - "id": "anthropic/claude-haiku-4.5", - "name": "Claude Haiku 4.5", - "display_name": "Claude Haiku 4.5", + "id": "gpt-5-mini", + "name": "GPT-5 Mini", + "display_name": "GPT-5 Mini", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 192000, - "output": 64000 + "context": 272000, + "output": 128000 }, "temperature": false, "tool_call": true, @@ -51302,136 +51597,133 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-10-15", - "last_updated": "2025-10-15", + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 0.85, - "output": 4.3, - "cache_read": 0.085, - "cache_write": 1.1 + "input": 0.25, + "output": 2, + "cache_read": 0.03 } }, { - "id": "anthropic/claude-sonnet-4-reasoning", - "name": "Claude Sonnet 4 Reasoning", - "display_name": "Claude Sonnet 4 Reasoning", + "id": "phi-3.5-moe-instruct", + "name": "Phi-3.5-MoE-instruct", + "display_name": "Phi-3.5-MoE-instruct", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 983040, - "output": 64000 + "context": 128000, + "output": 4096 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-05-21", - "last_updated": "2025-05-21", + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", "cost": { - "input": 2.6, - "output": 13, - "cache_read": 0.26, - "cache_write": 3.2 + "input": 0.16, + "output": 0.64 } }, { - "id": "anthropic/claude-haiku-3", - "name": "Claude-Haiku-3", - "display_name": "Claude-Haiku-3", + "id": "gpt-5.1-chat", + "name": "GPT-5.1 Chat", + "display_name": "GPT-5.1 Chat", "modalities": { "input": [ "text", "image", - "pdf" + "audio" ], "output": [ - "text" + "text", + "image", + "audio" ] }, "limit": { - "context": 189096, - "output": 8192 + "context": 128000, + "output": 16384 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2024-03-09", - "last_updated": "2024-03-09", + "knowledge": "2024-09-30", + "release_date": "2025-11-14", + "last_updated": "2025-11-14", "cost": { - "input": 0.21, - "output": 1.1, - "cache_read": 0.021, - "cache_write": 0.26 + "input": 1.25, + "output": 10, + "cache_read": 0.125 } }, { - "id": "anthropic/claude-opus-4.1", - "name": "Claude Opus 4.1", - "display_name": "Claude Opus 4.1", + "id": "grok-3-mini", + "name": "Grok 3 Mini", + "display_name": "Grok 3 Mini", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 196608, - "output": 32000 + "context": 131072, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", "cost": { - "input": 13, - "output": 64, - "cache_read": 1.3, - "cache_write": 16 + "input": 0.3, + "output": 0.5, + "reasoning": 0.5, + "cache_read": 0.075 } }, { - "id": "anthropic/claude-sonnet-3.7-search", - "name": "Claude Sonnet 3.7 Search", - "display_name": "Claude Sonnet 3.7 Search", + "id": "o1", + "name": "o1", + "display_name": "o1", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 196608, - "output": 128000 + "context": 200000, + "output": 100000 }, "temperature": false, "tool_call": true, @@ -51439,103 +51731,98 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-05-15", - "last_updated": "2025-05-15", + "knowledge": "2023-09", + "release_date": "2024-12-05", + "last_updated": "2024-12-05", "cost": { - "input": 2.6, - "output": 13, - "cache_read": 0.26, - "cache_write": 3.2 + "input": 15, + "output": 60, + "cache_read": 7.5 } }, { - "id": "anthropic/claude-opus-4-reasoning", - "name": "Claude Opus 4 Reasoning", - "display_name": "Claude Opus 4 Reasoning", + "id": "meta-llama-3-8b-instruct", + "name": "Meta-Llama-3-8B-Instruct", + "display_name": "Meta-Llama-3-8B-Instruct", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 196608, - "output": 32768 + "context": 8192, + "output": 2048 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-05-21", - "last_updated": "2025-05-21", + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-04-18", + "last_updated": "2024-04-18", "cost": { - "input": 13, - "output": 64, - "cache_read": 1.3, - "cache_write": 16 + "input": 0.3, + "output": 0.61 } }, { - "id": "anthropic/claude-sonnet-3.5", - "name": "Claude-Sonnet-3.5", - "display_name": "Claude-Sonnet-3.5", + "id": "phi-4-multimodal", + "name": "Phi-4-multimodal", + "display_name": "Phi-4-multimodal", "modalities": { "input": [ "text", "image", - "pdf" + "audio" ], "output": [ "text" ] }, "limit": { - "context": 189096, - "output": 8192 + "context": 128000, + "output": 4096 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, "attachment": true, - "open_weights": false, - "release_date": "2024-06-05", - "last_updated": "2024-06-05", + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 2.6, - "output": 13, - "cache_read": 0.26, - "cache_write": 3.2 + "input": 0.08, + "output": 0.32, + "input_audio": 4 } }, { - "id": "anthropic/claude-sonnet-4", - "name": "Claude Sonnet 4", - "display_name": "Claude Sonnet 4", + "id": "o4-mini", + "name": "o4-mini", + "display_name": "o4-mini", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 983040, - "output": 32768 + "context": 200000, + "output": 100000 }, "temperature": false, "tool_call": true, @@ -51545,229 +51832,222 @@ }, "attachment": true, "open_weights": false, - "release_date": "2025-05-21", - "last_updated": "2025-05-21", + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", "cost": { - "input": 2.6, - "output": 13, - "cache_read": 0.26, - "cache_write": 3.2 + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 } }, { - "id": "anthropic/claude-opus-4.5", - "name": "claude-opus-4.5", - "display_name": "claude-opus-4.5", + "id": "gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 196608, - "output": 64000 + "context": 1047576, + "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2025-11-21", - "last_updated": "2025-11-21", + "knowledge": "2024-05", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", "cost": { - "input": 4.3, - "output": 21, - "cache_read": 0.43, - "cache_write": 5.3 + "input": 2, + "output": 8, + "cache_read": 0.5 } }, { - "id": "anthropic/claude-haiku-3.5", - "name": "Claude-Haiku-3.5", - "display_name": "Claude-Haiku-3.5", + "id": "ministral-3b", + "name": "Ministral 3B", + "display_name": "Ministral 3B", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 189096, + "context": 128000, "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2024-10-01", - "last_updated": "2024-10-01", + "attachment": false, + "open_weights": true, + "knowledge": "2024-03", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", "cost": { - "input": 0.68, - "output": 3.4, - "cache_read": 0.068, - "cache_write": 0.85 + "input": 0.04, + "output": 0.04 } }, { - "id": "anthropic/claude-sonnet-3.5-june", - "name": "Claude-Sonnet-3.5-June", - "display_name": "Claude-Sonnet-3.5-June", + "id": "gpt-3.5-turbo-0301", + "name": "GPT-3.5 Turbo 0301", + "display_name": "GPT-3.5 Turbo 0301", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 189096, - "output": 8192 + "context": 4096, + "output": 4096 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2024-11-18", - "last_updated": "2024-11-18", + "knowledge": "2021-08", + "release_date": "2023-03-01", + "last_updated": "2023-03-01", "cost": { - "input": 2.6, - "output": 13, - "cache_read": 0.26, - "cache_write": 3.2 + "input": 1.5, + "output": 2 } }, { - "id": "anthropic/claude-sonnet-4.5", - "name": "Claude Sonnet 4.5", - "display_name": "Claude Sonnet 4.5", + "id": "gpt-4o", + "name": "GPT-4o", + "display_name": "GPT-4o", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, "limit": { - "context": 983040, - "output": 32768 + "context": 128000, + "output": 16384 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "release_date": "2025-09-26", - "last_updated": "2025-09-26", + "knowledge": "2023-09", + "release_date": "2024-05-13", + "last_updated": "2024-05-13", "cost": { - "input": 2.6, - "output": 13, - "cache_read": 0.26, - "cache_write": 3.2 + "input": 2.5, + "output": 10, + "cache_read": 1.25 } }, { - "id": "anthropic/claude-sonnet-4-search", - "name": "Claude Sonnet 4 Search", - "display_name": "Claude Sonnet 4 Search", + "id": "phi-3-mini-128k-instruct", + "name": "Phi-3-mini-instruct (128k)", + "display_name": "Phi-3-mini-instruct (128k)", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, "limit": { - "context": 983040, - "output": 128000 + "context": 128000, + "output": 4096 }, - "temperature": false, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "open_weights": false, - "release_date": "2025-06-20", - "last_updated": "2025-06-20", + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", "cost": { - "input": 2.6, - "output": 13, - "cache_read": 0.26, - "cache_write": 3.2 + "input": 0.13, + "output": 0.52 } }, { - "id": "trytako/tako", - "name": "Tako", - "display_name": "Tako", + "id": "llama-3.2-90b-vision-instruct", + "name": "Llama-3.2-90B-Vision-Instruct", + "display_name": "Llama-3.2-90B-Vision-Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 2048, - "output": 0 + "context": 128000, + "output": 8192 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, - "open_weights": false, - "release_date": "2024-08-15", - "last_updated": "2024-08-15" + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", + "cost": { + "input": 2.04, + "output": 2.04 + } }, { - "id": "novita/kimi-k2-thinking", - "name": "kimi-k2-thinking", - "display_name": "kimi-k2-thinking", + "id": "gpt-5-codex", + "name": "GPT-5-Codex", + "display_name": "GPT-5-Codex", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 0 + "context": 400000, + "output": 128000 }, "temperature": false, "tool_call": true, @@ -51775,80 +52055,92 @@ "supported": true, "default": true }, - "attachment": true, + "attachment": false, "open_weights": false, - "release_date": "2025-11-07", - "last_updated": "2025-11-07" + "knowledge": "2024-09-30", + "release_date": "2025-09-15", + "last_updated": "2025-09-15", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.13 + } }, { - "id": "novita/glm-4.6", - "name": "GLM-4.6", - "display_name": "GLM-4.6", + "id": "gpt-5-nano", + "name": "GPT-5 Nano", + "display_name": "GPT-5 Nano", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 0, - "output": 0 + "context": 272000, + "output": 128000 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "release_date": "2025-09-30", - "last_updated": "2025-09-30" - } - ] - }, - "cerebras": { - "id": "cerebras", - "name": "Cerebras", - "display_name": "Cerebras", - "doc": "https://inference-docs.cerebras.ai/models/overview", - "models": [ + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.01 + } + }, { - "id": "qwen-3-235b-a22b-instruct-2507", - "name": "Qwen 3 235B Instruct", - "display_name": "Qwen 3 235B Instruct", + "id": "gpt-5.1", + "name": "GPT-5.1", + "display_name": "GPT-5.1", "modalities": { "input": [ - "text" + "text", + "image", + "audio" ], "output": [ - "text" + "text", + "image", + "audio" ] }, "limit": { - "context": 131000, - "output": 32000 + "context": 272000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-22", - "last_updated": "2025-07-22", + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-11-14", + "last_updated": "2025-11-14", "cost": { - "input": 0.6, - "output": 1.2 + "input": 1.25, + "output": 10, + "cache_read": 0.125 } }, { - "id": "zai-glm-4.6", - "name": "Z.AI GLM-4.6", - "display_name": "Z.AI GLM-4.6", + "id": "o3-mini", + "name": "o3-mini", + "display_name": "o3-mini", "modalities": { "input": [ "text" @@ -51858,122 +52150,130 @@ ] }, "limit": { - "context": 131072, - "output": 40960 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, - "open_weights": true, - "release_date": "2025-11-05", - "last_updated": "2025-11-05", + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2024-12-20", + "last_updated": "2025-01-29", "cost": { - "input": 0, - "output": 0, - "cache_read": 0, - "cache_write": 0 + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 } }, { - "id": "gpt-oss-120b", - "name": "GPT OSS 120B", - "display_name": "GPT OSS 120B", + "id": "model-router", + "name": "Model Router", + "display_name": "Model Router", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 128000, + "output": 16384 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "attachment": true, + "open_weights": false, + "release_date": "2025-05-19", + "last_updated": "2025-11-18", "cost": { - "input": 0.25, - "output": 0.69 + "input": 0.14, + "output": 0 } - } - ] - }, - "ollama": { - "id": "ollama", - "name": "Ollama Cloud", - "display_name": "Ollama Cloud", - "doc": "https://docs.ollama.com/cloud", - "models": [ + }, { - "id": "gemini-3-pro-preview:latest", - "name": "Gemini 3 Pro Preview", - "display_name": "Gemini 3 Pro Preview", + "id": "kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ - "text", - "image", - "audio", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 64000 + "context": 262144, + "output": 262144 }, "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": true, - "open_weights": false, - "knowledge": "2025-10", - "release_date": "2025-11-18", - "last_updated": "2025-11-18", - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-11-06", + "last_updated": "2025-12-02", + "cost": { + "input": 0.6, + "output": 2.5, + "cache_read": 0.15 + } }, { - "id": "gpt-oss:latest", - "name": "GPT-OSS Latest", - "display_name": "GPT-OSS Latest", + "id": "gpt-5.1-codex-mini", + "name": "GPT-5.1 Codex Mini", + "display_name": "GPT-5.1 Codex Mini", "modalities": { "input": [ - "text" + "text", + "image", + "audio" ], "output": [ - "text" + "text", + "image", + "audio" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 400000, + "output": 128000 }, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-11-14", + "last_updated": "2025-11-14", + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 + } }, { - "id": "gpt-oss:20b", - "name": "GPT-OSS 20B", - "display_name": "GPT-OSS 20B", + "id": "llama-3.3-70b-instruct", + "name": "Llama-3.3-70B-Instruct", + "display_name": "Llama-3.3-70B-Instruct", "modalities": { "input": [ "text" @@ -51986,17 +52286,25 @@ "context": 128000, "output": 32768 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", + "cost": { + "input": 0.71, + "output": 0.71 + } }, { - "id": "gpt-oss:120b", - "name": "GPT-OSS 120B", - "display_name": "GPT-OSS 120B", + "id": "o1-preview", + "name": "o1-preview", + "display_name": "o1-preview", "modalities": { "input": [ "text" @@ -52009,17 +52317,27 @@ "context": 128000, "output": 32768 }, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-09-12", + "last_updated": "2024-09-12", + "cost": { + "input": 16.5, + "output": 66, + "cache_read": 8.25 + } }, { - "id": "gpt-oss:20b-cloud", - "name": "GPT-OSS 20B", - "display_name": "GPT-OSS 20B", + "id": "phi-3.5-mini-instruct", + "name": "Phi-3.5-mini-instruct", + "display_name": "Phi-3.5-mini-instruct", "modalities": { "input": [ "text" @@ -52029,25 +52347,28 @@ ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 128000, + "output": 4096 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", - "type": "chat" + "knowledge": "2023-10", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", + "cost": { + "input": 0.13, + "output": 0.52 + } }, { - "id": "gpt-oss:120b-cloud", - "name": "GPT-OSS 120B", - "display_name": "GPT-OSS 120B", + "id": "gpt-3.5-turbo-0613", + "name": "GPT-3.5 Turbo 0613", + "display_name": "GPT-3.5 Turbo 0613", "modalities": { "input": [ "text" @@ -52057,25 +52378,28 @@ ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 16384, + "output": 16384 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05", - "type": "chat" + "open_weights": false, + "knowledge": "2021-08", + "release_date": "2023-06-13", + "last_updated": "2023-06-13", + "cost": { + "input": 3, + "output": 4 + } }, { - "id": "qwen3-vl:latest", - "name": "Qwen3-VL Latest", - "display_name": "Qwen3-VL Latest", + "id": "gpt-4-turbo", + "name": "GPT-4 Turbo", + "display_name": "GPT-4 Turbo", "modalities": { "input": [ "text", @@ -52086,157 +52410,213 @@ ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 128000, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2023-11", + "release_date": "2023-11-06", + "last_updated": "2024-04-09", + "cost": { + "input": 10, + "output": 30 + } }, { - "id": "qwen3-vl:2b", - "name": "Qwen3-VL 2B", - "display_name": "Qwen3-VL 2B", + "id": "meta-llama-3.1-70b-instruct", + "name": "Meta-Llama-3.1-70B-Instruct", + "display_name": "Meta-Llama-3.1-70B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 128000, + "output": 32768 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 2.68, + "output": 3.54 + } }, { - "id": "qwen3-vl:4b", - "name": "Qwen3-VL 4B", - "display_name": "Qwen3-VL 4B", + "id": "phi-3-small-8k-instruct", + "name": "Phi-3-small-instruct (8k)", + "display_name": "Phi-3-small-instruct (8k)", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 8192, + "output": 2048 }, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", + "cost": { + "input": 0.15, + "output": 0.6 + } }, { - "id": "qwen3-vl:8b", - "name": "Qwen3-VL 8B", - "display_name": "Qwen3-VL 8B", + "id": "deepseek-v3-0324", + "name": "DeepSeek-V3-0324", + "display_name": "DeepSeek-V3-0324", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 131072, + "output": 131072 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-03-24", + "last_updated": "2025-03-24", + "cost": { + "input": 1.14, + "output": 4.56 + } }, { - "id": "qwen3-vl:30b", - "name": "Qwen3-VL 30B", - "display_name": "Qwen3-VL 30B", + "id": "meta-llama-3-70b-instruct", + "name": "Meta-Llama-3-70B-Instruct", + "display_name": "Meta-Llama-3-70B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 8192, + "output": 2048 }, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-04-18", + "last_updated": "2024-04-18", + "cost": { + "input": 2.68, + "output": 3.54 + } }, { - "id": "qwen3-vl:32b", - "name": "Qwen3-VL 32B", - "display_name": "Qwen3-VL 32B", + "id": "text-embedding-3-large", + "name": "text-embedding-3-large", + "display_name": "text-embedding-3-large", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 8191, + "output": 3072 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-01-25", + "last_updated": "2024-01-25", + "cost": { + "input": 0.13, + "output": 0 + } }, { - "id": "qwen3-vl:235b", - "name": "Qwen3-VL 235B", - "display_name": "Qwen3-VL 235B", + "id": "grok-3", + "name": "Grok 3", + "display_name": "Grok 3", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 131072, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75 + } }, { - "id": "qwen3-vl:235b-cloud", - "name": "Qwen3-VL 235B Cloud", - "display_name": "Qwen3-VL 235B Cloud", + "id": "gpt-3.5-turbo-0125", + "name": "GPT-3.5 Turbo 0125", + "display_name": "GPT-3.5 Turbo 0125", "modalities": { "input": [ "text" @@ -52246,41 +52626,64 @@ ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 16384, + "output": 16384 }, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2021-08", + "release_date": "2024-01-25", + "last_updated": "2024-01-25", + "cost": { + "input": 0.5, + "output": 1.5 + } }, { - "id": "qwen3-vl:235b-instruct-cloud", - "name": "Qwen3-VL 235B Instruct Cloud", - "display_name": "Qwen3-VL 235B Instruct Cloud", + "id": "claude-sonnet-4-5", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 200000, + "output": 64000 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2025-07-31", + "release_date": "2025-11-18", + "last_updated": "2025-11-18", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } }, { - "id": "deepseek-r1:latest", - "name": "DeepSeek-R1 Latest", - "display_name": "DeepSeek-R1 Latest", + "id": "phi-4-mini-reasoning", + "name": "Phi-4-mini-reasoning", + "display_name": "Phi-4-mini-reasoning", "modalities": { "input": [ "text" @@ -52291,19 +52694,28 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0.075, + "output": 0.3 + } }, { - "id": "deepseek-r1:1.5b", - "name": "DeepSeek-R1 1.5B", - "display_name": "DeepSeek-R1 1.5B", + "id": "phi-4", + "name": "Phi-4", + "display_name": "Phi-4", "modalities": { "input": [ "text" @@ -52314,19 +52726,27 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0.125, + "output": 0.5 + } }, { - "id": "deepseek-r1:7b", - "name": "DeepSeek-R1 7B", - "display_name": "DeepSeek-R1 7B", + "id": "deepseek-v3.1", + "name": "DeepSeek-V3.1", + "display_name": "DeepSeek-V3.1", "modalities": { "input": [ "text" @@ -52336,23 +52756,33 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 131072, + "output": 131072 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-08-21", + "last_updated": "2025-08-21", + "cost": { + "input": 0.56, + "output": 1.68 + } }, { - "id": "deepseek-r1:8b", - "name": "DeepSeek-R1 8B", - "display_name": "DeepSeek-R1 8B", + "id": "gpt-5-chat", + "name": "GPT-5 Chat", + "display_name": "GPT-5 Chat", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -52360,45 +52790,66 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 16384 }, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": true, "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-24", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.13 + } }, { - "id": "deepseek-r1:14b", - "name": "DeepSeek-R1 14B", - "display_name": "DeepSeek-R1 14B", + "id": "gpt-4.1-mini", + "name": "GPT-4.1 mini", + "display_name": "GPT-4.1 mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, + "context": 1047576, "output": 32768 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + } }, { - "id": "deepseek-r1:32b", - "name": "DeepSeek-R1 32B", - "display_name": "DeepSeek-R1 32B", + "id": "llama-4-maverick-17b-128e-instruct-fp8", + "name": "Llama 4 Maverick 17B 128E Instruct FP8", + "display_name": "Llama 4 Maverick 17B 128E Instruct FP8", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -52406,19 +52857,27 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0.25, + "output": 1 + } }, { - "id": "deepseek-r1:70b", - "name": "DeepSeek-R1 70B", - "display_name": "DeepSeek-R1 70B", + "id": "cohere-command-r-plus-08-2024", + "name": "Command R+", + "display_name": "Command R+", "modalities": { "input": [ "text" @@ -52429,19 +52888,28 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-06-01", + "release_date": "2024-08-30", + "last_updated": "2024-08-30", + "cost": { + "input": 2.5, + "output": 10 + } }, { - "id": "deepseek-r1:671b", - "name": "DeepSeek-R1 671B", - "display_name": "DeepSeek-R1 671B", + "id": "cohere-command-a", + "name": "Command A", + "display_name": "Command A", "modalities": { "input": [ "text" @@ -52451,20 +52919,29 @@ ] }, "limit": { - "context": 160000, - "output": 40000 + "context": 256000, + "output": 8000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-06-01", + "release_date": "2025-03-13", + "last_updated": "2025-03-13", + "cost": { + "input": 2.5, + "output": 10 + } }, { - "id": "qwen3-coder:latest", - "name": "Qwen3-Coder Latest", - "display_name": "Qwen3-Coder Latest", + "id": "phi-3-small-128k-instruct", + "name": "Phi-3-small-instruct (128k)", + "display_name": "Phi-3-small-instruct (128k)", "modalities": { "input": [ "text" @@ -52474,63 +52951,96 @@ ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 128000, + "output": 4096 }, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", + "cost": { + "input": 0.15, + "output": 0.6 + } }, { - "id": "qwen3-coder:30b", - "name": "Qwen3-Coder 30B", - "display_name": "Qwen3-Coder 30B", + "id": "claude-opus-4-5", + "name": "Claude Opus 4.5", + "display_name": "Claude Opus 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 200000, + "output": 64000 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-11-24", + "last_updated": "2025-08-01", + "cost": { + "input": 5, + "output": 25, + "cache_read": 1.5, + "cache_write": 18.75 + } }, { - "id": "qwen3-coder:480b", - "name": "Qwen3-Coder 480B", - "display_name": "Qwen3-Coder 480B", + "id": "mistral-medium-2505", + "name": "Mistral Medium 3", + "display_name": "Mistral Medium 3", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 128000, + "output": 128000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2025-05", + "release_date": "2025-05-07", + "last_updated": "2025-05-07", + "cost": { + "input": 0.4, + "output": 2 + } }, { - "id": "qwen3-coder:480b-cloud", - "name": "Qwen3 Coder 480B", - "display_name": "Qwen3 Coder 480B", + "id": "deepseek-v3.2-speciale", + "name": "DeepSeek-V3.2-Speciale", + "display_name": "DeepSeek-V3.2-Speciale", "modalities": { "input": [ "text" @@ -52540,47 +53050,65 @@ ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 128000, + "output": 128000 }, "temperature": true, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": false, "open_weights": true, - "release_date": "2025-07-22", - "last_updated": "2025-07-22", - "type": "chat" + "knowledge": "2024-07", + "release_date": "2025-12-01", + "last_updated": "2025-12-01", + "cost": { + "input": 0.28, + "output": 0.42 + } }, { - "id": "gemma3:latest", - "name": "Gemma3 Latest", - "display_name": "Gemma3 Latest", + "id": "claude-haiku-4-5", + "name": "Claude Haiku 4.5", + "display_name": "Claude Haiku 4.5", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 200000, + "output": 64000 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2025-02-31", + "release_date": "2025-11-18", + "last_updated": "2025-11-18", + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } }, { - "id": "gemma3:270m", - "name": "Gemma3 270M", - "display_name": "Gemma3 270M", + "id": "phi-3-mini-4k-instruct", + "name": "Phi-3-mini-instruct (4k)", + "display_name": "Phi-3-mini-instruct (4k)", "modalities": { "input": [ "text" @@ -52590,91 +53118,133 @@ ] }, "limit": { - "context": 32000, - "output": 8192 + "context": 4096, + "output": 1024 }, + "temperature": true, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", + "cost": { + "input": 0.13, + "output": 0.52 + } }, { - "id": "gemma3:1b", - "name": "Gemma3 1B", - "display_name": "Gemma3 1B", + "id": "gpt-5.1-codex", + "name": "GPT-5.1 Codex", + "display_name": "GPT-5.1 Codex", "modalities": { "input": [ - "text" + "text", + "image", + "audio" ], "output": [ - "text" + "text", + "image", + "audio" ] }, "limit": { - "context": 32000, - "output": 8192 + "context": 400000, + "output": 128000 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-11-14", + "last_updated": "2025-11-14", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + } }, { - "id": "gemma3:4b", - "name": "Gemma3 4B", - "display_name": "Gemma3 4B", + "id": "grok-code-fast-1", + "name": "Grok Code Fast 1", + "display_name": "Grok Code Fast 1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 256000, + "output": 10000 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2023-10", + "release_date": "2025-08-28", + "last_updated": "2025-08-28", + "cost": { + "input": 0.2, + "output": 1.5, + "cache_read": 0.02 + } }, { - "id": "gemma3:12b", - "name": "Gemma3 12B", - "display_name": "Gemma3 12B", + "id": "deepseek-r1", + "name": "DeepSeek-R1", + "display_name": "DeepSeek-R1", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 163840, + "output": 163840 }, + "temperature": true, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" - }, - { - "id": "gemma3:27b", - "name": "Gemma3 27B", - "display_name": "Gemma3 27B", - "modalities": { - "input": [ - "text", - "image" + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", + "cost": { + "input": 1.35, + "output": 5.4 + } + }, + { + "id": "meta-llama-3.1-405b-instruct", + "name": "Meta-Llama-3.1-405B-Instruct", + "display_name": "Meta-Llama-3.1-405B-Instruct", + "modalities": { + "input": [ + "text" ], "output": [ "text" @@ -52684,16 +53254,25 @@ "context": 128000, "output": 32768 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 5.33, + "output": 16 + } }, { - "id": "glm-4.6:cloud", - "name": "GLM-4.6", - "display_name": "GLM-4.6", + "id": "gpt-4-32k", + "name": "GPT-4 32K", + "display_name": "GPT-4 32K", "modalities": { "input": [ "text" @@ -52703,8 +53282,8 @@ ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 32768, + "output": 32768 }, "temperature": true, "tool_call": true, @@ -52712,15 +53291,19 @@ "supported": false }, "attachment": false, - "open_weights": true, - "release_date": "2025-09-29", - "last_updated": "2025-09-29", - "type": "chat" + "open_weights": false, + "knowledge": "2023-11", + "release_date": "2023-03-14", + "last_updated": "2023-03-14", + "cost": { + "input": 60, + "output": 120 + } }, { - "id": "qwen3:latest", - "name": "Qwen3 Latest", - "display_name": "Qwen3 Latest", + "id": "phi-4-mini", + "name": "Phi-4-mini", + "display_name": "Phi-4-mini", "modalities": { "input": [ "text" @@ -52730,20 +53313,28 @@ ] }, "limit": { - "context": 40000, - "output": 10000 + "context": 128000, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0.075, + "output": 0.3 + } }, { - "id": "qwen3:0.6b", - "name": "Qwen3 0.6B", - "display_name": "Qwen3 0.6B", + "id": "cohere-embed-v3-multilingual", + "name": "Embed v3 Multilingual", + "display_name": "Embed v3 Multilingual", "modalities": { "input": [ "text" @@ -52753,20 +53344,27 @@ ] }, "limit": { - "context": 40000, - "output": 10000 + "context": 512, + "output": 1024 }, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2023-11-07", + "last_updated": "2023-11-07", + "cost": { + "input": 0.1, + "output": 0 + } }, { - "id": "qwen3:1.7b", - "name": "Qwen3 1.7B", - "display_name": "Qwen3 1.7B", + "id": "grok-4", + "name": "Grok 4", + "display_name": "Grok 4", "modalities": { "input": [ "text" @@ -52776,20 +53374,31 @@ ] }, "limit": { - "context": 40000, - "output": 10000 + "context": 256000, + "output": 64000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-07-09", + "last_updated": "2025-07-09", + "cost": { + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.75 + } }, { - "id": "qwen3:4b", - "name": "Qwen3 4B", - "display_name": "Qwen3 4B", + "id": "cohere-command-r-08-2024", + "name": "Command R", + "display_name": "Command R", "modalities": { "input": [ "text" @@ -52799,112 +53408,162 @@ ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 128000, + "output": 4000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-06-01", + "release_date": "2024-08-30", + "last_updated": "2024-08-30", + "cost": { + "input": 0.15, + "output": 0.6 + } }, { - "id": "qwen3:8b", - "name": "Qwen3 8B", - "display_name": "Qwen3 8B", + "id": "cohere-embed-v-4-0", + "name": "Embed v4", + "display_name": "Embed v4", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 40000, - "output": 10000 + "context": 128000, + "output": 1536 }, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "release_date": "2025-04-15", + "last_updated": "2025-04-15", + "cost": { + "input": 0.12, + "output": 0 + } }, { - "id": "qwen3:14b", - "name": "Qwen3 14B", - "display_name": "Qwen3 14B", + "id": "llama-3.2-11b-vision-instruct", + "name": "Llama-3.2-11B-Vision-Instruct", + "display_name": "Llama-3.2-11B-Vision-Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 40000, - "output": 10000 + "context": 128000, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", + "cost": { + "input": 0.37, + "output": 0.37 + } }, { - "id": "qwen3:30b", - "name": "Qwen3 30B", - "display_name": "Qwen3 30B", + "id": "gpt-5.2-chat", + "name": "GPT-5.2 Chat", + "display_name": "GPT-5.2 Chat", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 128000, + "output": 16384 }, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2025-08-31", + "release_date": "2025-12-11", + "last_updated": "2025-12-11", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + } }, { - "id": "qwen3:32b", - "name": "Qwen3 32B", - "display_name": "Qwen3 32B", + "id": "claude-opus-4-1", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 40000, - "output": 10000 + "context": 200000, + "output": 32000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-11-18", + "last_updated": "2025-11-18", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } }, { - "id": "qwen3:235b", - "name": "Qwen3 235B", - "display_name": "Qwen3 235B", + "id": "gpt-4", + "name": "GPT-4", + "display_name": "GPT-4", "modalities": { "input": [ "text" @@ -52914,20 +53573,28 @@ ] }, "limit": { - "context": 256000, - "output": 65536 + "context": 8192, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2023-11", + "release_date": "2023-03-14", + "last_updated": "2023-03-14", + "cost": { + "input": 60, + "output": 120 + } }, { - "id": "deepseek-v3.1:latest", - "name": "DeepSeek-V3.1 Latest", - "display_name": "DeepSeek-V3.1 Latest", + "id": "phi-3-medium-128k-instruct", + "name": "Phi-3-medium-instruct (128k)", + "display_name": "Phi-3-medium-instruct (128k)", "modalities": { "input": [ "text" @@ -52937,43 +53604,62 @@ ] }, "limit": { - "context": 160000, - "output": 40000 + "context": 128000, + "output": 4096 }, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", + "cost": { + "input": 0.17, + "output": 0.68 + } }, { - "id": "deepseek-v3.1:671b", - "name": "DeepSeek-V3.1 671B", - "display_name": "DeepSeek-V3.1 671B", + "id": "grok-4-fast-reasoning", + "name": "Grok 4 Fast (Reasoning)", + "display_name": "Grok 4 Fast (Reasoning)", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 160000, - "output": 40000 + "context": 2000000, + "output": 30000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-09-19", + "last_updated": "2025-09-19", + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + } }, { - "id": "deepseek-v3.1:671b-cloud", - "name": "DeepSeek-V3.1 671B", - "display_name": "DeepSeek-V3.1 671B", + "id": "deepseek-r1-0528", + "name": "DeepSeek-R1-0528", + "display_name": "DeepSeek-R1-0528", "modalities": { "input": [ "text" @@ -52983,8 +53669,8 @@ ] }, "limit": { - "context": 160000, - "output": 8192 + "context": 163840, + "output": 163840 }, "temperature": true, "tool_call": true, @@ -52994,36 +53680,51 @@ }, "attachment": false, "open_weights": true, - "release_date": "2025-08-21", - "last_updated": "2025-08-21", - "type": "chat" + "knowledge": "2024-07", + "release_date": "2025-05-28", + "last_updated": "2025-05-28", + "cost": { + "input": 1.35, + "output": 5.4 + } }, { - "id": "llama3.1:latest", - "name": "Llama 3.1 Latest", - "display_name": "Llama 3.1 Latest", + "id": "grok-4-fast-non-reasoning", + "name": "Grok 4 Fast (Non-Reasoning)", + "display_name": "Grok 4 Fast (Non-Reasoning)", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 2000000, + "output": 30000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-09-19", + "last_updated": "2025-09-19", + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + } }, { - "id": "llama3.1:8b", - "name": "Llama 3.1 8B", - "display_name": "Llama 3.1 8B", + "id": "text-embedding-3-small", + "name": "text-embedding-3-small", + "display_name": "text-embedding-3-small", "modalities": { "input": [ "text" @@ -53033,41 +53734,68 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 8191, + "output": 1536 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-01-25", + "last_updated": "2024-01-25", + "cost": { + "input": 0.02, + "output": 0 + } }, { - "id": "llama3.1:70b", - "name": "Llama 3.1 70B", - "display_name": "Llama 3.1 70B", + "id": "gpt-4.1-nano", + "name": "GPT-4.1 nano", + "display_name": "GPT-4.1 nano", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, + "context": 1047576, "output": 32768 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" - }, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.03 + } + } + ] + }, + "llama": { + "id": "llama", + "name": "Llama", + "display_name": "Llama", + "api": "https://api.llama.com/compat/v1/", + "doc": "https://llama.developer.meta.com/docs/models", + "models": [ { - "id": "llama3.1:405b", - "name": "Llama 3.1 405B", - "display_name": "Llama 3.1 405B", + "id": "llama-3.3-8b-instruct", + "name": "Llama-3.3-8B-Instruct", + "display_name": "Llama-3.3-8B-Instruct", "modalities": { "input": [ "text" @@ -53078,21 +53806,31 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", + "cost": { + "input": 0, + "output": 0 + } }, { - "id": "llama3.2:latest", - "name": "Llama 3.2 Latest", - "display_name": "Llama 3.2 Latest", + "id": "llama-4-maverick-17b-128e-instruct-fp8", + "name": "Llama-4-Maverick-17B-128E-Instruct-FP8", + "display_name": "Llama-4-Maverick-17B-128E-Instruct-FP8", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -53100,18 +53838,27 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0, + "output": 0 + } }, { - "id": "llama3.2:1b", - "name": "Llama 3.2 1B", - "display_name": "Llama 3.2 1B", + "id": "llama-3.3-70b-instruct", + "name": "Llama-3.3-70B-Instruct", + "display_name": "Llama-3.3-70B-Instruct", "modalities": { "input": [ "text" @@ -53122,21 +53869,31 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", + "cost": { + "input": 0, + "output": 0 + } }, { - "id": "llama3.2:3b", - "name": "Llama 3.2 3B", - "display_name": "Llama 3.2 3B", + "id": "llama-4-scout-17b-16e-instruct-fp8", + "name": "Llama-4-Scout-17B-16E-Instruct-FP8", + "display_name": "Llama-4-Scout-17B-16E-Instruct-FP8", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -53144,18 +53901,27 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0, + "output": 0 + } }, { - "id": "phi3:latest", - "name": "Phi-3 Latest", - "display_name": "Phi-3 Latest", + "id": "groq-llama-4-maverick-17b-128e-instruct", + "name": "Groq-Llama-4-Maverick-17B-128E-Instruct", + "display_name": "Groq-Llama-4-Maverick-17B-128E-Instruct", "modalities": { "input": [ "text" @@ -53166,18 +53932,27 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "knowledge": "2025-01", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0, + "output": 0 + } }, { - "id": "phi3:3.8b", - "name": "Phi-3 3.8B", - "display_name": "Phi-3 3.8B", + "id": "cerebras-llama-4-scout-17b-16e-instruct", + "name": "Cerebras-Llama-4-Scout-17B-16E-Instruct", + "display_name": "Cerebras-Llama-4-Scout-17B-16E-Instruct", "modalities": { "input": [ "text" @@ -53188,18 +53963,27 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "knowledge": "2025-01", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0, + "output": 0 + } }, { - "id": "phi3:14b", - "name": "Phi-3 14B", - "display_name": "Phi-3 14B", + "id": "cerebras-llama-4-maverick-17b-128e-instruct", + "name": "Cerebras-Llama-4-Maverick-17B-128E-Instruct", + "display_name": "Cerebras-Llama-4-Maverick-17B-128E-Instruct", "modalities": { "input": [ "text" @@ -53210,18 +53994,36 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" - }, + "attachment": true, + "open_weights": true, + "knowledge": "2025-01", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0, + "output": 0 + } + } + ] + }, + "scaleway": { + "id": "scaleway", + "name": "Scaleway", + "display_name": "Scaleway", + "api": "https://api.scaleway.ai/v1", + "doc": "https://www.scaleway.com/en/docs/generative-apis/", + "models": [ { - "id": "mistral-nemo:latest", - "name": "Mistral-Nemo Latest", - "display_name": "Mistral-Nemo Latest", + "id": "qwen3-235b-a22b-instruct-2507", + "name": "Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen3 235B A22B Instruct 2507", "modalities": { "input": [ "text" @@ -53231,87 +54033,119 @@ ] }, "limit": { - "context": 1000000, - "output": 250000 + "context": 260000, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "release_date": "2025-07-01", + "last_updated": "2025-07-01", + "cost": { + "input": 0.75, + "output": 2.25 + } }, { - "id": "mistral-nemo:12b", - "name": "Mistral-Nemo 12B", - "display_name": "Mistral-Nemo 12B", + "id": "pixtral-12b-2409", + "name": "Pixtral 12B 2409", + "display_name": "Pixtral 12B 2409", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 250000 + "context": 128000, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "release_date": "2024-09-25", + "last_updated": "2024-09-25", + "cost": { + "input": 0.2, + "output": 0.2 + } }, { - "id": "llava:latest", - "name": "LLaVA Latest", - "display_name": "LLaVA Latest", + "id": "llama-3.1-8b-instruct", + "name": "Llama 3.1 8B Instruct", + "display_name": "Llama 3.1 8B Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 32000, - "output": 8192 + "context": 128000, + "output": 16384 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0.2, + "output": 0.2 + } }, { - "id": "llava:7b", - "name": "LLaVA 7B", - "display_name": "LLaVA 7B", + "id": "mistral-nemo-instruct-2407", + "name": "Mistral Nemo Instruct 2407", + "display_name": "Mistral Nemo Instruct 2407", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 32000, + "context": 128000, "output": 8192 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "release_date": "2024-07-25", + "last_updated": "2024-07-25", + "cost": { + "input": 0.2, + "output": 0.2 + } }, { - "id": "llava:13b", - "name": "LLaVA 13B", - "display_name": "LLaVA 13B", + "id": "mistral-small-3.2-24b-instruct-2506", + "name": "Mistral Small 3.2 24B Instruct (2506)", + "display_name": "Mistral Small 3.2 24B Instruct (2506)", "modalities": { "input": [ "text", @@ -53322,19 +54156,27 @@ ] }, "limit": { - "context": 4000, - "output": 1000 + "context": 128000, + "output": 8192 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2025-06-20", + "last_updated": "2025-06-20", + "cost": { + "input": 0.15, + "output": 0.35 + } }, { - "id": "llava:34b", - "name": "LLaVA 34B", - "display_name": "LLaVA 34B", + "id": "qwen3-coder-30b-a3b-instruct", + "name": "Qwen3-Coder 30B-A3B Instruct", + "display_name": "Qwen3-Coder 30B-A3B Instruct", "modalities": { "input": [ "text" @@ -53344,19 +54186,28 @@ ] }, "limit": { - "context": 4000, - "output": 1000 + "context": 128000, + "output": 8192 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04", + "last_updated": "2025-04", + "cost": { + "input": 0.2, + "output": 0.8 + } }, { - "id": "codellama:latest", - "name": "CodeLlama Latest", - "display_name": "CodeLlama Latest", + "id": "llama-3.3-70b-instruct", + "name": "Llama-3.3-70B-Instruct", + "display_name": "Llama-3.3-70B-Instruct", "modalities": { "input": [ "text" @@ -53366,41 +54217,59 @@ ] }, "limit": { - "context": 16000, - "output": 4000 + "context": 100000, + "output": 4096 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", + "cost": { + "input": 0.9, + "output": 0.9 + } }, { - "id": "codellama:7b", - "name": "CodeLlama 7B", - "display_name": "CodeLlama 7B", + "id": "whisper-large-v3", + "name": "Whisper Large v3", + "display_name": "Whisper Large v3", "modalities": { "input": [ - "text" + "audio" ], "output": [ "text" ] }, "limit": { - "context": 16000, - "output": 4000 + "context": 0, + "output": 4096 }, + "temperature": false, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-09", + "release_date": "2023-09-01", + "last_updated": "2025-09-05", + "cost": { + "input": 0.003, + "output": 0 + } }, { - "id": "codellama:13b", - "name": "CodeLlama 13B", - "display_name": "CodeLlama 13B", + "id": "deepseek-r1-distill-llama-70b", + "name": "DeepSeek R1 Distill Llama 70B", + "display_name": "DeepSeek R1 Distill Llama 70B", "modalities": { "input": [ "text" @@ -53410,41 +54279,60 @@ ] }, "limit": { - "context": 16000, - "output": 4000 + "context": 32000, + "output": 4096 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", + "cost": { + "input": 0.9, + "output": 0.9 + } }, { - "id": "codellama:34b", - "name": "CodeLlama 34B", - "display_name": "CodeLlama 34B", + "id": "voxtral-small-24b-2507", + "name": "Voxtral Small 24B 2507", + "display_name": "Voxtral Small 24B 2507", "modalities": { "input": [ - "text" + "text", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 16000, - "output": 4000 + "context": 32000, + "output": 8192 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "release_date": "2025-07-01", + "last_updated": "2025-07-01", + "cost": { + "input": 0.15, + "output": 0.35 + } }, { - "id": "codellama:70b", - "name": "CodeLlama 70B", - "display_name": "CodeLlama 70B", + "id": "gpt-oss-120b", + "name": "GPT-OSS 120B", + "display_name": "GPT-OSS 120B", "modalities": { "input": [ "text" @@ -53454,19 +54342,27 @@ ] }, "limit": { - "context": 2000, - "output": 500 + "context": 128000, + "output": 8192 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "release_date": "2024-01-01", + "last_updated": "2024-01-01", + "cost": { + "input": 0.15, + "output": 0.6 + } }, { - "id": "mixtral:latest", - "name": "Mixtral Latest", - "display_name": "Mixtral Latest", + "id": "bge-multilingual-gemma2", + "name": "BGE Multilingual Gemma2", + "display_name": "BGE Multilingual Gemma2", "modalities": { "input": [ "text" @@ -53476,41 +54372,68 @@ ] }, "limit": { - "context": 32000, - "output": 8192 + "context": 8191, + "output": 3072 }, - "tool_call": true, + "temperature": false, + "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-07-26", + "last_updated": "2025-06-15", + "cost": { + "input": 0.13, + "output": 0 + } }, { - "id": "mixtral:8x7b", - "name": "Mixtral 8x7B", - "display_name": "Mixtral 8x7B", + "id": "gemma-3-27b-it", + "name": "Gemma-3-27B-IT", + "display_name": "Gemma-3-27B-IT", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 32000, + "context": 40000, "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" - }, + "attachment": true, + "open_weights": false, + "knowledge": "2024-12", + "release_date": "2024-12-01", + "last_updated": "2025-09-05", + "cost": { + "input": 0.25, + "output": 0.5 + } + } + ] + }, + "amazon-bedrock": { + "id": "amazon-bedrock", + "name": "Amazon Bedrock", + "display_name": "Amazon Bedrock", + "doc": "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", + "models": [ { - "id": "mixtral:8x22b", - "name": "Mixtral 8x22B", - "display_name": "Mixtral 8x22B", + "id": "cohere.command-r-plus-v1:0", + "name": "Command R+", + "display_name": "Command R+", "modalities": { "input": [ "text" @@ -53520,19 +54443,28 @@ ] }, "limit": { - "context": 64000, - "output": 16000 + "context": 128000, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-04-04", + "last_updated": "2024-04-04", + "cost": { + "input": 3, + "output": 15 + } }, { - "id": "deepseek-coder:latest", - "name": "DeepSeek-Coder Latest", - "display_name": "DeepSeek-Coder Latest", + "id": "anthropic.claude-v2", + "name": "Claude 2", + "display_name": "Claude 2", "modalities": { "input": [ "text" @@ -53542,63 +54474,99 @@ ] }, "limit": { - "context": 16000, - "output": 4000 + "context": 100000, + "output": 4096 }, + "temperature": true, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2023-08", + "release_date": "2023-07-11", + "last_updated": "2023-07-11", + "cost": { + "input": 8, + "output": 24 + } }, { - "id": "deepseek-coder:1.3b", - "name": "DeepSeek-Coder 1.3B", - "display_name": "DeepSeek-Coder 1.3B", + "id": "anthropic.claude-3-7-sonnet-20250219-v1:0", + "name": "Claude Sonnet 3.7", + "display_name": "Claude Sonnet 3.7", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 16000, - "output": 4000 + "context": 200000, + "output": 8192 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } }, { - "id": "deepseek-coder:6.7b", - "name": "DeepSeek-Coder 6.7B", - "display_name": "DeepSeek-Coder 6.7B", + "id": "anthropic.claude-sonnet-4-20250514-v1:0", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 16000, - "output": 4000 + "context": 200000, + "output": 64000 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } }, { - "id": "deepseek-coder:33b", - "name": "DeepSeek-Coder 33B", - "display_name": "DeepSeek-Coder 33B", + "id": "qwen.qwen3-coder-30b-a3b-v1:0", + "name": "Qwen3 Coder 30B A3B Instruct", + "display_name": "Qwen3 Coder 30B A3B Instruct", "modalities": { "input": [ "text" @@ -53608,19 +54576,28 @@ ] }, "limit": { - "context": 16000, - "output": 4000 + "context": 262144, + "output": 131072 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-09-18", + "last_updated": "2025-09-18", + "cost": { + "input": 0.15, + "output": 0.6 + } }, { - "id": "qwen2.5vl:latest", - "name": "Qwen2.5-VL Latest", - "display_name": "Qwen2.5-VL Latest", + "id": "google.gemma-3-4b-it", + "name": "Gemma 3 4B IT", + "display_name": "Gemma 3 4B IT", "modalities": { "input": [ "text", @@ -53631,42 +54608,58 @@ ] }, "limit": { - "context": 125000, - "output": 31250 + "context": 128000, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.04, + "output": 0.08 + } }, { - "id": "qwen2.5vl:3b", - "name": "Qwen2.5-VL 3B", - "display_name": "Qwen2.5-VL 3B", + "id": "minimax.minimax-m2", + "name": "MiniMax M2", + "display_name": "MiniMax M2", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 125000, - "output": 31250 + "context": 204608, + "output": 128000 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2025-10-27", + "last_updated": "2025-10-27", + "cost": { + "input": 0.3, + "output": 1.2 + } }, { - "id": "qwen2.5vl:7b", - "name": "Qwen2.5-VL 7B", - "display_name": "Qwen2.5-VL 7B", + "id": "meta.llama3-2-11b-instruct-v1:0", + "name": "Llama 3.2 11B Instruct", + "display_name": "Llama 3.2 11B Instruct", "modalities": { "input": [ "text", @@ -53677,109 +54670,154 @@ ] }, "limit": { - "context": 125000, - "output": 31250 + "context": 128000, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", + "cost": { + "input": 0.16, + "output": 0.16 + } }, { - "id": "qwen2.5vl:32b", - "name": "Qwen2.5-VL 32B", - "display_name": "Qwen2.5-VL 32B", + "id": "qwen.qwen3-next-80b-a3b", + "name": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "display_name": "Qwen/Qwen3-Next-80B-A3B-Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 125000, - "output": 31250 + "context": 262000, + "output": 262000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2025-09-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0.14, + "output": 1.4 + } }, { - "id": "qwen2.5vl:72b", - "name": "Qwen2.5-VL 72B", - "display_name": "Qwen2.5-VL 72B", + "id": "anthropic.claude-3-haiku-20240307-v1:0", + "name": "Claude Haiku 3", + "display_name": "Claude Haiku 3", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 125000, - "output": 31250 + "context": 200000, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2024-02", + "release_date": "2024-03-13", + "last_updated": "2024-03-13", + "cost": { + "input": 0.25, + "output": 1.25 + } }, { - "id": "nomic-embed-text:latest", - "name": "Nomic-Embed-Text Latest", - "display_name": "Nomic-Embed-Text Latest", + "id": "meta.llama3-2-90b-instruct-v1:0", + "name": "Llama 3.2 90B Instruct", + "display_name": "Llama 3.2 90B Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 2000, - "output": 0 + "context": 128000, + "output": 4096 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "embedding" + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", + "cost": { + "input": 0.72, + "output": 0.72 + } }, { - "id": "nomic-embed-text:v1.5", - "name": "Nomic-Embed-Text v1.5", - "display_name": "Nomic-Embed-Text v1.5", + "id": "qwen.qwen3-vl-235b-a22b", + "name": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "display_name": "Qwen/Qwen3-VL-235B-A22B-Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 2000, - "output": 0 + "context": 262000, + "output": 262000 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "embedding" + "attachment": true, + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", + "cost": { + "input": 0.3, + "output": 1.5 + } }, { - "id": "nomic-embed-text:137m-v1.5-fp16", - "name": "Nomic-Embed-Text 137M v1.5 FP16", - "display_name": "Nomic-Embed-Text 137M v1.5 FP16", + "id": "meta.llama3-2-1b-instruct-v1:0", + "name": "Llama 3.2 1B Instruct", + "display_name": "Llama 3.2 1B Instruct", "modalities": { "input": [ "text" @@ -53789,19 +54827,28 @@ ] }, "limit": { - "context": 2000, - "output": 0 + "context": 131000, + "output": 4096 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "embedding" + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", + "cost": { + "input": 0.1, + "output": 0.1 + } }, { - "id": "qwq:latest", - "name": "QwQ Latest", - "display_name": "QwQ Latest", + "id": "anthropic.claude-v2:1", + "name": "Claude 2.1", + "display_name": "Claude 2.1", "modalities": { "input": [ "text" @@ -53811,20 +54858,28 @@ ] }, "limit": { - "context": 40000, - "output": 10000 + "context": 200000, + "output": 4096 }, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2023-08", + "release_date": "2023-11-21", + "last_updated": "2023-11-21", + "cost": { + "input": 8, + "output": 24 + } }, { - "id": "qwq:32b", - "name": "QwQ 32B", - "display_name": "QwQ 32B", + "id": "deepseek.v3-v1:0", + "name": "DeepSeek-V3.1", + "display_name": "DeepSeek-V3.1", "modalities": { "input": [ "text" @@ -53834,42 +54889,65 @@ ] }, "limit": { - "context": 40000, - "output": 10000 + "context": 163840, + "output": 81920 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-09-18", + "last_updated": "2025-09-18", + "cost": { + "input": 0.58, + "output": 1.68 + } }, { - "id": "mistral:latest", - "name": "Mistral Latest", - "display_name": "Mistral Latest", + "id": "anthropic.claude-opus-4-5-20251101-v1:0", + "name": "Claude Opus 4.5", + "display_name": "Claude Opus 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 32000, - "output": 8192 + "context": 200000, + "output": 64000 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-11-24", + "last_updated": "2025-08-01", + "cost": { + "input": 5, + "output": 25, + "cache_read": 1.5, + "cache_write": 18.75 + } }, { - "id": "mistral:7b", - "name": "Mistral 7B", - "display_name": "Mistral 7B", + "id": "cohere.command-light-text-v14", + "name": "Command Light", + "display_name": "Command Light", "modalities": { "input": [ "text" @@ -53879,19 +54957,28 @@ ] }, "limit": { - "context": 32000, - "output": 8192 + "context": 4096, + "output": 4096 }, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-08", + "release_date": "2023-11-01", + "last_updated": "2023-11-01", + "cost": { + "input": 0.3, + "output": 0.6 + } }, { - "id": "mistral-large-3:675b-cloud", - "name": "Mistral Large 3 675B Cloud", - "display_name": "Mistral Large 3 675B Cloud", + "id": "mistral.mistral-large-2402-v1:0", + "name": "Mistral Large (24.02)", + "display_name": "Mistral Large (24.02)", "modalities": { "input": [ "text" @@ -53901,19 +54988,27 @@ ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 128000, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.5, + "output": 1.5 + } }, { - "id": "ministral-3:latest", - "name": "Ministral 3 Latest", - "display_name": "Ministral 3 Latest", + "id": "google.gemma-3-27b-it", + "name": "Google Gemma 3 27B Instruct", + "display_name": "Google Gemma 3 27B Instruct", "modalities": { "input": [ "text", @@ -53924,19 +55019,28 @@ ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 202752, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-07-27", + "last_updated": "2025-07-27", + "cost": { + "input": 0.12, + "output": 0.2 + } }, { - "id": "ministral-3:3b", - "name": "Ministral 3 3B", - "display_name": "Ministral 3 3B", + "id": "nvidia.nemotron-nano-12b-v2", + "name": "NVIDIA Nemotron Nano 12B v2 VL BF16", + "display_name": "NVIDIA Nemotron Nano 12B v2 VL BF16", "modalities": { "input": [ "text", @@ -53947,19 +55051,27 @@ ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 128000, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.2, + "output": 0.6 + } }, { - "id": "ministral-3:8b", - "name": "Ministral 3 8B", - "display_name": "Ministral 3 8B", + "id": "google.gemma-3-12b-it", + "name": "Google Gemma 3 12B", + "display_name": "Google Gemma 3 12B", "modalities": { "input": [ "text", @@ -53970,23 +55082,31 @@ ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 131072, + "output": 8192 }, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2024-12", + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.049999999999999996, + "output": 0.09999999999999999 + } }, { - "id": "ministral-3:14b", - "name": "Ministral 3 14B", - "display_name": "Ministral 3 14B", + "id": "ai21.jamba-1-5-large-v1:0", + "name": "Jamba 1.5 Large", + "display_name": "Jamba 1.5 Large", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -53994,18 +55114,27 @@ }, "limit": { "context": 256000, - "output": 256000 + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2024-08-15", + "last_updated": "2024-08-15", + "cost": { + "input": 2, + "output": 8 + } }, { - "id": "ministral-3:3b-cloud", - "name": "Ministral 3 3B Cloud", - "display_name": "Ministral 3 3B Cloud", + "id": "meta.llama3-3-70b-instruct-v1:0", + "name": "Llama 3.3 70B Instruct", + "display_name": "Llama 3.3 70B Instruct", "modalities": { "input": [ "text" @@ -54015,201 +55144,259 @@ ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 128000, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", + "cost": { + "input": 0.72, + "output": 0.72 + } }, { - "id": "ministral-3:8b-cloud", - "name": "Ministral 3 8B Cloud", - "display_name": "Ministral 3 8B Cloud", + "id": "anthropic.claude-3-opus-20240229-v1:0", + "name": "Claude Opus 3", + "display_name": "Claude Opus 3", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 200000, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2023-08", + "release_date": "2024-02-29", + "last_updated": "2024-02-29", + "cost": { + "input": 15, + "output": 75 + } }, { - "id": "ministral-3:14b-cloud", - "name": "Ministral 3 14B Cloud", - "display_name": "Ministral 3 14B Cloud", + "id": "amazon.nova-pro-v1:0", + "name": "Nova Pro", + "display_name": "Nova Pro", "modalities": { "input": [ - "text" + "text", + "image", + "video" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 300000, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", + "cost": { + "input": 0.8, + "output": 3.2, + "cache_read": 0.2 + } }, { - "id": "ministral-3:3b-instruct-2512-q8_0", - "name": "Ministral 3 3B Instruct 2512 Q8_0", - "display_name": "Ministral 3 3B Instruct 2512 Q8_0", + "id": "meta.llama3-1-8b-instruct-v1:0", + "name": "Llama 3.1 8B Instruct", + "display_name": "Llama 3.1 8B Instruct", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 128000, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 0.22, + "output": 0.22 + } }, { - "id": "ministral-3:3b-instruct-2512-fp16", - "name": "Ministral 3 3B Instruct 2512 FP16", - "display_name": "Ministral 3 3B Instruct 2512 FP16", + "id": "openai.gpt-oss-120b-1:0", + "name": "gpt-oss-120b", + "display_name": "gpt-oss-120b", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 128000, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" - }, - { - "id": "ministral-3:8b-instruct-2512-q8_0", - "name": "Ministral 3 8B Instruct 2512 Q8_0", - "display_name": "Ministral 3 8B Instruct 2512 Q8_0", - "modalities": { - "input": [ - "text", - "image" - ], - "output": [ - "text" - ] - }, - "limit": { - "context": 256000, - "output": 256000 - }, - "tool_call": true, - "reasoning": { - "supported": false - }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.15, + "output": 0.6 + } }, { - "id": "ministral-3:8b-instruct-2512-fp16", - "name": "Ministral 3 8B Instruct 2512 FP16", - "display_name": "Ministral 3 8B Instruct 2512 FP16", + "id": "qwen.qwen3-32b-v1:0", + "name": "Qwen3 32B (dense)", + "display_name": "Qwen3 32B (dense)", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 16384, + "output": 16384 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2025-09-18", + "last_updated": "2025-09-18", + "cost": { + "input": 0.15, + "output": 0.6 + } }, { - "id": "ministral-3:14b-instruct-2512-q8_0", - "name": "Ministral 3 14B Instruct 2512 Q8_0", - "display_name": "Ministral 3 14B Instruct 2512 Q8_0", + "id": "anthropic.claude-3-5-sonnet-20240620-v1:0", + "name": "Claude Sonnet 3.5", + "display_name": "Claude Sonnet 3.5", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 200000, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2024-06-20", + "last_updated": "2024-06-20", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } }, { - "id": "ministral-3:14b-instruct-2512-fp16", - "name": "Ministral 3 14B Instruct 2512 FP16", - "display_name": "Ministral 3 14B Instruct 2512 FP16", + "id": "anthropic.claude-haiku-4-5-20251001-v1:0", + "name": "Claude Haiku 4.5", + "display_name": "Claude Haiku 4.5", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 200000, + "output": 64000 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2025-02-28", + "release_date": "2025-10-15", + "last_updated": "2025-10-15", + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } }, { - "id": "qwen2.5:latest", - "name": "Qwen2.5 Latest", - "display_name": "Qwen2.5 Latest", + "id": "cohere.command-r-v1:0", + "name": "Command R", + "display_name": "Command R", "modalities": { "input": [ "text" @@ -54220,40 +55407,58 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-03-11", + "last_updated": "2024-03-11", + "cost": { + "input": 0.5, + "output": 1.5 + } }, { - "id": "qwen2.5:0.5b", - "name": "Qwen2.5 0.5B", - "display_name": "Qwen2.5 0.5B", + "id": "mistral.voxtral-small-24b-2507", + "name": "Voxtral Small 24B 2507", + "display_name": "Voxtral Small 24B 2507", "modalities": { "input": [ - "text" + "text", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 32000, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "release_date": "2025-07-01", + "last_updated": "2025-07-01", + "cost": { + "input": 0.15, + "output": 0.35 + } }, { - "id": "qwen2.5:1.5b", - "name": "Qwen2.5 1.5B", - "display_name": "Qwen2.5 1.5B", + "id": "amazon.nova-micro-v1:0", + "name": "Nova Micro", + "display_name": "Nova Micro", "modalities": { "input": [ "text" @@ -54264,18 +55469,28 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", + "cost": { + "input": 0.035, + "output": 0.14, + "cache_read": 0.00875 + } }, { - "id": "qwen2.5:3b", - "name": "Qwen2.5 3B", - "display_name": "Qwen2.5 3B", + "id": "meta.llama3-1-70b-instruct-v1:0", + "name": "Llama 3.1 70B Instruct", + "display_name": "Llama 3.1 70B Instruct", "modalities": { "input": [ "text" @@ -54286,18 +55501,27 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 0.72, + "output": 0.72 + } }, { - "id": "qwen2.5:7b", - "name": "Qwen2.5 7B", - "display_name": "Qwen2.5 7B", + "id": "meta.llama3-70b-instruct-v1:0", + "name": "Llama 3 70B Instruct", + "display_name": "Llama 3 70B Instruct", "modalities": { "input": [ "text" @@ -54307,19 +55531,28 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 8192, + "output": 2048 }, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 2.65, + "output": 3.5 + } }, { - "id": "qwen2.5:14b", - "name": "Qwen2.5 14B", - "display_name": "Qwen2.5 14B", + "id": "deepseek.r1-v1:0", + "name": "DeepSeek-R1", + "display_name": "DeepSeek-R1", "modalities": { "input": [ "text" @@ -54332,38 +55565,61 @@ "context": 128000, "output": 32768 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-05-29", + "cost": { + "input": 1.35, + "output": 5.4 + } }, { - "id": "qwen2.5:32b", - "name": "Qwen2.5 32B", - "display_name": "Qwen2.5 32B", + "id": "anthropic.claude-3-5-sonnet-20241022-v2:0", + "name": "Claude Sonnet 3.5 v2", + "display_name": "Claude Sonnet 3.5 v2", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 200000, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } }, { - "id": "qwen2.5:72b", - "name": "Qwen2.5 72B", - "display_name": "Qwen2.5 72B", + "id": "mistral.ministral-3-8b-instruct", + "name": "Ministral 3 8B", + "display_name": "Ministral 3 8B", "modalities": { "input": [ "text" @@ -54374,18 +55630,26 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.15, + "output": 0.15 + } }, { - "id": "llama3:latest", - "name": "Llama 3 Latest", - "display_name": "Llama 3 Latest", + "id": "cohere.command-text-v14", + "name": "Command", + "display_name": "Command", "modalities": { "input": [ "text" @@ -54395,43 +55659,67 @@ ] }, "limit": { - "context": 8000, - "output": 2000 + "context": 4096, + "output": 4096 }, + "temperature": true, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-08", + "release_date": "2023-11-01", + "last_updated": "2023-11-01", + "cost": { + "input": 1.5, + "output": 2 + } }, { - "id": "llama3:8b", - "name": "Llama 3 8B", - "display_name": "Llama 3 8B", + "id": "anthropic.claude-opus-4-20250514-v1:0", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 8000, - "output": 2000 + "context": 200000, + "output": 32000 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } }, { - "id": "llama3:70b", - "name": "Llama 3 70B", - "display_name": "Llama 3 70B", + "id": "mistral.voxtral-mini-3b-2507", + "name": "Voxtral Mini 3B 2507", + "display_name": "Voxtral Mini 3B 2507", "modalities": { "input": [ + "audio", "text" ], "output": [ @@ -54439,63 +55727,95 @@ ] }, "limit": { - "context": 8000, - "output": 2000 + "context": 128000, + "output": 4096 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.04, + "output": 0.04 + } }, { - "id": "gemma2:latest", - "name": "Gemma 2 Latest", - "display_name": "Gemma 2 Latest", + "id": "global.anthropic.claude-opus-4-5-20251101-v1:0", + "name": "Claude Opus 4.5 (Global)", + "display_name": "Claude Opus 4.5 (Global)", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 200000, + "output": 64000 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-11-24", + "last_updated": "2025-08-01", + "cost": { + "input": 5, + "output": 25, + "cache_read": 1.5, + "cache_write": 18.75 + } }, { - "id": "gemma2:2b", - "name": "Gemma 2 2B", - "display_name": "Gemma 2 2B", + "id": "amazon.nova-2-lite-v1:0", + "name": "Nova 2 Lite", + "display_name": "Nova 2 Lite", "modalities": { "input": [ - "text" + "text", + "image", + "video" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 128000, + "output": 4096 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.33, + "output": 2.75 + } }, { - "id": "gemma2:9b", - "name": "Gemma 2 9B", - "display_name": "Gemma 2 9B", + "id": "qwen.qwen3-coder-480b-a35b-v1:0", + "name": "Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen3 Coder 480B A35B Instruct", "modalities": { "input": [ "text" @@ -54505,41 +55825,64 @@ ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 131072, + "output": 65536 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2025-09-18", + "last_updated": "2025-09-18", + "cost": { + "input": 0.22, + "output": 1.8 + } }, { - "id": "gemma2:27b", - "name": "Gemma 2 27B", - "display_name": "Gemma 2 27B", + "id": "anthropic.claude-sonnet-4-5-20250929-v1:0", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 200000, + "output": 64000 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } }, { - "id": "qwen2.5-coder:latest", - "name": "Qwen2.5-Coder Latest", - "display_name": "Qwen2.5-Coder Latest", + "id": "openai.gpt-oss-safeguard-20b", + "name": "GPT OSS Safeguard 20B", + "display_name": "GPT OSS Safeguard 20B", "modalities": { "input": [ "text" @@ -54550,18 +55893,26 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.07, + "output": 0.2 + } }, { - "id": "qwen2.5-coder:0.5b", - "name": "Qwen2.5-Coder 0.5B", - "display_name": "Qwen2.5-Coder 0.5B", + "id": "openai.gpt-oss-20b-1:0", + "name": "gpt-oss-20b", + "display_name": "gpt-oss-20b", "modalities": { "input": [ "text" @@ -54572,18 +55923,26 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.07, + "output": 0.3 + } }, { - "id": "qwen2.5-coder:1.5b", - "name": "Qwen2.5-Coder 1.5B", - "display_name": "Qwen2.5-Coder 1.5B", + "id": "meta.llama3-2-3b-instruct-v1:0", + "name": "Llama 3.2 3B Instruct", + "display_name": "Llama 3.2 3B Instruct", "modalities": { "input": [ "text" @@ -54593,19 +55952,28 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 131000, + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", + "cost": { + "input": 0.15, + "output": 0.15 + } }, { - "id": "qwen2.5-coder:3b", - "name": "Qwen2.5-Coder 3B", - "display_name": "Qwen2.5-Coder 3B", + "id": "anthropic.claude-instant-v1", + "name": "Claude Instant", + "display_name": "Claude Instant", "modalities": { "input": [ "text" @@ -54615,41 +55983,62 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 100000, + "output": 4096 }, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "knowledge": "2023-08", + "release_date": "2023-03-01", + "last_updated": "2023-03-01", + "cost": { + "input": 0.8, + "output": 2.4 + } }, { - "id": "qwen2.5-coder:7b", - "name": "Qwen2.5-Coder 7B", - "display_name": "Qwen2.5-Coder 7B", + "id": "amazon.nova-premier-v1:0", + "name": "Nova Premier", + "display_name": "Nova Premier", "modalities": { "input": [ - "text" + "text", + "image", + "video" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 1000000, + "output": 16384 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", + "cost": { + "input": 2.5, + "output": 12.5 + } }, { - "id": "qwen2.5-coder:14b", - "name": "Qwen2.5-Coder 14B", - "display_name": "Qwen2.5-Coder 14B", + "id": "mistral.mistral-7b-instruct-v0:2", + "name": "Mistral-7B-Instruct-v0.3", + "display_name": "Mistral-7B-Instruct-v0.3", "modalities": { "input": [ "text" @@ -54659,19 +56048,27 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 127000, + "output": 127000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2025-04-01", + "last_updated": "2025-04-01", + "cost": { + "input": 0.11, + "output": 0.11 + } }, { - "id": "qwen2.5-coder:32b", - "name": "Qwen2.5-Coder 32B", - "display_name": "Qwen2.5-Coder 32B", + "id": "mistral.mixtral-8x7b-instruct-v0:1", + "name": "Mixtral-8x7B-Instruct-v0.1", + "display_name": "Mixtral-8x7B-Instruct-v0.1", "modalities": { "input": [ "text" @@ -54681,63 +56078,95 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 32000, + "output": 32000 }, - "tool_call": true, + "temperature": true, + "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2025-04-01", + "last_updated": "2025-04-01", + "cost": { + "input": 0.7, + "output": 0.7 + } }, { - "id": "phi4:latest", - "name": "Phi-4 Latest", - "display_name": "Phi-4 Latest", + "id": "anthropic.claude-opus-4-1-20250805-v1:0", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 16000, - "output": 4000 + "context": 200000, + "output": 32000 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } }, { - "id": "phi4:14b", - "name": "Phi-4 14B", - "display_name": "Phi-4 14B", + "id": "meta.llama4-scout-17b-instruct-v1:0", + "name": "Llama 4 Scout 17B Instruct", + "display_name": "Llama 4 Scout 17B Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 16000, - "output": 4000 + "context": 3500000, + "output": 16384 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0.17, + "output": 0.66 + } }, { - "id": "gemma:latest", - "name": "Gemma Latest", - "display_name": "Gemma Latest", + "id": "ai21.jamba-1-5-mini-v1:0", + "name": "Jamba 1.5 Mini", + "display_name": "Jamba 1.5 Mini", "modalities": { "input": [ "text" @@ -54747,19 +56176,28 @@ ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 256000, + "output": 4096 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2024-08-15", + "last_updated": "2024-08-15", + "cost": { + "input": 0.2, + "output": 0.4 + } }, { - "id": "gemma:2b", - "name": "Gemma 2B", - "display_name": "Gemma 2B", + "id": "meta.llama3-8b-instruct-v1:0", + "name": "Llama 3 8B Instruct", + "display_name": "Llama 3 8B Instruct", "modalities": { "input": [ "text" @@ -54772,16 +56210,25 @@ "context": 8192, "output": 2048 }, + "temperature": true, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2023-03", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 0.3, + "output": 0.6 + } }, { - "id": "gemma:7b", - "name": "Gemma 7B", - "display_name": "Gemma 7B", + "id": "amazon.titan-text-express-v1:0:8k", + "name": "Titan Text G1 - Express", + "display_name": "Titan Text G1 - Express", "modalities": { "input": [ "text" @@ -54791,41 +56238,60 @@ ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 128000, + "output": 4096 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.2, + "output": 0.6 + } }, { - "id": "llama2:latest", - "name": "Llama 2 Latest", - "display_name": "Llama 2 Latest", + "id": "anthropic.claude-3-sonnet-20240229-v1:0", + "name": "Claude Sonnet 3", + "display_name": "Claude Sonnet 3", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 4096, - "output": 1024 + "context": 200000, + "output": 4096 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2023-08", + "release_date": "2024-03-04", + "last_updated": "2024-03-04", + "cost": { + "input": 3, + "output": 15 + } }, { - "id": "llama2:7b", - "name": "Llama 2 7B", - "display_name": "Llama 2 7B", + "id": "nvidia.nemotron-nano-9b-v2", + "name": "NVIDIA Nemotron Nano 9B v2", + "display_name": "NVIDIA Nemotron Nano 9B v2", "modalities": { "input": [ "text" @@ -54835,19 +56301,27 @@ ] }, "limit": { - "context": 4096, - "output": 1024 + "context": 128000, + "output": 4096 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.06, + "output": 0.23 + } }, { - "id": "llama2:13b", - "name": "Llama 2 13B", - "display_name": "Llama 2 13B", + "id": "amazon.titan-text-express-v1", + "name": "Titan Text G1 - Express", + "display_name": "Titan Text G1 - Express", "modalities": { "input": [ "text" @@ -54857,41 +56331,59 @@ ] }, "limit": { - "context": 4096, - "output": 1024 + "context": 128000, + "output": 4096 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.2, + "output": 0.6 + } }, { - "id": "llama2:70b", - "name": "Llama 2 70B", - "display_name": "Llama 2 70B", + "id": "meta.llama4-maverick-17b-instruct-v1:0", + "name": "Llama 4 Maverick 17B Instruct", + "display_name": "Llama 4 Maverick 17B Instruct", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 4096, - "output": 1024 + "context": 1000000, + "output": 16384 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0.24, + "output": 0.97 + } }, { - "id": "qwen2:latest", - "name": "Qwen2 Latest", - "display_name": "Qwen2 Latest", + "id": "mistral.ministral-3-14b-instruct", + "name": "Ministral 14B 3.0", + "display_name": "Ministral 14B 3.0", "modalities": { "input": [ "text" @@ -54902,18 +56394,26 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.2, + "output": 0.2 + } }, { - "id": "qwen2:0.5b", - "name": "Qwen2 0.5B", - "display_name": "Qwen2 0.5B", + "id": "openai.gpt-oss-safeguard-120b", + "name": "GPT OSS Safeguard 120B", + "display_name": "GPT OSS Safeguard 120B", "modalities": { "input": [ "text" @@ -54924,18 +56424,26 @@ }, "limit": { "context": 128000, - "output": 32768 + "output": 4096 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.15, + "output": 0.6 + } }, { - "id": "qwen2:1.5b", - "name": "Qwen2 1.5B", - "display_name": "Qwen2 1.5B", + "id": "qwen.qwen3-235b-a22b-2507-v1:0", + "name": "Qwen3 235B A22B 2507", + "display_name": "Qwen3 235B A22B 2507", "modalities": { "input": [ "text" @@ -54945,63 +56453,97 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 262144, + "output": 131072 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2025-09-18", + "last_updated": "2025-09-18", + "cost": { + "input": 0.22, + "output": 0.88 + } }, { - "id": "qwen2:7b", - "name": "Qwen2 7B", - "display_name": "Qwen2 7B", + "id": "amazon.nova-lite-v1:0", + "name": "Nova Lite", + "display_name": "Nova Lite", "modalities": { "input": [ - "text" + "text", + "image", + "video" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 300000, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", + "cost": { + "input": 0.06, + "output": 0.24, + "cache_read": 0.015 + } }, { - "id": "qwen2:72b", - "name": "Qwen2 72B", - "display_name": "Qwen2 72B", + "id": "anthropic.claude-3-5-haiku-20241022-v1:0", + "name": "Claude Haiku 3.5", + "display_name": "Claude Haiku 3.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 200000, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } }, { - "id": "deepseek-v3:latest", - "name": "DeepSeek-V3 Latest", - "display_name": "DeepSeek-V3 Latest", + "id": "moonshot.kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", "modalities": { "input": [ "text" @@ -55011,20 +56553,37 @@ ] }, "limit": { - "context": 160000, - "output": 40000 + "context": 256000, + "output": 256000 }, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "type": "chat" - }, + "attachment": false, + "open_weights": true, + "release_date": "2025-12-02", + "last_updated": "2025-12-02", + "cost": { + "input": 0.6, + "output": 2.5 + } + } + ] + }, + "poe": { + "id": "poe", + "name": "Poe", + "display_name": "Poe", + "api": "https://api.poe.com/v1", + "doc": "https://creator.poe.com/docs/external-applications/openai-compatible-api", + "models": [ { - "id": "deepseek-v3:671b", - "name": "DeepSeek-V3 671B", - "display_name": "DeepSeek-V3 671B", + "id": "xai/grok-4-fast-non-reasoning", + "name": "Grok-4-Fast-Non-Reasoning", + "display_name": "Grok-4-Fast-Non-Reasoning", "modalities": { "input": [ "text" @@ -55034,20 +56593,28 @@ ] }, "limit": { - "context": 160000, - "output": 40000 + "context": 2000000, + "output": 128000 }, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2025-09-16", + "last_updated": "2025-09-16", + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + } }, { - "id": "llama3.3:latest", - "name": "Llama 3.3 Latest", - "display_name": "Llama 3.3 Latest", + "id": "xai/grok-4-fast-reasoning", + "name": "Grok 4 Fast Reasoning", + "display_name": "Grok 4 Fast Reasoning", "modalities": { "input": [ "text" @@ -55057,20 +56624,30 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 2000000, + "output": 128000 }, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2025-09-16", + "last_updated": "2025-09-16", + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + } }, { - "id": "llama3.3:70b", - "name": "Llama 3.3 70B", - "display_name": "Llama 3.3 70B", - "modalities": { + "id": "xai/grok-4.1-fast-reasoning", + "name": "Grok-4.1-Fast-Reasoning", + "display_name": "Grok-4.1-Fast-Reasoning", + "modalities": { "input": [ "text" ], @@ -55079,86 +56656,120 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 2000000, + "output": 30000 }, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2025-11-19", + "last_updated": "2025-11-19" }, { - "id": "bge-m3:latest", - "name": "BGE-M3 Latest", - "display_name": "BGE-M3 Latest", + "id": "xai/grok-4", + "name": "Grok 4", + "display_name": "Grok 4", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 0 + "context": 256000, + "output": 128000 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "embedding" + "attachment": true, + "open_weights": false, + "release_date": "2025-07-10", + "last_updated": "2025-07-10", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75 + } }, { - "id": "bge-m3:567m", - "name": "BGE-M3 567M", - "display_name": "BGE-M3 567M", + "id": "xai/grok-code-fast-1", + "name": "Grok Code Fast 1", + "display_name": "Grok Code Fast 1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 8192, - "output": 0 + "context": 256000, + "output": 128000 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "embedding" + "attachment": true, + "open_weights": false, + "release_date": "2025-08-22", + "last_updated": "2025-08-22", + "cost": { + "input": 0.2, + "output": 1.5, + "cache_read": 0.02 + } }, { - "id": "llama3.2-vision:latest", - "name": "Llama 3.2 Vision Latest", - "display_name": "Llama 3.2 Vision Latest", + "id": "xai/grok-2", + "name": "Grok-2", + "display_name": "Grok-2", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 131072, + "output": 8192 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2025-01-14", + "last_updated": "2025-01-14", + "cost": { + "input": 2, + "output": 10 + } }, { - "id": "llama3.2-vision:11b", - "name": "Llama 3.2 Vision 11B", - "display_name": "Llama 3.2 Vision 11B", + "id": "xai/grok-4.1-fast-non-reasoning", + "name": "Grok-4.1-Fast-Non-Reasoning", + "display_name": "Grok-4.1-Fast-Non-Reasoning", "modalities": { "input": [ "text", @@ -55169,19 +56780,23 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 2000000, + "output": 30000 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2025-11-19", + "last_updated": "2025-11-19" }, { - "id": "llama3.2-vision:90b", - "name": "Llama 3.2 Vision 90B", - "display_name": "Llama 3.2 Vision 90B", + "id": "xai/grok-3", + "name": "Grok 3", + "display_name": "Grok 3", "modalities": { "input": [ "text", @@ -55192,19 +56807,28 @@ ] }, "limit": { - "context": 128000, - "output": 32768 + "context": 131072, + "output": 8192 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2025-04-11", + "last_updated": "2025-04-11", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75 + } }, { - "id": "tinyllama:latest", - "name": "TinyLlama Latest", - "display_name": "TinyLlama Latest", + "id": "xai/grok-3-mini", + "name": "Grok 3 Mini", + "display_name": "Grok 3 Mini", "modalities": { "input": [ "text" @@ -55214,151 +56838,189 @@ ] }, "limit": { - "context": 2048, - "output": 512 + "context": 131072, + "output": 8192 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2025-04-11", + "last_updated": "2025-04-11", + "cost": { + "input": 0.3, + "output": 0.5, + "cache_read": 0.075 + } }, { - "id": "tinyllama:1.1b", - "name": "TinyLlama 1.1B", - "display_name": "TinyLlama 1.1B", + "id": "ideogramai/ideogram", + "name": "Ideogram", + "display_name": "Ideogram", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 2048, - "output": 512 + "context": 150, + "output": 0 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2024-04-03", + "last_updated": "2024-04-03" }, { - "id": "starcoder2:latest", - "name": "StarCoder2 Latest", - "display_name": "StarCoder2 Latest", + "id": "ideogramai/ideogram-v2a", + "name": "Ideogram-v2a", + "display_name": "Ideogram-v2a", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 16384, - "output": 4096 + "context": 150, + "output": 0 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2025-02-27", + "last_updated": "2025-02-27" }, { - "id": "starcoder2:3b", - "name": "StarCoder2 3B", - "display_name": "StarCoder2 3B", + "id": "ideogramai/ideogram-v2a-turbo", + "name": "Ideogram-v2a-Turbo", + "display_name": "Ideogram-v2a-Turbo", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 16384, - "output": 4096 + "context": 150, + "output": 0 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2025-02-27", + "last_updated": "2025-02-27" }, { - "id": "starcoder2:7b", - "name": "StarCoder2 7B", - "display_name": "StarCoder2 7B", + "id": "ideogramai/ideogram-v2", + "name": "Ideogram-v2", + "display_name": "Ideogram-v2", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 16384, - "output": 4096 + "context": 150, + "output": 0 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2024-08-21", + "last_updated": "2024-08-21" }, { - "id": "starcoder2:15b", - "name": "StarCoder2 15B", - "display_name": "StarCoder2 15B", + "id": "runwayml/runway", + "name": "Runway", + "display_name": "Runway", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ - "text" + "video" ] }, "limit": { - "context": 16384, - "output": 4096 + "context": 256, + "output": 0 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2024-10-11", + "last_updated": "2024-10-11" }, { - "id": "codegemma:latest", - "name": "CodeGemma Latest", - "display_name": "CodeGemma Latest", + "id": "runwayml/runway-gen-4-turbo", + "name": "Runway-Gen-4-Turbo", + "display_name": "Runway-Gen-4-Turbo", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ - "text" + "video" ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 256, + "output": 0 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2025-05-09", + "last_updated": "2025-05-09" }, { - "id": "codegemma:2b", - "name": "CodeGemma 2B", - "display_name": "CodeGemma 2B", + "id": "poetools/claude-code", + "name": "claude-code", + "display_name": "claude-code", "modalities": { "input": [ "text" @@ -55368,786 +57030,846 @@ ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 0, + "output": 0 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2025-11-27", + "last_updated": "2025-11-27" }, { - "id": "codegemma:7b", - "name": "CodeGemma 7B", - "display_name": "CodeGemma 7B", + "id": "elevenlabs/elevenlabs-v3", + "name": "ElevenLabs-v3", + "display_name": "ElevenLabs-v3", "modalities": { "input": [ "text" ], "output": [ - "text" + "audio" ] }, "limit": { - "context": 8192, - "output": 2048 + "context": 128000, + "output": 0 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": false, + "release_date": "2025-06-05", + "last_updated": "2025-06-05" }, { - "id": "kimi-k2-thinking:cloud", - "name": "Kimi K2 Thinking", - "display_name": "Kimi K2 Thinking", + "id": "elevenlabs/elevenlabs-music", + "name": "ElevenLabs-Music", + "display_name": "ElevenLabs-Music", "modalities": { "input": [ "text" ], "output": [ - "text" + "audio" ] }, "limit": { - "context": 256000, - "output": 8192 + "context": 2000, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": true, - "release_date": "2025-11-06", - "last_updated": "2025-11-06" + "attachment": true, + "open_weights": false, + "release_date": "2025-08-29", + "last_updated": "2025-08-29" }, { - "id": "qwen3-vl-235b-cloud", - "name": "Qwen3-VL 235B Instruct", - "display_name": "Qwen3-VL 235B Instruct", + "id": "elevenlabs/elevenlabs-v2.5-turbo", + "name": "ElevenLabs-v2.5-Turbo", + "display_name": "ElevenLabs-v2.5-Turbo", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text" + "audio" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 128000, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, - "open_weights": true, - "release_date": "2025-09-22", - "last_updated": "2025-09-22" + "open_weights": false, + "release_date": "2024-10-28", + "last_updated": "2024-10-28" }, { - "id": "cogito-2.1:671b-cloud", - "name": "Cogito 2.1 671B", - "display_name": "Cogito 2.1 671B", + "id": "google/gemini-deep-research", + "name": "gemini-deep-research", + "display_name": "gemini-deep-research", "modalities": { "input": [ - "text" + "text", + "image", + "video" ], "output": [ "text" ] }, "limit": { - "context": 160000, - "output": 8192 + "context": 1048576, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "release_date": "2025-11-19", - "last_updated": "2025-11-19" + "attachment": true, + "open_weights": false, + "release_date": "2025-12-11", + "last_updated": "2025-12-11", + "cost": { + "input": 1.6, + "output": 9.6 + } }, { - "id": "qwen3-vl-235b-instruct-cloud", - "name": "Qwen3-VL 235B Instruct", - "display_name": "Qwen3-VL 235B Instruct", + "id": "google/nano-banana", + "name": "Nano-Banana", + "display_name": "Nano-Banana", "modalities": { "input": [ "text", "image" ], "output": [ - "text" + "text", + "image" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 32768, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, - "open_weights": true, - "release_date": "2025-09-22", - "last_updated": "2025-09-22" + "open_weights": false, + "release_date": "2025-08-21", + "last_updated": "2025-08-21", + "cost": { + "input": 0.21, + "output": 1.8 + } }, { - "id": "kimi-k2:1t-cloud", - "name": "Kimi K2", - "display_name": "Kimi K2", + "id": "google/imagen-4", + "name": "Imagen-4", + "display_name": "Imagen-4", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 256000, - "output": 8192 + "context": 480, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "release_date": "2025-09-05", - "last_updated": "2025-09-05" + "attachment": true, + "open_weights": false, + "release_date": "2025-05-22", + "last_updated": "2025-05-22" }, { - "id": "minimax-m2:cloud", - "name": "MiniMax M2", - "display_name": "MiniMax M2", + "id": "google/imagen-3", + "name": "Imagen-3", + "display_name": "Imagen-3", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 200000, - "output": 8192 + "context": 480, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "release_date": "2025-10-27", - "last_updated": "2025-10-27" - } - ] - }, - "burncloud": { - "id": "burncloud", - "name": "burncloud", - "display_name": "burncloud", - "models": [ + "attachment": true, + "open_weights": false, + "release_date": "2024-10-15", + "last_updated": "2024-10-15" + }, { - "id": "openai/gpt-4-turbo", - "name": "OpenAI GPT-4 Turbo", - "display_name": "GPT-4 Turbo", + "id": "google/imagen-4-ultra", + "name": "Imagen-4-Ultra", + "display_name": "Imagen-4-Ultra", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 128000 + "context": 480, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "cost": { - "input": 8, - "output": 24 - }, - "type": "chat" + "open_weights": false, + "release_date": "2025-05-24", + "last_updated": "2025-05-24" }, { - "id": "openai/o4-mini", - "name": "OpenAI o4-mini", - "display_name": "o4-mini", + "id": "google/gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "display_name": "Gemini 2.5 Flash", "modalities": { "input": [ - "text" + "text", + "image", + "video", + "audio" ], "output": [ "text" ] }, "limit": { - "output": 100000 + "context": 1065535, + "output": 65535 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": true, + "open_weights": false, + "release_date": "2025-04-26", + "last_updated": "2025-04-26", "cost": { - "input": 0.88, - "output": 3.52 - }, - "type": "chat" + "input": 0.21, + "output": 1.8, + "cache_read": 0.052 + } }, { - "id": "openai/o3", - "name": "OpenAI o3", - "display_name": "o3", + "id": "google/gemini-2.0-flash-lite", + "name": "Gemini-2.0-Flash-Lite", + "display_name": "Gemini-2.0-Flash-Lite", "modalities": { "input": [ - "text" + "text", + "image", + "video", + "audio" ], "output": [ "text" ] }, "limit": { - "output": 100000 + "context": 990000, + "output": 8192 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, + "open_weights": false, + "release_date": "2025-02-05", + "last_updated": "2025-02-05", "cost": { - "input": 8, - "output": 35 - }, - "type": "chat" + "input": 0.052, + "output": 0.21 + } }, { - "id": "openai/o3-mini", - "name": "OpenAI o3-mini", - "display_name": "o3-mini", + "id": "google/gemini-3-pro", + "name": "Gemini-3-Pro", + "display_name": "Gemini-3-Pro", "modalities": { "input": [ - "text" + "text", + "image", + "video", + "audio" ], "output": [ "text" ] }, "limit": { - "output": 100000 + "context": 1048576, + "output": 64000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": true, + "open_weights": false, + "release_date": "2025-10-22", + "last_updated": "2025-10-22", "cost": { - "input": 0.88, - "output": 3.52 - }, - "type": "chat" + "input": 1.6, + "output": 9.6, + "cache_read": 0.16 + } }, { - "id": "openai/o1", - "name": "OpenAI o1", - "display_name": "o1", + "id": "google/veo-3.1", + "name": "Veo-3.1", + "display_name": "Veo-3.1", "modalities": { "input": [ "text" ], "output": [ - "text" + "video" ] }, "limit": { - "output": 100000 + "context": 480, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "cost": { - "input": 12, - "output": 48 - }, - "type": "chat" + "open_weights": false, + "release_date": "2025-10-15", + "last_updated": "2025-10-15" }, { - "id": "openai/o1-mini", - "name": "OpenAI o1-mini", - "display_name": "o1-mini", + "id": "google/imagen-3-fast", + "name": "Imagen-3-Fast", + "display_name": "Imagen-3-Fast", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, "limit": { - "output": 65536 + "context": 480, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "cost": { - "input": 0.88, - "output": 3.52 - }, - "type": "chat" + "open_weights": false, + "release_date": "2024-10-17", + "last_updated": "2024-10-17" }, { - "id": "openai/o1-pro", - "name": "OpenAI o1-pro", - "display_name": "o1-pro", + "id": "google/lyria", + "name": "Lyria", + "display_name": "Lyria", "modalities": { "input": [ "text" ], "output": [ - "text" + "audio" ] }, "limit": { - "output": 100000 + "context": 0, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "cost": { - "input": 120, - "output": 480 - }, - "type": "chat" + "open_weights": false, + "release_date": "2025-06-04", + "last_updated": "2025-06-04" }, { - "id": "openai/gpt-4.1", - "name": "OpenAI GPT-4.1", - "display_name": "GPT-4.1", + "id": "google/gemini-2.0-flash", + "name": "Gemini-2.0-Flash", + "display_name": "Gemini-2.0-Flash", "modalities": { "input": [ "text", - "image" + "image", + "video", + "audio" ], "output": [ "text" ] }, "limit": { - "output": 32768 + "context": 990000, + "output": 8192 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, + "open_weights": false, + "release_date": "2024-12-11", + "last_updated": "2024-12-11", "cost": { - "input": 1.6, - "output": 6.4 - }, - "type": "chat" + "input": 0.1, + "output": 0.42 + } }, { - "id": "openai/gpt-4o", - "name": "OpenAI GPT-4o", - "display_name": "GPT-4o", + "id": "google/gemini-2.5-flash-lite", + "name": "Gemini 2.5 Flash Lite", + "display_name": "Gemini 2.5 Flash Lite", "modalities": { "input": [ "text", - "image" + "image", + "video", + "audio" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 1024000, + "output": 64000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": true, + "open_weights": false, + "release_date": "2025-06-19", + "last_updated": "2025-06-19", "cost": { - "input": 2, - "output": 8 - }, - "type": "chat" + "input": 0.07, + "output": 0.28 + } }, { - "id": "openai/gpt-4o-audio", - "name": "OpenAI GPT-4o Audio", - "display_name": "GPT-4o Audio", + "id": "google/veo-3", + "name": "Veo-3", + "display_name": "Veo-3", "modalities": { "input": [ - "text", - "audio" + "text" ], "output": [ - "text", - "audio" + "video" ] }, "limit": { - "output": 16384 + "context": 480, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "cost": { - "input": 2, - "output": 8 - }, - "type": "chat" + "open_weights": false, + "release_date": "2025-05-21", + "last_updated": "2025-05-21" }, { - "id": "openai/gpt-4o-mini", - "name": "OpenAI GPT-4o mini", - "display_name": "GPT-4o mini", + "id": "google/veo-3-fast", + "name": "Veo-3-Fast", + "display_name": "Veo-3-Fast", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text" + "video" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 480, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "cost": { - "input": 0.12, - "output": 0.48 - }, - "type": "chat" + "open_weights": false, + "release_date": "2025-10-13", + "last_updated": "2025-10-13" }, { - "id": "openai/gpt-4o-mini-audio", - "name": "OpenAI GPT-4o mini Audio", - "display_name": "GPT-4o mini Audio", + "id": "google/imagen-4-fast", + "name": "Imagen-4-Fast", + "display_name": "Imagen-4-Fast", "modalities": { "input": [ - "text", - "audio" + "text" ], "output": [ - "text", - "audio" + "image" ] }, "limit": { - "output": 16384 + "context": 480, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "cost": { - "input": 0.12, - "output": 0.48 - }, - "type": "chat" + "open_weights": false, + "release_date": "2025-06-25", + "last_updated": "2025-06-25" }, { - "id": "openai/gpt-4o-realtime", - "name": "OpenAI GPT-4o Realtime", - "display_name": "GPT-4o Realtime", + "id": "google/veo-2", + "name": "Veo-2", + "display_name": "Veo-2", "modalities": { "input": [ - "text", - "audio" + "text" ], "output": [ - "text", - "audio" + "video" ] }, "limit": { - "output": 4096 + "context": 480, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "cost": { - "input": 4, - "output": 16 - }, - "type": "chat" + "open_weights": false, + "release_date": "2024-12-02", + "last_updated": "2024-12-02" }, { - "id": "openai/gpt-4o-mini-realtime", - "name": "OpenAI GPT-4o mini Realtime", - "display_name": "GPT-4o mini Realtime", + "id": "google/nano-banana-pro", + "name": "Nano-Banana-Pro", + "display_name": "Nano-Banana-Pro", "modalities": { "input": [ "text", - "audio" + "image" ], "output": [ - "text", - "audio" + "image" ] }, "limit": { - "output": 4096 + "context": 65536, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, + "open_weights": false, + "release_date": "2025-11-19", + "last_updated": "2025-11-19", "cost": { - "input": 0.48, - "output": 1.92 - }, - "type": "chat" + "input": 1.6, + "output": 9.6, + "cache_read": 0.16 + } }, { - "id": "openai/gpt-image-1", - "name": "OpenAI GPT Image 1", - "display_name": "GPT Image 1", + "id": "google/gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", "modalities": { "input": [ - "text" + "text", + "image", + "video", + "audio" ], "output": [ - "image" + "text" ] }, - "temperature": true, - "tool_call": false, + "limit": { + "context": 1065535, + "output": 65535 + }, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, + "attachment": true, + "open_weights": false, + "release_date": "2025-02-05", + "last_updated": "2025-02-05", "cost": { - "input": 4, - "output": 32 - }, - "type": "imageGeneration" + "input": 0.87, + "output": 7, + "cache_read": 0.22 + } }, { - "id": "openai/gpt-4o-mini-tts", - "name": "OpenAI GPT-4o mini TTS", - "display_name": "GPT-4o mini TTS", + "id": "google/veo-3.1-fast", + "name": "Veo-3.1-Fast", + "display_name": "Veo-3.1-Fast", "modalities": { "input": [ "text" ], "output": [ - "audio" + "video" ] }, + "limit": { + "context": 480, + "output": 0 + }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "cost": { - "input": 0.48, - "output": 0.96 - } + "attachment": true, + "open_weights": false, + "release_date": "2025-10-15", + "last_updated": "2025-10-15" }, { - "id": "openai/tts-1-hd", - "name": "OpenAI TTS-1 HD", - "display_name": "TTS-1 HD", + "id": "openai/gpt-4.1-nano", + "name": "GPT-4.1-nano", + "display_name": "GPT-4.1-nano", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ - "audio" + "text" ] }, + "limit": { + "context": 1047576, + "output": 32768 + }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, + "open_weights": false, + "release_date": "2025-04-15", + "last_updated": "2025-04-15", "cost": { - "input": 24 + "input": 0.09, + "output": 0.36, + "cache_read": 0.022 } }, { - "id": "openai/gpt-4o-transcribe", - "name": "OpenAI GPT-4o Transcribe", - "display_name": "GPT-4o Transcribe", + "id": "openai/gpt-5.2-instant", + "name": "gpt-5.2-instant", + "display_name": "gpt-5.2-instant", "modalities": { "input": [ - "audio" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "output": 2000 + "context": 128000, + "output": 16384 }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, + "open_weights": false, + "release_date": "2025-12-11", + "last_updated": "2025-12-11", "cost": { - "input": 2, - "output": 8 + "input": 1.6, + "output": 13, + "cache_read": 0.16 } }, { - "id": "openai/whisper", - "name": "OpenAI Whisper", - "display_name": "Whisper", + "id": "openai/sora-2", + "name": "Sora-2", + "display_name": "Sora-2", "modalities": { "input": [ - "audio" + "text", + "image" ], "output": [ - "text" + "video" ] }, + "limit": { + "context": 0, + "output": 0 + }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "cost": { - "input": 0.0048 - } + "attachment": true, + "open_weights": false, + "release_date": "2025-10-06", + "last_updated": "2025-10-06" }, { - "id": "openai/gpt-4o-search-preview", - "name": "OpenAI GPT-4o Search Preview", - "display_name": "GPT-4o Search Preview", + "id": "openai/o1-pro", + "name": "o1-pro", + "display_name": "o1-pro", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "output": 16384 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": true, + "open_weights": false, + "release_date": "2025-03-19", + "last_updated": "2025-03-19", "cost": { - "input": 2, - "output": 8 - }, - "type": "chat" + "input": 140, + "output": 540 + } }, { - "id": "openai/computer-use-preview", - "name": "OpenAI Computer Use Preview", - "display_name": "computer-use-preview", + "id": "openai/gpt-5.1-codex", + "name": "GPT-5.1-Codex", + "display_name": "GPT-5.1-Codex", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "output": 1024 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": true, + "open_weights": false, + "release_date": "2025-11-12", + "last_updated": "2025-11-12", "cost": { - "input": 2.4, - "output": 9.6 - }, - "type": "chat" + "input": 1.1, + "output": 9, + "cache_read": 0.11 + } }, { - "id": "google/gemini-2.5-pro", - "name": "Google Gemini 2.5 Pro", - "display_name": "Gemini 2.5 Pro", + "id": "openai/gpt-3.5-turbo-raw", + "name": "GPT-3.5-Turbo-Raw", + "display_name": "GPT-3.5-Turbo-Raw", "modalities": { "input": [ "text", @@ -56158,25 +57880,27 @@ ] }, "limit": { - "output": 65536 + "context": 4524, + "output": 2048 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, + "open_weights": false, + "release_date": "2023-09-27", + "last_updated": "2023-09-27", "cost": { - "input": 1, - "output": 8 - }, - "type": "chat" + "input": 0.45, + "output": 1.4 + } }, { - "id": "google/gemini-2.5-flash", - "name": "Google Gemini 2.5 Flash", - "display_name": "Gemini 2.5 Flash", + "id": "openai/gpt-4-classic", + "name": "GPT-4-Classic", + "display_name": "GPT-4-Classic", "modalities": { "input": [ "text", @@ -56187,25 +57911,27 @@ ] }, "limit": { - "output": 65536 + "context": 8192, + "output": 4096 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, + "open_weights": false, + "release_date": "2024-03-25", + "last_updated": "2024-03-25", "cost": { - "input": 0.12, - "output": 0.48 - }, - "type": "chat" + "input": 27, + "output": 54 + } }, { - "id": "google/gemini-2.0-flash", - "name": "Google Gemini 2.0 Flash", - "display_name": "Gemini 2.0 Flash", + "id": "openai/gpt-4.1-mini", + "name": "GPT-4.1-mini", + "display_name": "GPT-4.1-mini", "modalities": { "input": [ "text", @@ -56216,75 +57942,63 @@ ] }, "limit": { - "output": 8192 + "context": 1047576, + "output": 32768 }, - "temperature": true, + "temperature": false, "tool_call": true, - "reasoning": { - "supported": true, - "default": true - }, - "attachment": true, - "cost": { - "input": 0.08, - "output": 0.32 - }, - "type": "chat" - }, - { - "id": "google/imagen-3", - "name": "Google Imagen 3", - "display_name": "Imagen 3", - "modalities": { - "input": [ - "text" - ], - "output": [ - "image" - ] - }, - "temperature": true, - "tool_call": false, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, + "open_weights": false, + "release_date": "2025-04-15", + "last_updated": "2025-04-15", "cost": { - "input": 0.024 - }, - "type": "imageGeneration" + "input": 0.36, + "output": 1.4, + "cache_read": 0.09 + } }, { - "id": "google/veo-2", - "name": "Google Veo 2", - "display_name": "Veo 2", + "id": "openai/gpt-5-chat", + "name": "GPT-5-Chat", + "display_name": "GPT-5-Chat", "modalities": { "input": [ "text", "image" ], "output": [ - "video" + "text" ] }, - "temperature": true, - "tool_call": false, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, + "attachment": true, + "open_weights": false, + "release_date": "2025-08-07", + "last_updated": "2025-08-07", "cost": { - "input": 0.28 + "input": 1.1, + "output": 9, + "cache_read": 0.11 } }, { - "id": "anthropic/claude-sonnet-4", - "name": "Anthropic Claude Sonnet 4", - "display_name": "Claude Sonnet 4", + "id": "openai/o3-deep-research", + "name": "o3-deep-research", + "display_name": "o3-deep-research", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -56292,84 +58006,85 @@ }, "limit": { "context": 200000, - "output": 200000 + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": true, + "open_weights": false, + "release_date": "2025-06-27", + "last_updated": "2025-06-27", "cost": { - "input": 2.4, - "output": 12 - }, - "type": "chat" + "input": 9, + "output": 36, + "cache_read": 2.2 + } }, { - "id": "anthropic/claude-opus-4", - "name": "Anthropic Claude Opus 4", - "display_name": "Claude Opus 4", + "id": "openai/gpt-4o-search", + "name": "GPT-4o-Search", + "display_name": "GPT-4o-Search", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000 + "context": 128000, + "output": 8192 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, + "open_weights": false, + "release_date": "2025-03-11", + "last_updated": "2025-03-11", "cost": { - "input": 12, - "output": 60 - }, - "type": "chat" + "input": 2.2, + "output": 9 + } }, { - "id": "anthropic/claude-3.7-sonnet", - "name": "Anthropic Claude 3.7 Sonnet", - "display_name": "Claude 3.7 Sonnet", + "id": "openai/gpt-image-1-mini", + "name": "GPT-Image-1-Mini", + "display_name": "GPT-Image-1-Mini", "modalities": { "input": [ "text", "image" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 200000, - "output": 200000 + "context": 0, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, - "cost": { - "input": 2.4, - "output": 12 - }, - "type": "chat" + "open_weights": false, + "release_date": "2025-08-26", + "last_updated": "2025-08-26" }, { - "id": "anthropic/claude-3.5-haiku", - "name": "Anthropic Claude 3.5 Haiku", - "display_name": "Claude 3.5 Haiku", + "id": "openai/gpt-3.5-turbo", + "name": "GPT-3.5-Turbo", + "display_name": "GPT-3.5-Turbo", "modalities": { "input": [ "text", @@ -56380,174 +58095,185 @@ ] }, "limit": { - "context": 200000 + "context": 16384, + "output": 2048 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, + "open_weights": false, + "release_date": "2023-09-13", + "last_updated": "2023-09-13", "cost": { - "input": 0.64, - "output": 3.2 - }, - "type": "chat" + "input": 0.45, + "output": 1.4 + } }, { - "id": "xai/grok-3", - "name": "xAI Grok-3", - "display_name": "Grok-3", + "id": "openai/gpt-5.2-pro", + "name": "gpt-5.2-pro", + "display_name": "gpt-5.2-pro", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "output": 8192 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": true, + "open_weights": false, + "release_date": "2025-12-11", + "last_updated": "2025-12-11", "cost": { - "input": 2.4, - "output": 12 - }, - "type": "chat" + "input": 19, + "output": 150 + } }, { - "id": "xai/grok-3-mini", - "name": "xAI Grok-3 Mini", - "display_name": "Grok-3 Mini", + "id": "openai/o3-mini-high", + "name": "o3-mini-high", + "display_name": "o3-mini-high", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "output": 4096 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": true, + "open_weights": false, + "release_date": "2025-01-31", + "last_updated": "2025-01-31", "cost": { - "input": 0.24, - "output": 0.4 - }, - "type": "chat" + "input": 0.99, + "output": 4 + } }, { - "id": "deepseek/deepseek-r1", - "name": "DeepSeek Reasoner", - "display_name": "DeepSeek R1", + "id": "openai/chatgpt-4o-latest", + "name": "ChatGPT-4o-Latest", + "display_name": "ChatGPT-4o-Latest", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { + "context": 128000, "output": 8192 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, + "open_weights": false, + "release_date": "2024-08-14", + "last_updated": "2024-08-14", "cost": { - "input": 0.1104, - "output": 1.7632 - }, - "type": "chat" + "input": 4.5, + "output": 14 + } }, { - "id": "deepseek/deepseek-chat", - "name": "DeepSeek Chat", - "display_name": "DeepSeek Chat", + "id": "openai/gpt-4-turbo", + "name": "GPT-4-Turbo", + "display_name": "GPT-4-Turbo", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "output": 8192 + "context": 128000, + "output": 4096 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, + "open_weights": false, + "release_date": "2023-09-13", + "last_updated": "2023-09-13", "cost": { - "input": 0.0552, - "output": 0.8816 - }, - "type": "chat" - } - ] - }, - "cherryin": { - "id": "cherryin", - "name": "cherryin", - "display_name": "cherryin", - "models": [ + "input": 9, + "output": 27 + } + }, { - "id": "anthropic/claude-opus-4.5", - "name": "Claude Opus 4.5", - "display_name": "Claude Opus 4.5", + "id": "openai/gpt-5.1-codex-mini", + "name": "GPT-5.1-Codex-Mini", + "display_name": "GPT-5.1-Codex-Mini", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 400000, + "output": 128000 }, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, + "attachment": true, "open_weights": false, + "release_date": "2025-11-12", + "last_updated": "2025-11-12", "cost": { - "input": 5, - "output": 25, - "cache_read": 0.5 - }, - "type": "chat" + "input": 0.22, + "output": 1.8, + "cache_read": 0.022 + } }, { - "id": "anthropic/claude-3.7-sonnet", - "name": "Anthropic: Claude 3.7 Sonnet", - "display_name": "Anthropic: Claude 3.7 Sonnet", + "id": "openai/gpt-5.1-instant", + "name": "GPT-5.1-Instant", + "display_name": "GPT-5.1-Instant", "modalities": { "input": [ "text", @@ -56558,25 +58284,28 @@ ] }, "limit": { - "context": 200000, - "output": 64000 + "context": 128000, + "output": 16384 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2024-01", - "release_date": "2025-02-19", - "last_updated": "2025-02-19" + "release_date": "2025-11-12", + "last_updated": "2025-11-12", + "cost": { + "input": 1.1, + "output": 9, + "cache_read": 0.11 + } }, { - "id": "anthropic/claude-haiku-4.5", - "name": "Anthropic: claude-haiku-4-5", - "display_name": "Anthropic: claude-haiku-4-5", + "id": "openai/o3-mini", + "name": "o3-mini", + "display_name": "o3-mini", "modalities": { "input": [ "text", @@ -56587,34 +58316,40 @@ ] }, "limit": { - "context": 204800, - "output": 131072 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": true, - "open_weights": false + "open_weights": false, + "release_date": "2025-01-31", + "last_updated": "2025-01-31", + "cost": { + "input": 0.99, + "output": 4 + } }, { - "id": "anthropic/claude-opus-4", - "name": "Anthropic: Claude Opus 4", - "display_name": "Anthropic: Claude Opus 4", + "id": "openai/gpt-5.1", + "name": "GPT-5.1", + "display_name": "GPT-5.1", "modalities": { "input": [ - "image", - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 400000, + "output": 128000 }, "temperature": false, "tool_call": true, @@ -56624,26 +58359,30 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22" + "release_date": "2025-11-12", + "last_updated": "2025-11-12", + "cost": { + "input": 1.1, + "output": 9, + "cache_read": 0.11 + } }, { - "id": "anthropic/claude-opus-4.1", - "name": "Anthropic: Claude Opus 4.1", - "display_name": "Anthropic: Claude Opus 4.1", + "id": "openai/gpt-5-nano", + "name": "GPT-5-nano", + "display_name": "GPT-5-nano", "modalities": { "input": [ - "image", - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 32000 + "context": 400000, + "output": 128000 }, "temperature": false, "tool_call": true, @@ -56653,26 +58392,30 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-03-31", "release_date": "2025-08-05", - "last_updated": "2025-08-05" + "last_updated": "2025-08-05", + "cost": { + "input": 0.045, + "output": 0.36, + "cache_read": 0.0045 + } }, { - "id": "anthropic/claude-sonnet-4", - "name": "Anthropic: Claude Sonnet 4", - "display_name": "Anthropic: Claude Sonnet 4", + "id": "openai/gpt-5-codex", + "name": "GPT-5-Codex", + "display_name": "GPT-5-Codex", "modalities": { "input": [ - "image", - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 64000 + "context": 400000, + "output": 128000 }, "temperature": false, "tool_call": true, @@ -56682,14 +58425,17 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-03-31", - "release_date": "2025-05-22", - "last_updated": "2025-05-22" + "release_date": "2025-09-23", + "last_updated": "2025-09-23", + "cost": { + "input": 1.1, + "output": 9 + } }, { - "id": "anthropic/claude-sonnet-4.5", - "name": "Anthropic: Claude Sonnet 4.5", - "display_name": "Anthropic: Claude Sonnet 4.5", + "id": "openai/gpt-4o", + "name": "GPT-4o", + "display_name": "GPT-4o", "modalities": { "input": [ "text", @@ -56700,124 +58446,132 @@ ] }, "limit": { - "context": 1000000, - "output": 64000 - }, - "temperature": true, + "context": 128000, + "output": 8192 + }, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2025-07-31", - "release_date": "2025-09-29", - "last_updated": "2025-09-29" - }, - { - "id": "bytedance/seed-oss-36b-instruct", - "name": "ByteDance: Seed OSS 36B Instruct", - "display_name": "ByteDance: Seed OSS 36B Instruct", - "limit": { - "context": 4096, - "output": 4096 - }, - "tool_call": false, - "reasoning": { - "supported": false - } + "release_date": "2024-05-13", + "last_updated": "2024-05-13" }, { - "id": "deepseek/deepseek-r1-0528", - "name": "DeepSeek: R1 0528", - "display_name": "DeepSeek: R1 0528", + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 163840, - "output": 163840 + "context": 1047576, + "output": 32768 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false + "attachment": true, + "open_weights": false, + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 1.8, + "output": 7.2, + "cache_read": 0.45 + } }, { - "id": "deepseek/deepseek-v3.1", - "name": "DeepSeek V3.1", - "display_name": "DeepSeek V3.1", + "id": "openai/o4-mini", + "name": "o4-mini", + "display_name": "o4-mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 8192 + "context": 200000, + "output": 100000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, + "attachment": true, "open_weights": false, - "knowledge": "2024-07", - "release_date": "2025-08-20", - "last_updated": "2025-08-26" + "release_date": "2025-04-16", + "last_updated": "2025-04-16", + "cost": { + "input": 0.99, + "output": 4, + "cache_read": 0.25 + } }, { - "id": "deepseek/deepseek-v3.1-fast", - "name": "DeepSeek: DeepSeek V3.1 (free)", - "display_name": "DeepSeek: DeepSeek V3.1 (free)", + "id": "openai/o1", + "name": "o1", + "display_name": "o1", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 163800 + "context": 200000, + "output": 100000 }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false + "attachment": true, + "open_weights": false, + "release_date": "2024-12-18", + "last_updated": "2024-12-18", + "cost": { + "input": 14, + "output": 54 + } }, { - "id": "deepseek/deepseek-v3.1-terminus", - "name": "DeepSeek: DeepSeek V3.1 Terminus", - "display_name": "DeepSeek: DeepSeek V3.1 Terminus", + "id": "openai/gpt-5-mini", + "name": "GPT-5-mini", + "display_name": "GPT-5-mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 163840, - "output": 163840 + "context": 400000, + "output": 128000 }, "temperature": false, "tool_call": true, @@ -56825,52 +58579,64 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-07", - "release_date": "2025-09-22", - "last_updated": "2025-09-22" + "attachment": true, + "open_weights": false, + "release_date": "2025-06-25", + "last_updated": "2025-06-25", + "cost": { + "input": 0.22, + "output": 1.8, + "cache_read": 0.022 + } }, { - "id": "deepseek/deepseek-v3.2-exp", - "name": "DeepSeek: DeepSeek V3.2 Exp", - "display_name": "DeepSeek: DeepSeek V3.2 Exp", + "id": "openai/gpt-4o-aug", + "name": "GPT-4o-Aug", + "display_name": "GPT-4o-Aug", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 163840 + "context": 128000, + "output": 8192 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false + "attachment": true, + "open_weights": false, + "release_date": "2024-11-21", + "last_updated": "2024-11-21", + "cost": { + "input": 2.2, + "output": 9, + "cache_read": 1.1 + } }, { - "id": "google/gemini-2.5-flash", - "name": "Google: Gemini 2.5 Flash", - "display_name": "Google: Gemini 2.5 Flash", + "id": "openai/o3-pro", + "name": "o3-pro", + "display_name": "o3-pro", "modalities": { "input": [ - "image", "text", - "audio" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65535 + "context": 200000, + "output": 100000 }, "temperature": false, "tool_call": true, @@ -56880,103 +58646,120 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-07-17", - "last_updated": "2025-07-17" + "release_date": "2025-06-10", + "last_updated": "2025-06-10", + "cost": { + "input": 18, + "output": 72 + } }, { - "id": "google/gemini-2.5-flash-image", - "name": "Google: Gemini 2.5 Flash Image (Nano Banana)", - "display_name": "Google: Gemini 2.5 Flash Image (Nano Banana)", + "id": "openai/gpt-image-1", + "name": "GPT-Image-1", + "display_name": "GPT-Image-1", "modalities": { "input": [ - "image", - "text" + "text", + "image" ], "output": [ - "image", - "text" + "image" ] }, "limit": { - "context": 32768, - "output": 8192 + "context": 128000, + "output": 0 }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false + "attachment": true, + "open_weights": false, + "release_date": "2025-03-31", + "last_updated": "2025-03-31" }, { - "id": "google/gemini-2.5-flash-image-preview", - "name": "Google: Gemini 2.5 Flash Image Preview (Nano Banana)", - "display_name": "Google: Gemini 2.5 Flash Image Preview (Nano Banana)", + "id": "openai/gpt-5.1-codex-max", + "name": "gpt-5.1-codex-max", + "display_name": "gpt-5.1-codex-max", "modalities": { "input": [ - "image", - "text" + "text", + "image" ], "output": [ - "image", "text" ] }, "limit": { - "context": 32768, - "output": 8192 + "context": 400000, + "output": 128000 }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false + "attachment": true, + "open_weights": false, + "release_date": "2025-12-08", + "last_updated": "2025-12-08", + "cost": { + "input": 1.1, + "output": 9, + "cache_read": 0.11 + } }, { - "id": "google/gemini-2.5-flash-lite", - "name": "Google: Gemini 2.5 Flash Lite", - "display_name": "Google: Gemini 2.5 Flash Lite", + "id": "openai/gpt-3.5-turbo-instruct", + "name": "GPT-3.5-Turbo-Instruct", + "display_name": "GPT-3.5-Turbo-Instruct", "modalities": { "input": [ - "image", "text", - "audio" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65535 + "context": 3500, + "output": 1024 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true + "attachment": true, + "open_weights": false, + "release_date": "2023-09-20", + "last_updated": "2023-09-20", + "cost": { + "input": 1.4, + "output": 1.8 + } }, { - "id": "google/gemini-2.5-pro", - "name": "Google: Gemini 2.5 Pro", - "display_name": "Google: Gemini 2.5 Pro", + "id": "openai/o3", + "name": "o3", + "display_name": "o3", "modalities": { "input": [ - "image", "text", - "audio" + "image" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 200000, + "output": 100000 }, "temperature": false, "tool_call": true, @@ -56986,28 +58769,29 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-01", - "release_date": "2025-03-20", - "last_updated": "2025-06-05" + "release_date": "2025-04-16", + "last_updated": "2025-04-16", + "cost": { + "input": 1.8, + "output": 7.2, + "cache_read": 0.45 + } }, { - "id": "google/gemini-3-pro-preview", - "name": "Google: Gemini 3 Pro Preview", - "display_name": "Google: Gemini 3 Pro Preview", + "id": "openai/o4-mini-deep-research", + "name": "o4-mini-deep-research", + "display_name": "o4-mini-deep-research", "modalities": { "input": [ - "image", - "text", - "audio", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1048576, - "output": 65536 + "context": 200000, + "output": 100000 }, "temperature": false, "tool_call": true, @@ -57017,92 +58801,93 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2025-10", - "release_date": "2025-11-19", - "last_updated": "2025-11-19" + "release_date": "2025-06-27", + "last_updated": "2025-06-27", + "cost": { + "input": 1.8, + "output": 7.2, + "cache_read": 0.45 + } }, { - "id": "inclusionai/ling-1t", - "name": "inclusionAI: Ling-1T", - "display_name": "inclusionAI: Ling-1T", + "id": "openai/gpt-4-classic-0314", + "name": "GPT-4-Classic-0314", + "display_name": "GPT-4-Classic-0314", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 8192, + "output": 4096 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false - }, - { - "id": "meituan/longcat-flash-chat", - "name": "Meituan: LongCat-Flash-Chat", - "display_name": "Meituan: LongCat-Flash-Chat", - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "temperature": true, - "tool_call": false, - "reasoning": { - "supported": false - }, - "attachment": false, - "open_weights": false + "attachment": true, + "open_weights": false, + "release_date": "2024-08-26", + "last_updated": "2024-08-26", + "cost": { + "input": 27, + "output": 54 + } }, { - "id": "minimax/minimax-m2", - "name": "MiniMax: minimax-m2", - "display_name": "MiniMax: minimax-m2", + "id": "openai/gpt-4o-mini", + "name": "GPT-4o-mini", + "display_name": "GPT-4o-mini", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 204800, - "output": 192000 + "context": 128000, + "output": 4096 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false + "attachment": true, + "open_weights": false, + "release_date": "2024-07-18", + "last_updated": "2024-07-18", + "cost": { + "input": 0.14, + "output": 0.54, + "cache_read": 0.068 + } }, { - "id": "minimaxai/minimax-m1-80k", - "name": "MiniMax: MiniMax M1", - "display_name": "MiniMax: MiniMax M1", + "id": "openai/gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 40000 + "context": 400000, + "output": 128000 }, "temperature": false, "tool_call": true, @@ -57110,120 +58895,140 @@ "supported": true, "default": true }, - "attachment": false + "attachment": true, + "open_weights": false, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 1.1, + "output": 9, + "cache_read": 0.11 + } }, { - "id": "moonshotai/kimi-k2-0905", - "name": "MoonshotAI: Kimi K2 0905", - "display_name": "MoonshotAI: Kimi K2 0905", + "id": "openai/dall-e-3", + "name": "DALL-E-3", + "display_name": "DALL-E-3", "modalities": { "input": [ "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 800, + "output": 0 }, "temperature": false, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": true, - "knowledge": "2024-10", - "release_date": "2025-09-05", - "last_updated": "2025-09-05" + "attachment": true, + "open_weights": false, + "release_date": "2023-11-06", + "last_updated": "2023-11-06" }, { - "id": "moonshotai/kimi-k2-thinking", - "name": "MoonshotAI: kimi-k2-thinking", - "display_name": "MoonshotAI: kimi-k2-thinking", + "id": "openai/sora-2-pro", + "name": "Sora-2-Pro", + "display_name": "Sora-2-Pro", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ - "text" + "video" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 0, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false + "attachment": true, + "open_weights": false, + "release_date": "2025-10-06", + "last_updated": "2025-10-06" }, { - "id": "moonshotai/kimi-k2-thinking-turbo", - "name": "MoonshotAI: kimi-k2-thinking", - "display_name": "MoonshotAI: kimi-k2-thinking", + "id": "openai/gpt-5-pro", + "name": "GPT-5-Pro", + "display_name": "GPT-5-Pro", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 400000, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": false + "attachment": true, + "open_weights": false, + "release_date": "2025-10-06", + "last_updated": "2025-10-06", + "cost": { + "input": 14, + "output": 110 + } }, { - "id": "openai/gpt-4.1", - "name": "OpenAI: GPT-4.1", - "display_name": "OpenAI: GPT-4.1", + "id": "openai/gpt-5.2", + "name": "gpt-5.2", + "display_name": "gpt-5.2", "modalities": { "input": [ - "image", - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 400000, + "output": 128000 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14" + "release_date": "2025-12-08", + "last_updated": "2025-12-08", + "cost": { + "input": 1.6, + "output": 13, + "cache_read": 0.16 + } }, { - "id": "openai/gpt-4.1-mini", - "name": "OpenAI: GPT-4.1 Mini", - "display_name": "OpenAI: GPT-4.1 Mini", + "id": "openai/gpt-4o-mini-search", + "name": "GPT-4o-mini-Search", + "display_name": "GPT-4o-mini-Search", "modalities": { "input": [ - "image", "text" ], "output": [ @@ -57231,8 +59036,8 @@ ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 128000, + "output": 8192 }, "temperature": false, "tool_call": true, @@ -57241,157 +59046,171 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-04", - "release_date": "2025-04-14", - "last_updated": "2025-04-14" + "release_date": "2025-03-11", + "last_updated": "2025-03-11", + "cost": { + "input": 0.14, + "output": 0.54 + } }, { - "id": "openai/gpt-4.1-nano", - "name": "OpenAI: GPT-4.1 Nano", - "display_name": "OpenAI: GPT-4.1 Nano", + "id": "stabilityai/stablediffusionxl", + "name": "StableDiffusionXL", + "display_name": "StableDiffusionXL", "modalities": { "input": [ - "image", - "text" + "text", + "image" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 1047576, - "output": 32768 + "context": 200, + "output": 0 }, "temperature": false, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true + "attachment": true, + "open_weights": false, + "release_date": "2023-07-09", + "last_updated": "2023-07-09" }, { - "id": "openai/gpt-4o", - "name": "OpenAI: gpt-4o", - "display_name": "OpenAI: gpt-4o", + "id": "topazlabs-co/topazlabs", + "name": "TopazLabs", + "display_name": "TopazLabs", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ - "text" + "image" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 204, + "output": 0 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": false }, "attachment": true, - "open_weights": false + "open_weights": false, + "release_date": "2024-12-03", + "last_updated": "2024-12-03" }, { - "id": "openai/gpt-4o-mini", - "name": "OpenAI: gpt-4o-mini", - "display_name": "OpenAI: gpt-4o-mini", + "id": "lumalabs/ray2", + "name": "Ray2", + "display_name": "Ray2", "modalities": { "input": [ "text", "image" ], "output": [ - "text" + "video" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 5000, + "output": 0 }, - "temperature": true, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": true, - "open_weights": false + "open_weights": false, + "release_date": "2025-02-20", + "last_updated": "2025-02-20" }, { - "id": "openai/gpt-5", - "name": "OpenAI: GPT-5", - "display_name": "OpenAI: GPT-5", + "id": "lumalabs/dream-machine", + "name": "Dream-Machine", + "display_name": "Dream-Machine", "modalities": { "input": [ "text", "image" ], "output": [ - "text" + "video" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 5000, + "output": 0 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2024-10-01", - "release_date": "2025-08-07", - "last_updated": "2025-08-07" + "release_date": "2024-09-18", + "last_updated": "2024-09-18" }, { - "id": "openai/gpt-5-chat", - "name": "OpenAI: GPT-5 Chat", - "display_name": "OpenAI: GPT-5 Chat", + "id": "anthropic/claude-opus-3", + "name": "Claude-Opus-3", + "display_name": "Claude-Opus-3", "modalities": { "input": [ + "text", "image", - "text" + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 16384 + "context": 189096, + "output": 8192 }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "attachment": true, "open_weights": false, - "knowledge": "2024-09-30", - "release_date": "2025-08-07", - "last_updated": "2025-08-07" + "release_date": "2024-03-04", + "last_updated": "2024-03-04", + "cost": { + "input": 13, + "output": 64, + "cache_read": 1.3, + "cache_write": 16 + } }, { - "id": "openai/gpt-5-mini", - "name": "OpenAI: GPT-5 Mini", - "display_name": "OpenAI: GPT-5 Mini", + "id": "anthropic/claude-opus-4", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 192512, + "output": 32768 }, "temperature": false, "tool_call": true, @@ -57401,25 +59220,31 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-10-01", - "release_date": "2025-08-07", - "last_updated": "2025-08-07" + "release_date": "2025-05-21", + "last_updated": "2025-05-21", + "cost": { + "input": 13, + "output": 64, + "cache_read": 1.3, + "cache_write": 16 + } }, { - "id": "openai/gpt-5-nano", - "name": "OpenAI: GPT-5 Nano", - "display_name": "OpenAI: GPT-5 Nano", + "id": "anthropic/claude-sonnet-3.7-reasoning", + "name": "Claude Sonnet 3.7 Reasoning", + "display_name": "Claude Sonnet 3.7 Reasoning", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 400000, + "context": 196608, "output": 128000 }, "temperature": false, @@ -57430,124 +59255,136 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-10-01", - "release_date": "2025-08-07", - "last_updated": "2025-08-07" + "release_date": "2025-02-19", + "last_updated": "2025-02-19", + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } }, { - "id": "openai/gpt-5.1", - "name": "OpenAI: gpt-5.1", - "display_name": "OpenAI: gpt-5.1", + "id": "anthropic/claude-opus-4-search", + "name": "Claude Opus 4 Search", + "display_name": "Claude Opus 4 Search", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 400000, + "context": 196608, "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": true, - "open_weights": false + "open_weights": false, + "release_date": "2025-06-20", + "last_updated": "2025-06-20", + "cost": { + "input": 13, + "output": 64, + "cache_read": 1.3, + "cache_write": 16 + } }, { - "id": "openai/gpt-5.2", - "name": "OpenAI: gpt-5.2", - "display_name": "OpenAI: gpt-5.2", + "id": "anthropic/claude-sonnet-3.7", + "name": "Claude Sonnet 3.7", + "display_name": "Claude Sonnet 3.7", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 196608, + "output": 32768 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": true, - "open_weights": false + "open_weights": false, + "release_date": "2025-02-19", + "last_updated": "2025-02-19", + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } }, { - "id": "openai/gpt-5.1-chat", - "name": "OpenAI: gpt-5.1", - "display_name": "OpenAI: gpt-5.1", + "id": "anthropic/claude-haiku-3.5-search", + "name": "Claude-Haiku-3.5-Search", + "display_name": "Claude-Haiku-3.5-Search", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 400000, - "output": 128000 + "context": 189096, + "output": 8192 }, - "temperature": true, + "temperature": false, "tool_call": true, - "reasoning": { - "supported": true, - "default": true - }, - "attachment": true, - "open_weights": false - }, - { - "id": "openai/gpt-image-1", - "name": "OpenAI: gpt-image-1", - "display_name": "OpenAI: gpt-image-1", - "modalities": { - "input": [ - "text", - "image" - ], - "output": [ - "text" - ] - }, - "temperature": true, - "tool_call": false, "reasoning": { "supported": false }, "attachment": true, - "open_weights": false + "open_weights": false, + "release_date": "2025-05-15", + "last_updated": "2025-05-15", + "cost": { + "input": 0.68, + "output": 3.4, + "cache_read": 0.068, + "cache_write": 0.85 + } }, { - "id": "openai/gpt-oss-120b", - "name": "OpenAI: gpt-oss-120b", - "display_name": "OpenAI: gpt-oss-120b", + "id": "anthropic/claude-haiku-4.5", + "name": "Claude Haiku 4.5", + "display_name": "Claude Haiku 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 192000, + "output": 64000 }, "temperature": false, "tool_call": true, @@ -57555,26 +59392,34 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05" + "attachment": true, + "open_weights": false, + "release_date": "2025-10-15", + "last_updated": "2025-10-15", + "cost": { + "input": 0.85, + "output": 4.3, + "cache_read": 0.085, + "cache_write": 1.1 + } }, { - "id": "openai/gpt-oss-20b", - "name": "OpenAI: gpt-oss-20b", - "display_name": "OpenAI: gpt-oss-20b", + "id": "anthropic/claude-sonnet-4-reasoning", + "name": "Claude Sonnet 4 Reasoning", + "display_name": "Claude Sonnet 4 Reasoning", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 32768 + "context": 983040, + "output": 64000 }, "temperature": false, "tool_call": true, @@ -57582,100 +59427,138 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "release_date": "2025-08-05", - "last_updated": "2025-08-05" + "attachment": true, + "open_weights": false, + "release_date": "2025-05-21", + "last_updated": "2025-05-21", + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } }, { - "id": "openai/o1", - "name": "OpenAI: o1", - "display_name": "OpenAI: o1", + "id": "anthropic/claude-haiku-3", + "name": "Claude-Haiku-3", + "display_name": "Claude-Haiku-3", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 189096, + "output": 8192 }, "temperature": false, "tool_call": true, "reasoning": { "supported": false }, - "attachment": true + "attachment": true, + "open_weights": false, + "release_date": "2024-03-09", + "last_updated": "2024-03-09", + "cost": { + "input": 0.21, + "output": 1.1, + "cache_read": 0.021, + "cache_write": 0.26 + } }, { - "id": "openai/o1-mini", - "name": "OpenAI: o1-mini", - "display_name": "OpenAI: o1-mini", + "id": "anthropic/claude-opus-4.1", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 65536 + "context": 196608, + "output": 32000 }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false + "attachment": true, + "open_weights": false, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 13, + "output": 64, + "cache_read": 1.3, + "cache_write": 16 + } }, { - "id": "openai/o3", - "name": "OpenAI: o3", - "display_name": "OpenAI: o3", + "id": "anthropic/claude-sonnet-3.7-search", + "name": "Claude Sonnet 3.7 Search", + "display_name": "Claude Sonnet 3.7 Search", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 196608, + "output": 128000 }, - "temperature": true, + "temperature": false, "tool_call": true, "reasoning": { "supported": true, "default": true }, "attachment": true, - "open_weights": false + "open_weights": false, + "release_date": "2025-05-15", + "last_updated": "2025-05-15", + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } }, { - "id": "openai/o4-mini", - "name": "OpenAI: o4 Mini", - "display_name": "OpenAI: o4 Mini", + "id": "anthropic/claude-opus-4-reasoning", + "name": "Claude Opus 4 Reasoning", + "display_name": "Claude Opus 4 Reasoning", "modalities": { "input": [ + "text", "image", - "text" + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 200000, - "output": 100000 + "context": 196608, + "output": 32768 }, "temperature": false, "tool_call": true, @@ -57685,48 +59568,66 @@ }, "attachment": true, "open_weights": false, - "knowledge": "2024-06", - "release_date": "2025-04-16", - "last_updated": "2025-04-16" + "release_date": "2025-05-21", + "last_updated": "2025-05-21", + "cost": { + "input": 13, + "output": 64, + "cache_read": 1.3, + "cache_write": 16 + } }, { - "id": "qwen/qwen3-235b-a22b-instruct-2507", - "name": "Qwen: Qwen3 235B A22B Instruct 2507", - "display_name": "Qwen: Qwen3 235B A22B Instruct 2507", + "id": "anthropic/claude-sonnet-3.5", + "name": "Claude-Sonnet-3.5", + "display_name": "Claude-Sonnet-3.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 189096, + "output": 8192 }, "temperature": false, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false + "attachment": true, + "open_weights": false, + "release_date": "2024-06-05", + "last_updated": "2024-06-05", + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } }, { - "id": "qwen/qwen3-235b-a22b-thinking-2507", - "name": "Qwen: Qwen3 235B A22B Thinking 2507", - "display_name": "Qwen: Qwen3 235B A22B Thinking 2507", + "id": "anthropic/claude-sonnet-4", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 983040, + "output": 32768 }, "temperature": false, "tool_call": true, @@ -57734,154 +59635,220 @@ "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-25", - "last_updated": "2025-07-25" + "attachment": true, + "open_weights": false, + "release_date": "2025-05-21", + "last_updated": "2025-05-21", + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } }, { - "id": "qwen/qwen3-30b-a3b-instruct-2507", - "name": "Qwen: Qwen3 30B A3B Instruct 2507", - "display_name": "Qwen: Qwen3 30B A3B Instruct 2507", + "id": "anthropic/claude-opus-4.5", + "name": "claude-opus-4.5", + "display_name": "claude-opus-4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 196608, + "output": 64000 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-29", - "last_updated": "2025-07-29" + "attachment": true, + "open_weights": false, + "release_date": "2025-11-21", + "last_updated": "2025-11-21", + "cost": { + "input": 4.3, + "output": 21, + "cache_read": 0.43, + "cache_write": 5.3 + } }, { - "id": "qwen/qwen3-30b-a3b-thinking-2507", - "name": "Qwen: Qwen3 30B A3B Thinking 2507", - "display_name": "Qwen: Qwen3 30B A3B Thinking 2507", + "id": "anthropic/claude-haiku-3.5", + "name": "Claude-Haiku-3.5", + "display_name": "Claude-Haiku-3.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 189096, + "output": 8192 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false + "attachment": true, + "open_weights": false, + "release_date": "2024-10-01", + "last_updated": "2024-10-01", + "cost": { + "input": 0.68, + "output": 3.4, + "cache_read": 0.068, + "cache_write": 0.85 + } }, { - "id": "qwen/qwen3-8b", - "name": "Qwen: Qwen3 8B", - "display_name": "Qwen: Qwen3 8B", + "id": "anthropic/claude-sonnet-3.5-june", + "name": "Claude-Sonnet-3.5-June", + "display_name": "Claude-Sonnet-3.5-June", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 128000, - "output": 20000 + "context": 189096, + "output": 8192 }, "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false + "attachment": true, + "open_weights": false, + "release_date": "2024-11-18", + "last_updated": "2024-11-18", + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } }, { - "id": "qwen/qwen3-coder", - "name": "Qwen: Qwen3 Coder 480B A35B", - "display_name": "Qwen: Qwen3 Coder 480B A35B", + "id": "anthropic/claude-sonnet-4.5", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 983040, + "output": 32768 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-23", - "last_updated": "2025-07-23" + "attachment": true, + "open_weights": false, + "release_date": "2025-09-26", + "last_updated": "2025-09-26", + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } }, { - "id": "qwen/qwen3-coder-30b-a3b-instruct", - "name": "Qwen: Qwen3 Coder 30B A3B Instruct", - "display_name": "Qwen: Qwen3 Coder 30B A3B Instruct", + "id": "anthropic/claude-sonnet-4-search", + "name": "Claude Sonnet 4 Search", + "display_name": "Claude Sonnet 4 Search", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 983040, + "output": 128000 }, "temperature": false, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "attachment": false + "attachment": true, + "open_weights": false, + "release_date": "2025-06-20", + "last_updated": "2025-06-20", + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } }, { - "id": "qwen/qwen3-coder-480b-a35b-instruct", - "name": "Qwen: Qwen3 Coder 480B A35B Instruct", - "display_name": "Qwen: Qwen3 Coder 480B A35B Instruct", + "id": "trytako/tako", + "name": "Tako", + "display_name": "Tako", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 2048, + "output": 0 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false - } + }, + "attachment": true, + "open_weights": false, + "release_date": "2024-08-15", + "last_updated": "2024-08-15" }, { - "id": "qwen/qwen3-embedding-0.6b", - "name": "qwen/qwen3-embedding-0.6b", - "display_name": "qwen/qwen3-embedding-0.6b", + "id": "novita/kimi-k2-thinking", + "name": "kimi-k2-thinking", + "display_name": "kimi-k2-thinking", "modalities": { "input": [ "text" @@ -57891,19 +59858,24 @@ ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 256000, + "output": 0 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "embedding" + "attachment": true, + "open_weights": false, + "release_date": "2025-11-07", + "last_updated": "2025-11-07" }, { - "id": "qwen/qwen3-embedding-4b", - "name": "qwen/qwen3-embedding-4b", - "display_name": "qwen/qwen3-embedding-4b", + "id": "novita/glm-4.6", + "name": "GLM-4.6", + "display_name": "GLM-4.6", "modalities": { "input": [ "text" @@ -57913,19 +59885,31 @@ ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 0, + "output": 0 }, - "tool_call": false, + "temperature": false, + "tool_call": true, "reasoning": { "supported": false }, - "type": "embedding" - }, + "attachment": true, + "open_weights": false, + "release_date": "2025-09-30", + "last_updated": "2025-09-30" + } + ] + }, + "cerebras": { + "id": "cerebras", + "name": "Cerebras", + "display_name": "Cerebras", + "doc": "https://inference-docs.cerebras.ai/models/overview", + "models": [ { - "id": "qwen/qwen3-embedding-8b", - "name": "qwen/qwen3-embedding-8b", - "display_name": "qwen/qwen3-embedding-8b", + "id": "qwen-3-235b-a22b-instruct-2507", + "name": "Qwen 3 235B Instruct", + "display_name": "Qwen 3 235B Instruct", "modalities": { "input": [ "text" @@ -57935,19 +59919,28 @@ ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 131000, + "output": 32000 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "embedding" + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-22", + "last_updated": "2025-07-22", + "cost": { + "input": 0.6, + "output": 1.2 + } }, { - "id": "qwen/qwen3-next-80b-a3b-instruct", - "name": "Qwen: Qwen3 Next 80B A3B Instruct", - "display_name": "Qwen: Qwen3 Next 80B A3B Instruct", + "id": "zai-glm-4.6", + "name": "Z.AI GLM-4.6", + "display_name": "Z.AI GLM-4.6", "modalities": { "input": [ "text" @@ -57957,24 +59950,29 @@ ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 131072, + "output": 40960 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": false }, "attachment": false, "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-09-11", - "last_updated": "2025-09-11" + "release_date": "2025-11-05", + "last_updated": "2025-11-05", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } }, { - "id": "qwen/qwen3-next-80b-a3b-thinking", - "name": "Qwen: Qwen3 Next 80B A3B Thinking", - "display_name": "Qwen: Qwen3 Next 80B A3B Thinking", + "id": "gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", "modalities": { "input": [ "text" @@ -57984,122 +59982,148 @@ ] }, "limit": { - "context": 262144 + "context": 131072, + "output": 32768 }, - "temperature": false, + "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false - }, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.25, + "output": 0.69 + } + } + ] + }, + "ollama": { + "id": "ollama", + "name": "Ollama Cloud", + "display_name": "Ollama Cloud", + "api": "https://ollama.com/v1", + "doc": "https://docs.ollama.com/cloud", + "models": [ { - "id": "qwen/qwen3-omni-30b-a3b-instruct", - "name": "Qwen: Qwen3 VL 30B A3B Instruct", - "display_name": "Qwen: Qwen3 VL 30B A3B Instruct", + "id": "gemini-3-pro-preview:latest", + "name": "Gemini 3 Pro Preview", + "display_name": "Gemini 3 Pro Preview", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 1000000, + "output": 64000 }, "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false + "attachment": true, + "open_weights": false, + "knowledge": "2025-10", + "release_date": "2025-11-18", + "last_updated": "2025-11-18", + "type": "chat" }, { - "id": "qwen/qwen3-omni-30b-a3b-thinking", - "name": "Qwen: Qwen3 VL 30B A3B Thinking", - "display_name": "Qwen: Qwen3 VL 30B A3B Thinking", + "id": "gpt-oss:latest", + "name": "GPT-OSS Latest", + "display_name": "GPT-OSS Latest", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 128000, + "output": 32768 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false - }, - { - "id": "qwen/qwen3-reranker-0.6b", - "name": "qwen/qwen3-reranker-0.6b", - "display_name": "qwen/qwen3-reranker-0.6b", - "limit": { - "context": 8192, - "output": 8192 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, "type": "chat" }, { - "id": "qwen/qwen3-reranker-4b", - "name": "qwen/qwen3-reranker-4b", - "display_name": "qwen/qwen3-reranker-4b", + "id": "gpt-oss:20b", + "name": "GPT-OSS 20B", + "display_name": "GPT-OSS 20B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 8192, - "output": 8192 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "type": "chat" }, { - "id": "qwen/qwen3-reranker-8b", - "name": "qwen/qwen3-reranker-8b", - "display_name": "qwen/qwen3-reranker-8b", + "id": "gpt-oss:120b", + "name": "GPT-OSS 120B", + "display_name": "GPT-OSS 120B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 8192, - "output": 8192 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "type": "chat" }, { - "id": "qwen/qwen3-vl-235b-a22b-instruct", - "name": "Qwen: Qwen3 VL 235B A22B Instruct", - "display_name": "Qwen: Qwen3 VL 235B A22B Instruct", + "id": "gpt-oss:20b-cloud", + "name": "GPT-OSS 20B", + "display_name": "GPT-OSS 20B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 131072 + "context": 200000, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -58107,24 +60131,27 @@ "supported": true, "default": true }, - "attachment": false + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "type": "chat" }, { - "id": "qwen/qwen3-vl-235b-a22b-thinking", - "name": "Qwen: Qwen3 VL 235B A22B Thinking", - "display_name": "Qwen: Qwen3 VL 235B A22B Thinking", + "id": "gpt-oss:120b-cloud", + "name": "GPT-OSS 120B", + "display_name": "GPT-OSS 120B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 65536, - "output": 65536 + "context": 200000, + "output": 8192 }, "temperature": true, "tool_call": true, @@ -58132,12 +60159,16 @@ "supported": true, "default": true }, - "attachment": false + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "type": "chat" }, { - "id": "qwen/qwen3-vl-30b-a3b-instruct", - "name": "Qwen: Qwen3 VL 30B A3B Instruct", - "display_name": "Qwen: Qwen3 VL 30B A3B Instruct", + "id": "qwen3-vl:latest", + "name": "Qwen3-VL Latest", + "display_name": "Qwen3-VL Latest", "modalities": { "input": [ "text", @@ -58148,20 +60179,19 @@ ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 256000, + "output": 65536 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false + "type": "chat" }, { - "id": "qwen/qwen3-vl-30b-a3b-thinking", - "name": "Qwen: Qwen3 VL 30B A3B Thinking", - "display_name": "Qwen: Qwen3 VL 30B A3B Thinking", + "id": "qwen3-vl:2b", + "name": "Qwen3-VL 2B", + "display_name": "Qwen3-VL 2B", "modalities": { "input": [ "text", @@ -58172,127 +60202,115 @@ ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 256000, + "output": 65536 }, - "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false + "type": "chat" }, { - "id": "tencent/hunyuan-mt-7b", - "name": "Tencent: Hunyuan A13B Instruct", - "display_name": "Tencent: Hunyuan A13B Instruct", + "id": "qwen3-vl:4b", + "name": "Qwen3-VL 4B", + "display_name": "Qwen3-VL 4B", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 32768 + "context": 256000, + "output": 65536 }, - "temperature": false, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false + "type": "chat" }, { - "id": "x-ai/grok-2-image", - "name": "grok-2", - "display_name": "grok-2", + "id": "qwen3-vl:8b", + "name": "Qwen3-VL 8B", + "display_name": "Qwen3-VL 8B", "modalities": { "input": [ "text", "image" ], "output": [ - "text", - "image" + "text" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 256000, + "output": 65536 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "x-ai/grok-3", - "name": "xAI: Grok 3", - "display_name": "xAI: Grok 3", + "id": "qwen3-vl:30b", + "name": "Qwen3-VL 30B", + "display_name": "Qwen3-VL 30B", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 256000, + "output": 65536 }, - "temperature": false, "tool_call": true, "reasoning": { "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-11", - "release_date": "2025-02-17", - "last_updated": "2025-02-17" + "type": "chat" }, { - "id": "x-ai/grok-3-mini", - "name": "xAI: Grok 3 Mini", - "display_name": "xAI: Grok 3 Mini", + "id": "qwen3-vl:32b", + "name": "Qwen3-VL 32B", + "display_name": "Qwen3-VL 32B", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, "limit": { - "context": 131072, - "output": 8192 + "context": 256000, + "output": 65536 }, - "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2024-11", - "release_date": "2025-02-17", - "last_updated": "2025-02-17" + "type": "chat" }, { - "id": "x-ai/grok-4", - "name": "xAI: Grok 4", - "display_name": "xAI: Grok 4", + "id": "qwen3-vl:235b", + "name": "Qwen3-VL 235B", + "display_name": "Qwen3-VL 235B", "modalities": { "input": [ - "image", - "text" + "text", + "image" ], "output": [ "text" @@ -58300,52 +60318,40 @@ }, "limit": { "context": 256000, - "output": 64000 + "output": 65536 }, - "temperature": false, "tool_call": true, - "reasoning": { - "supported": true, - "default": true - }, - "attachment": false, - "open_weights": false, - "knowledge": "2025-07", - "release_date": "2025-07-09", - "last_updated": "2025-07-09" - }, - { - "id": "x-ai/grok-4-fast-non-reasoning", - "name": "x-ai/grok-4-fast-non-reasoning", - "display_name": "x-ai/grok-4-fast-non-reasoning", - "limit": { - "context": 2000000, - "output": 2000000 - }, - "tool_call": false, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "x-ai/grok-4-fast-reasoning", - "name": "x-ai/grok-4-fast-reasoning", - "display_name": "x-ai/grok-4-fast-reasoning", + "id": "qwen3-vl:235b-cloud", + "name": "Qwen3-VL 235B Cloud", + "display_name": "Qwen3-VL 235B Cloud", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 2000000, - "output": 2000000 + "context": 256000, + "output": 65536 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "x-ai/grok-code-fast-1", - "name": "xAI: Grok Code Fast 1", - "display_name": "xAI: Grok Code Fast 1", + "id": "qwen3-vl:235b-instruct-cloud", + "name": "Qwen3-VL 235B Instruct Cloud", + "display_name": "Qwen3-VL 235B Instruct Cloud", "modalities": { "input": [ "text" @@ -58356,24 +60362,18 @@ }, "limit": { "context": 256000, - "output": 10000 + "output": 65536 }, - "temperature": false, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": false, - "open_weights": false, - "knowledge": "2025-08", - "release_date": "2025-08-26", - "last_updated": "2025-08-26" + "type": "chat" }, { - "id": "z-ai/glm-4.5", - "name": "Z.AI: GLM 4.5", - "display_name": "Z.AI: GLM 4.5", + "id": "deepseek-r1:latest", + "name": "DeepSeek-R1 Latest", + "display_name": "DeepSeek-R1 Latest", "modalities": { "input": [ "text" @@ -58383,25 +60383,20 @@ ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 128000, + "output": 32768 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-07-28", - "last_updated": "2025-07-28" + "type": "chat" }, { - "id": "z-ai/glm-4.5-flash", - "name": "z-ai/glm-4.5-flash", - "display_name": "z-ai/glm-4.5-flash", + "id": "deepseek-r1:1.5b", + "name": "DeepSeek-R1 1.5B", + "display_name": "DeepSeek-R1 1.5B", "modalities": { "input": [ "text" @@ -58411,48 +60406,43 @@ ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "type": "chat" }, { - "id": "z-ai/glm-4.5v", - "name": "Z.AI: GLM 4.5V", - "display_name": "Z.AI: GLM 4.5V", + "id": "deepseek-r1:7b", + "name": "DeepSeek-R1 7B", + "display_name": "DeepSeek-R1 7B", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, "limit": { - "context": 65536, - "output": 16384 + "context": 128000, + "output": 32768 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-04", - "release_date": "2025-08-11", - "last_updated": "2025-08-11" + "type": "chat" }, { - "id": "z-ai/glm-4.6", - "name": "Z.AI: GLM 4.6", - "display_name": "Z.AI: GLM 4.6", + "id": "deepseek-r1:8b", + "name": "DeepSeek-R1 8B", + "display_name": "DeepSeek-R1 8B", "modalities": { "input": [ "text" @@ -58462,51 +60452,56 @@ ] }, "limit": { - "context": 202752, - "output": 202752 + "context": 128000, + "output": 32768 }, - "temperature": true, "tool_call": true, "reasoning": { "supported": true, "default": true }, - "attachment": false, - "open_weights": true, - "knowledge": "2025-09", - "release_date": "2025-09-30", - "last_updated": "2025-09-30" - } - ] - }, - "doubao": { - "id": "doubao", - "name": "Doubao", - "display_name": "Doubao", - "models": [ + "type": "chat" + }, { - "id": "deepseek-v3-1-250821", - "name": "DeepSeek V3.1", - "display_name": "DeepSeek V3.1", + "id": "deepseek-r1:14b", + "name": "DeepSeek-R1 14B", + "display_name": "DeepSeek-R1 14B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { "context": 128000, - "output": 32000 + "output": 32768 }, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "type": "chat" }, { - "id": "deepseek-r1-250120", - "name": "DeepSeek R1", - "display_name": "DeepSeek R1", + "id": "deepseek-r1:32b", + "name": "DeepSeek-R1 32B", + "display_name": "DeepSeek-R1 32B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 64000, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true @@ -58514,14 +60509,22 @@ "type": "chat" }, { - "id": "deepseek-r1-distill-qwen-32b-250120", - "name": "DeepSeek R1 Distill Qwen 32B", - "display_name": "DeepSeek R1 Distill Qwen 32B", + "id": "deepseek-r1:70b", + "name": "DeepSeek-R1 70B", + "display_name": "DeepSeek-R1 70B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 32000, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true @@ -58529,14 +60532,22 @@ "type": "chat" }, { - "id": "deepseek-r1-distill-qwen-7b-250120", - "name": "DeepSeek R1 Distill Qwen 7B", - "display_name": "DeepSeek R1 Distill Qwen 7B", + "id": "deepseek-r1:671b", + "name": "DeepSeek-R1 671B", + "display_name": "DeepSeek-R1 671B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 32000, - "output": 4096 + "context": 160000, + "output": 40000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true @@ -58544,12 +60555,20 @@ "type": "chat" }, { - "id": "deepseek-v3-250324", - "name": "DeepSeek V3", - "display_name": "DeepSeek V3", + "id": "qwen3-coder:latest", + "name": "Qwen3-Coder Latest", + "display_name": "Qwen3-Coder Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 64000, - "output": 4096 + "context": 256000, + "output": 65536 }, "tool_call": true, "reasoning": { @@ -58558,109 +60577,159 @@ "type": "chat" }, { - "id": "doubao-seed-1-6-vision-250815", - "name": "Doubao Seed 1.6 Vision", - "display_name": "Doubao Seed 1.6 Vision", + "id": "qwen3-coder:30b", + "name": "Qwen3-Coder 30B", + "display_name": "Qwen3-Coder 30B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { "context": 256000, - "output": 32000 + "output": 65536 }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "doubao-seed-1-6-250615", - "name": "Doubao Seed 1.6", - "display_name": "Doubao Seed 1.6", + "id": "qwen3-coder:480b", + "name": "Qwen3-Coder 480B", + "display_name": "Qwen3-Coder 480B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { "context": 256000, - "output": 32000 + "output": 65536 }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "doubao-seed-1-6-flash-250715", - "name": "Doubao Seed 1.6 Flash", - "display_name": "Doubao Seed 1.6 Flash", + "id": "qwen3-coder:480b-cloud", + "name": "Qwen3 Coder 480B", + "display_name": "Qwen3 Coder 480B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 256000, - "output": 32000 + "context": 200000, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, + "attachment": false, + "open_weights": true, + "release_date": "2025-07-22", + "last_updated": "2025-07-22", "type": "chat" }, { - "id": "doubao-seed-1-6-flash-250615", - "name": "Doubao Seed 1.6 Flash (250615)", - "display_name": "Doubao Seed 1.6 Flash (250615)", + "id": "gemma3:latest", + "name": "Gemma3 Latest", + "display_name": "Gemma3 Latest", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 256000, - "output": 32000 + "context": 128000, + "output": 32768 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "doubao-seed-1-6-thinking-250715", - "name": "Doubao Seed 1.6 Thinking", - "display_name": "Doubao Seed 1.6 Thinking", + "id": "gemma3:270m", + "name": "Gemma3 270M", + "display_name": "Gemma3 270M", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 256000, - "output": 32000 + "context": 32000, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "doubao-seed-1-6-thinking-250615", - "name": "Doubao Seed 1.6 Thinking (250615)", - "display_name": "Doubao Seed 1.6 Thinking (250615)", + "id": "gemma3:1b", + "name": "Gemma3 1B", + "display_name": "Gemma3 1B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 256000, - "output": 32000 + "context": 32000, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" - } - ] - }, - "ppinfra": { - "id": "ppinfra", - "name": "PPInfra", - "display_name": "PPInfra", - "models": [ + }, { - "id": "zai-org/autoglm-phone-9b-multilingual", - "name": "AutoGLM-Phone-9B-Multilingual", - "display_name": "AutoGLM-Phone-9B-Multilingual", + "id": "gemma3:4b", + "name": "Gemma3 4B", + "display_name": "Gemma3 4B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 65536, - "output": 32000 + "context": 128000, + "output": 32768 }, "tool_call": false, "reasoning": { @@ -58669,27 +60738,44 @@ "type": "chat" }, { - "id": "baichuan/baichuan-m2-32b", - "name": "BaiChuan M2 32B", - "display_name": "BaiChuan M2 32B", + "id": "gemma3:12b", + "name": "Gemma3 12B", + "display_name": "Gemma3 12B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 131072, - "output": 131072 + "context": 128000, + "output": 32768 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "deepseek/deepseek-prover-v2-671b", - "name": "Deepseek Prover V2 671B", - "display_name": "Deepseek Prover V2 671B", + "id": "gemma3:27b", + "name": "Gemma3 27B", + "display_name": "Gemma3 27B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 160000, - "output": 160000 + "context": 128000, + "output": 32768 }, "tool_call": false, "reasoning": { @@ -58698,27 +60784,47 @@ "type": "chat" }, { - "id": "deepseek/deepseek-r1/community", - "name": "DeepSeek R1 (Community)", - "display_name": "DeepSeek R1 (Community)", + "id": "glm-4.6:cloud", + "name": "GLM-4.6", + "display_name": "GLM-4.6", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 64000, - "output": 4000 + "context": 200000, + "output": 8192 }, + "temperature": true, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, + "attachment": false, + "open_weights": true, + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "type": "chat" }, { - "id": "deepseek/deepseek-r1-turbo", - "name": "DeepSeek R1 (Turbo)", - "display_name": "DeepSeek R1 (Turbo)", + "id": "qwen3:latest", + "name": "Qwen3 Latest", + "display_name": "Qwen3 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 64000, - "output": 16000 + "context": 40000, + "output": 10000 }, "tool_call": true, "reasoning": { @@ -58728,14 +60834,22 @@ "type": "chat" }, { - "id": "deepseek/deepseek-r1-distill-llama-70b", - "name": "DeepSeek R1 Distill Llama 70B", - "display_name": "DeepSeek R1 Distill Llama 70B", + "id": "qwen3:0.6b", + "name": "Qwen3 0.6B", + "display_name": "Qwen3 0.6B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 32000, - "output": 8000 + "context": 40000, + "output": 10000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true @@ -58743,54 +60857,89 @@ "type": "chat" }, { - "id": "deepseek/deepseek-v3/community", - "name": "DeepSeek V3 (Community)", - "display_name": "DeepSeek V3 (Community)", + "id": "qwen3:1.7b", + "name": "Qwen3 1.7B", + "display_name": "Qwen3 1.7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 64000, - "output": 4000 + "context": 40000, + "output": 10000 }, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "type": "chat" }, { - "id": "deepseek/deepseek-v3-turbo", - "name": "DeepSeek V3 (Turbo)", - "display_name": "DeepSeek V3 (Turbo)", + "id": "qwen3:4b", + "name": "Qwen3 4B", + "display_name": "Qwen3 4B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 64000, - "output": 16000 + "context": 256000, + "output": 65536 }, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "type": "chat" }, { - "id": "deepseek/deepseek-v3-0324", - "name": "DeepSeek V3 0324", - "display_name": "DeepSeek V3 0324", + "id": "qwen3:8b", + "name": "Qwen3 8B", + "display_name": "Qwen3 8B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 163840, - "output": 163840 + "context": 40000, + "output": 10000 }, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "type": "chat" }, { - "id": "deepseek/deepseek-v3.1", - "name": "Deepseek V3.1", - "display_name": "Deepseek V3.1", + "id": "qwen3:14b", + "name": "Qwen3 14B", + "display_name": "Qwen3 14B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 131072, - "output": 32768 + "context": 40000, + "output": 10000 }, "tool_call": true, "reasoning": { @@ -58800,11 +60949,19 @@ "type": "chat" }, { - "id": "deepseek/deepseek-v3.1-terminus", - "name": "Deepseek V3.1 Terminus", - "display_name": "Deepseek V3.1 Terminus", + "id": "qwen3:30b", + "name": "Qwen3 30B", + "display_name": "Qwen3 30B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 131072, + "context": 256000, "output": 65536 }, "tool_call": true, @@ -58815,12 +60972,20 @@ "type": "chat" }, { - "id": "deepseek/deepseek-v3.2", - "name": "Deepseek V3.2", - "display_name": "Deepseek V3.2", + "id": "qwen3:32b", + "name": "Qwen3 32B", + "display_name": "Qwen3 32B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 163840, - "output": 65536 + "context": 40000, + "output": 10000 }, "tool_call": true, "reasoning": { @@ -58830,11 +60995,19 @@ "type": "chat" }, { - "id": "deepseek/deepseek-v3.2-exp", - "name": "Deepseek V3.2 Exp", - "display_name": "Deepseek V3.2 Exp", + "id": "qwen3:235b", + "name": "Qwen3 235B", + "display_name": "Qwen3 235B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 163840, + "context": 256000, "output": 65536 }, "tool_call": true, @@ -58845,28 +61018,22 @@ "type": "chat" }, { - "id": "deepseek/deepseek-ocr", - "name": "DeepSeek-OCR", - "display_name": "DeepSeek-OCR", - "limit": { - "context": 8192, - "output": 8192 - }, - "tool_call": false, - "reasoning": { - "supported": false + "id": "deepseek-v3.1:latest", + "name": "DeepSeek-V3.1 Latest", + "display_name": "DeepSeek-V3.1 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] }, - "type": "chat" - }, - { - "id": "deepseek/deepseek-r1-0528-qwen3-8b", - "name": "DeepSeek-R1-0528-Qwen3-8B", - "display_name": "DeepSeek-R1-0528-Qwen3-8B", "limit": { - "context": 128000, - "output": 32000 + "context": 160000, + "output": 40000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true @@ -58874,14 +61041,22 @@ "type": "chat" }, { - "id": "deepseek/deepseek-r1-distill-qwen-14b", - "name": "DeepSeek: DeepSeek R1 Distill Qwen 14B", - "display_name": "DeepSeek: DeepSeek R1 Distill Qwen 14B", + "id": "deepseek-v3.1:671b", + "name": "DeepSeek-V3.1 671B", + "display_name": "DeepSeek-V3.1 671B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 64000, - "output": 8000 + "context": 160000, + "output": 40000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": true, "default": true @@ -58889,57 +61064,92 @@ "type": "chat" }, { - "id": "deepseek/deepseek-r1-distill-qwen-32b", - "name": "DeepSeek: DeepSeek R1 Distill Qwen 32B", - "display_name": "DeepSeek: DeepSeek R1 Distill Qwen 32B", + "id": "deepseek-v3.1:671b-cloud", + "name": "DeepSeek-V3.1 671B", + "display_name": "DeepSeek-V3.1 671B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 64000, - "output": 8000 + "context": 160000, + "output": 8192 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": true, "default": true }, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-21", + "last_updated": "2025-08-21", "type": "chat" }, { - "id": "deepseek/deepseek-r1-0528", - "name": "deepseek/deepseek-r1-0528", - "display_name": "deepseek/deepseek-r1-0528", + "id": "llama3.1:latest", + "name": "Llama 3.1 Latest", + "display_name": "Llama 3.1 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 163840, + "context": 128000, "output": 32768 }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "baidu/ernie-4.5-21b-a3b-thinking", - "name": "Ernie 4.5 21B A3B Thinking", - "display_name": "Ernie 4.5 21B A3B Thinking", + "id": "llama3.1:8b", + "name": "Llama 3.1 8B", + "display_name": "Llama 3.1 8B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 131072, - "output": 65536 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "baidu/ernie-4.5-0.3b", - "name": "ERNIE-4.5-0.3B", - "display_name": "ERNIE-4.5-0.3B", + "id": "llama3.1:70b", + "name": "Llama 3.1 70B", + "display_name": "Llama 3.1 70B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 120000, - "output": 8000 + "context": 128000, + "output": 32768 }, "tool_call": true, "reasoning": { @@ -58948,12 +61158,20 @@ "type": "chat" }, { - "id": "baidu/ernie-4.5-300b-a47b-paddle", - "name": "ERNIE-4.5-300B-A47B", - "display_name": "ERNIE-4.5-300B-A47B", + "id": "llama3.1:405b", + "name": "Llama 3.1 405B", + "display_name": "Llama 3.1 405B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 123000, - "output": 12000 + "context": 128000, + "output": 32768 }, "tool_call": true, "reasoning": { @@ -58962,102 +61180,152 @@ "type": "chat" }, { - "id": "baidu/ernie-4.5-vl-28b-a3b", - "name": "ERNIE-4.5-VL-28B-A3B", - "display_name": "ERNIE-4.5-VL-28B-A3B", + "id": "llama3.2:latest", + "name": "Llama 3.2 Latest", + "display_name": "Llama 3.2 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 30000, - "output": 8000 + "context": 128000, + "output": 32768 }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "baidu/ernie-4.5-vl-424b-a47b", - "name": "ERNIE-4.5-VL-424B-A47B", - "display_name": "ERNIE-4.5-VL-424B-A47B", + "id": "llama3.2:1b", + "name": "Llama 3.2 1B", + "display_name": "Llama 3.2 1B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 123000, - "output": 16000 + "context": 128000, + "output": 32768 }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "zai-org/glm-4.5v", - "name": "GLM 4.5V", - "display_name": "GLM 4.5V", + "id": "llama3.2:3b", + "name": "Llama 3.2 3B", + "display_name": "Llama 3.2 3B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 65536, - "output": 16384 + "context": 128000, + "output": 32768 }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "zai-org/glm-4.6", - "name": "GLM 4.6", - "display_name": "GLM 4.6", + "id": "phi3:latest", + "name": "Phi-3 Latest", + "display_name": "Phi-3 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 204800, - "output": 131072 + "context": 128000, + "output": 32768 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "zai-org/glm-4.6v", - "name": "GLM 4.6v", - "display_name": "GLM 4.6v", + "id": "phi3:3.8b", + "name": "Phi-3 3.8B", + "display_name": "Phi-3 3.8B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 131072, + "context": 128000, "output": 32768 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "zai-org/glm-4.5", - "name": "GLM-4.5", - "display_name": "GLM-4.5", + "id": "phi3:14b", + "name": "Phi-3 14B", + "display_name": "Phi-3 14B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 131072, - "output": 98304 + "context": 128000, + "output": 32768 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "kat-coder", - "name": "KAT-Coder-Pro V1", - "display_name": "KAT-Coder-Pro V1", + "id": "mistral-nemo:latest", + "name": "Mistral-Nemo Latest", + "display_name": "Mistral-Nemo Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 256000, - "output": 32000 + "context": 1000000, + "output": 250000 }, "tool_call": true, "reasoning": { @@ -59066,12 +61334,20 @@ "type": "chat" }, { - "id": "moonshotai/kimi-k2-0905", - "name": "Kimi K2 0905", - "display_name": "Kimi K2 0905", + "id": "mistral-nemo:12b", + "name": "Mistral-Nemo 12B", + "display_name": "Mistral-Nemo 12B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 262144, - "output": 262144 + "context": 1000000, + "output": 250000 }, "tool_call": true, "reasoning": { @@ -59080,71 +61356,111 @@ "type": "chat" }, { - "id": "moonshotai/kimi-k2-instruct", - "name": "Kimi K2 Instruct", - "display_name": "Kimi K2 Instruct", + "id": "llava:latest", + "name": "LLaVA Latest", + "display_name": "LLaVA Latest", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 131072, - "output": 128000 + "context": 32000, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "moonshotai/kimi-k2-thinking", - "name": "Kimi K2 Thinking", - "display_name": "Kimi K2 Thinking", + "id": "llava:7b", + "name": "LLaVA 7B", + "display_name": "LLaVA 7B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 262144, - "output": 262144 + "context": 32000, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "minimax/minimax-m2", - "name": "MiniMax-M2", - "display_name": "MiniMax-M2", + "id": "llava:13b", + "name": "LLaVA 13B", + "display_name": "LLaVA 13B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 204800, - "output": 131072 + "context": 4000, + "output": 1000 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "minimaxai/minimax-m1-80k", - "name": "MiniMaxAI/MiniMax-M1-80k", - "display_name": "MiniMaxAI/MiniMax-M1-80k", - "limit": { - "context": 128000, - "output": 40000 + "id": "llava:34b", + "name": "LLaVA 34B", + "display_name": "LLaVA 34B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] }, - "tool_call": true, + "limit": { + "context": 4000, + "output": 1000 + }, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "paddlepaddle/paddleocr-vl", - "name": "PaddleOCR-VL", - "display_name": "PaddleOCR-VL", + "id": "codellama:latest", + "name": "CodeLlama Latest", + "display_name": "CodeLlama Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 16384, - "output": 16384 + "context": 16000, + "output": 4000 }, "tool_call": false, "reasoning": { @@ -59153,68 +61469,108 @@ "type": "chat" }, { - "id": "qwen/qwen2.5-7b-instruct", - "name": "Qwen 2.5 7B Instruct", - "display_name": "Qwen 2.5 7B Instruct", + "id": "codellama:7b", + "name": "CodeLlama 7B", + "display_name": "CodeLlama 7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 32000, - "output": 32000 + "context": 16000, + "output": 4000 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "qwen/qwen3-vl-30b-a3b-instruct", - "name": "qwen/qwen3-vl-30b-a3b-instruct", - "display_name": "qwen/qwen3-vl-30b-a3b-instruct", + "id": "codellama:13b", + "name": "CodeLlama 13B", + "display_name": "CodeLlama 13B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 131072, - "output": 32768 + "context": 16000, + "output": 4000 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "qwen/qwen3-vl-30b-a3b-thinking", - "name": "qwen/qwen3-vl-30b-a3b-thinking", - "display_name": "qwen/qwen3-vl-30b-a3b-thinking", + "id": "codellama:34b", + "name": "CodeLlama 34B", + "display_name": "CodeLlama 34B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 131072, - "output": 32768 + "context": 16000, + "output": 4000 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "qwen/qwen3-vl-8b-instruct", - "name": "qwen/qwen3-vl-8b-instruct", - "display_name": "qwen/qwen3-vl-8b-instruct", + "id": "codellama:70b", + "name": "CodeLlama 70B", + "display_name": "CodeLlama 70B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 131072, - "output": 32768 + "context": 2000, + "output": 500 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "qwen/qwen-2.5-72b-instruct", - "name": "Qwen2.5 72B Instruct", - "display_name": "Qwen2.5 72B Instruct", + "id": "mixtral:latest", + "name": "Mixtral Latest", + "display_name": "Mixtral Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { "context": 32000, - "output": 16000 + "output": 8192 }, "tool_call": true, "reasoning": { @@ -59223,26 +61579,42 @@ "type": "chat" }, { - "id": "qwen/qwen2.5-vl-72b-instruct", - "name": "Qwen2.5 VL 72B Instruct", - "display_name": "Qwen2.5 VL 72B Instruct", + "id": "mixtral:8x7b", + "name": "Mixtral 8x7B", + "display_name": "Mixtral 8x7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { "context": 32000, - "output": 32000 + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "qwen/qwen3-235b-a22b-instruct-2507", - "name": "Qwen3 235B A22B Instruct 2507", - "display_name": "Qwen3 235B A22B Instruct 2507", + "id": "mixtral:8x22b", + "name": "Mixtral 8x22B", + "display_name": "Mixtral 8x22B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 262144, - "output": 260000 + "context": 64000, + "output": 16000 }, "tool_call": true, "reasoning": { @@ -59251,72 +61623,109 @@ "type": "chat" }, { - "id": "qwen/qwen3-235b-a22b-thinking-2507", - "name": "Qwen3 235B A22b Thinking 2507", - "display_name": "Qwen3 235B A22b Thinking 2507", + "id": "deepseek-coder:latest", + "name": "DeepSeek-Coder Latest", + "display_name": "DeepSeek-Coder Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 131072, - "output": 114688 + "context": 16000, + "output": 4000 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "qwen/qwen3-32b-fp8", - "name": "Qwen3 32B", - "display_name": "Qwen3 32B", + "id": "deepseek-coder:1.3b", + "name": "DeepSeek-Coder 1.3B", + "display_name": "DeepSeek-Coder 1.3B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 128000, - "output": 20000 + "context": 16000, + "output": 4000 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "qwen/qwen3-4b-fp8", - "name": "Qwen3 4B", - "display_name": "Qwen3 4B", + "id": "deepseek-coder:6.7b", + "name": "DeepSeek-Coder 6.7B", + "display_name": "DeepSeek-Coder 6.7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 128000, - "output": 20000 + "context": 16000, + "output": 4000 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "qwen/qwen3-8b-fp8", - "name": "Qwen3 8B", - "display_name": "Qwen3 8B", + "id": "deepseek-coder:33b", + "name": "DeepSeek-Coder 33B", + "display_name": "DeepSeek-Coder 33B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 128000, - "output": 20000 + "context": 16000, + "output": 4000 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "qwen/qwen3-coder-30b-a3b-instruct", - "name": "Qwen3 Coder 30b A3B Instruct", - "display_name": "Qwen3 Coder 30b A3B Instruct", + "id": "qwen2.5vl:latest", + "name": "Qwen2.5-VL Latest", + "display_name": "Qwen2.5-VL Latest", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 262144, - "output": 65536 + "context": 125000, + "output": 31250 }, "tool_call": true, "reasoning": { @@ -59325,12 +61734,21 @@ "type": "chat" }, { - "id": "qwen/qwen3-coder-480b-a35b-instruct", - "name": "Qwen3 Coder 480B A35B Instruct", - "display_name": "Qwen3 Coder 480B A35B Instruct", + "id": "qwen2.5vl:3b", + "name": "Qwen2.5-VL 3B", + "display_name": "Qwen2.5-VL 3B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 262144, - "output": 65536 + "context": 125000, + "output": 31250 }, "tool_call": true, "reasoning": { @@ -59339,12 +61757,21 @@ "type": "chat" }, { - "id": "qwen/qwen3-next-80b-a3b-instruct", - "name": "Qwen3 Next 80B A3B Instruct", - "display_name": "Qwen3 Next 80B A3B Instruct", + "id": "qwen2.5vl:7b", + "name": "Qwen2.5-VL 7B", + "display_name": "Qwen2.5-VL 7B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 65536, - "output": 65536 + "context": 125000, + "output": 31250 }, "tool_call": true, "reasoning": { @@ -59353,27 +61780,44 @@ "type": "chat" }, { - "id": "qwen/qwen3-next-80b-a3b-thinking", - "name": "Qwen3 Next 80B A3B Thinking", - "display_name": "Qwen3 Next 80B A3B Thinking", + "id": "qwen2.5vl:32b", + "name": "Qwen2.5-VL 32B", + "display_name": "Qwen2.5-VL 32B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 65536, - "output": 65536 + "context": 125000, + "output": 31250 }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "type": "chat" }, { - "id": "qwen/qwen3-vl-235b-a22b-instruct", - "name": "Qwen3 VL 235B A22B Instruct", - "display_name": "Qwen3 VL 235B A22B Instruct", + "id": "qwen2.5vl:72b", + "name": "Qwen2.5-VL 72B", + "display_name": "Qwen2.5-VL 72B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 131072, - "output": 32768 + "context": 125000, + "output": 31250 }, "tool_call": true, "reasoning": { @@ -59382,42 +61826,86 @@ "type": "chat" }, { - "id": "qwen/qwen3-vl-235b-a22b-thinking", - "name": "Qwen3 VL 235B A22B Thinking", - "display_name": "Qwen3 VL 235B A22B Thinking", + "id": "nomic-embed-text:latest", + "name": "Nomic-Embed-Text Latest", + "display_name": "Nomic-Embed-Text Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 131072, - "output": 32768 + "context": 2000, + "output": 0 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "type": "embedding" }, { - "id": "qwen/qwen3-235b-a22b-fp8", - "name": "Qwen3-235B-A22B", - "display_name": "Qwen3-235B-A22B", + "id": "nomic-embed-text:v1.5", + "name": "Nomic-Embed-Text v1.5", + "display_name": "Nomic-Embed-Text v1.5", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 40960, - "output": 20000 + "context": 2000, + "output": 0 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "type": "chat" + "type": "embedding" }, { - "id": "qwen/qwen3-30b-a3b-fp8", - "name": "Qwen3-30B-A3B", - "display_name": "Qwen3-30B-A3B", + "id": "nomic-embed-text:137m-v1.5-fp16", + "name": "Nomic-Embed-Text 137M v1.5 FP16", + "display_name": "Nomic-Embed-Text 137M v1.5 FP16", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 128000, - "output": 20000 + "context": 2000, + "output": 0 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "embedding" + }, + { + "id": "qwq:latest", + "name": "QwQ Latest", + "display_name": "QwQ Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 40000, + "output": 10000 }, "tool_call": true, "reasoning": { @@ -59427,12 +61915,20 @@ "type": "chat" }, { - "id": "zai-org/glm-4.5-air", - "name": "zai-org/glm-4.5-air", - "display_name": "zai-org/glm-4.5-air", + "id": "qwq:32b", + "name": "QwQ 32B", + "display_name": "QwQ 32B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 131072, - "output": 98304 + "context": 40000, + "output": 10000 }, "tool_call": true, "reasoning": { @@ -59440,413 +61936,629 @@ "default": true }, "type": "chat" - } - ] - }, - "tokenflux": { - "id": "tokenflux", - "name": "Tokenflux", - "display_name": "Tokenflux", - "models": [ + }, { - "id": "ai21/jamba-large-1.7", - "name": "AI21: Jamba Large 1.7", - "display_name": "AI21: Jamba Large 1.7", + "id": "mistral:latest", + "name": "Mistral Latest", + "display_name": "Mistral Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 32000, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "ai21/jamba-mini-1.7", - "name": "AI21: Jamba Mini 1.7", - "display_name": "AI21: Jamba Mini 1.7", + "id": "mistral:7b", + "name": "Mistral 7B", + "display_name": "Mistral 7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 32000, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "aion-labs/aion-1.0", - "name": "AionLabs: Aion-1.0", - "display_name": "AionLabs: Aion-1.0", - "limit": { - "context": 4096, - "output": 4096 - }, - "tool_call": false, - "reasoning": { - "supported": false + "id": "mistral-large-3:675b-cloud", + "name": "Mistral Large 3 675B Cloud", + "display_name": "Mistral Large 3 675B Cloud", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] }, - "type": "chat" - }, - { - "id": "aion-labs/aion-1.0-mini", - "name": "AionLabs: Aion-1.0-Mini", - "display_name": "AionLabs: Aion-1.0-Mini", "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "aion-labs/aion-rp-llama-3.1-8b", - "name": "AionLabs: Aion-RP 1.0 (8B)", - "display_name": "AionLabs: Aion-RP 1.0 (8B)", + "id": "ministral-3:latest", + "name": "Ministral 3 Latest", + "display_name": "Ministral 3 Latest", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "alfredpros/codellama-7b-instruct-solidity", - "name": "AlfredPros: CodeLLaMa 7B Instruct Solidity", - "display_name": "AlfredPros: CodeLLaMa 7B Instruct Solidity", + "id": "ministral-3:3b", + "name": "Ministral 3 3B", + "display_name": "Ministral 3 3B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "allenai/olmo-2-0325-32b-instruct", - "name": "AllenAI: Olmo 2 32B Instruct", - "display_name": "AllenAI: Olmo 2 32B Instruct", + "id": "ministral-3:8b", + "name": "Ministral 3 8B", + "display_name": "Ministral 3 8B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "allenai/olmo-3-32b-think", - "name": "AllenAI: Olmo 3 32B Think", - "display_name": "AllenAI: Olmo 3 32B Think", + "id": "ministral-3:14b", + "name": "Ministral 3 14B", + "display_name": "Ministral 3 14B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "allenai/olmo-3-7b-instruct", - "name": "AllenAI: Olmo 3 7B Instruct", - "display_name": "AllenAI: Olmo 3 7B Instruct", + "id": "ministral-3:3b-cloud", + "name": "Ministral 3 3B Cloud", + "display_name": "Ministral 3 3B Cloud", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "allenai/olmo-3-7b-think", - "name": "AllenAI: Olmo 3 7B Think", - "display_name": "AllenAI: Olmo 3 7B Think", + "id": "ministral-3:8b-cloud", + "name": "Ministral 3 8B Cloud", + "display_name": "Ministral 3 8B Cloud", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "amazon/nova-2-lite-v1", - "name": "Amazon: Nova 2 Lite", - "display_name": "Amazon: Nova 2 Lite", + "id": "ministral-3:14b-cloud", + "name": "Ministral 3 14B Cloud", + "display_name": "Ministral 3 14B Cloud", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "amazon/nova-lite-v1", - "name": "Amazon: Nova Lite 1.0", - "display_name": "Amazon: Nova Lite 1.0", + "id": "ministral-3:3b-instruct-2512-q4_K_M", + "name": "Ministral 3 3B Instruct 2512 Q4_K_M", + "display_name": "Ministral 3 3B Instruct 2512 Q4_K_M", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "amazon/nova-micro-v1", - "name": "Amazon: Nova Micro 1.0", - "display_name": "Amazon: Nova Micro 1.0", + "id": "ministral-3:3b-instruct-2512-q8_0", + "name": "Ministral 3 3B Instruct 2512 Q8_0", + "display_name": "Ministral 3 3B Instruct 2512 Q8_0", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "amazon/nova-premier-v1", - "name": "Amazon: Nova Premier 1.0", - "display_name": "Amazon: Nova Premier 1.0", + "id": "ministral-3:3b-instruct-2512-fp16", + "name": "Ministral 3 3B Instruct 2512 FP16", + "display_name": "Ministral 3 3B Instruct 2512 FP16", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "amazon/nova-pro-v1", - "name": "Amazon: Nova Pro 1.0", - "display_name": "Amazon: Nova Pro 1.0", + "id": "ministral-3:8b-instruct-2512-q4_K_M", + "name": "Ministral 3 8B Instruct 2512 Q4_K_M", + "display_name": "Ministral 3 8B Instruct 2512 Q4_K_M", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "anthropic/claude-3-haiku", - "name": "Anthropic: Claude 3 Haiku", - "display_name": "Anthropic: Claude 3 Haiku", + "id": "ministral-3:8b-instruct-2512-q8_0", + "name": "Ministral 3 8B Instruct 2512 Q8_0", + "display_name": "Ministral 3 8B Instruct 2512 Q8_0", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "anthropic/claude-3-opus", - "name": "Anthropic: Claude 3 Opus", - "display_name": "Anthropic: Claude 3 Opus", + "id": "ministral-3:8b-instruct-2512-fp16", + "name": "Ministral 3 8B Instruct 2512 FP16", + "display_name": "Ministral 3 8B Instruct 2512 FP16", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "anthropic/claude-3.5-haiku", - "name": "Anthropic: Claude 3.5 Haiku", - "display_name": "Anthropic: Claude 3.5 Haiku", + "id": "ministral-3:14b-instruct-2512-q4_K_M", + "name": "Ministral 3 14B Instruct 2512 Q4_K_M", + "display_name": "Ministral 3 14B Instruct 2512 Q4_K_M", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "anthropic/claude-3.5-haiku-20241022", - "name": "Anthropic: Claude 3.5 Haiku (2024-10-22)", - "display_name": "Anthropic: Claude 3.5 Haiku (2024-10-22)", + "id": "ministral-3:14b-instruct-2512-q8_0", + "name": "Ministral 3 14B Instruct 2512 Q8_0", + "display_name": "Ministral 3 14B Instruct 2512 Q8_0", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "anthropic/claude-3.5-sonnet", - "name": "Anthropic: Claude 3.5 Sonnet", - "display_name": "Anthropic: Claude 3.5 Sonnet", + "id": "ministral-3:14b-instruct-2512-fp16", + "name": "Ministral 3 14B Instruct 2512 FP16", + "display_name": "Ministral 3 14B Instruct 2512 FP16", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "anthropic/claude-3.7-sonnet", - "name": "Anthropic: Claude 3.7 Sonnet", - "display_name": "Anthropic: Claude 3.7 Sonnet", + "id": "qwen2.5:latest", + "name": "Qwen2.5 Latest", + "display_name": "Qwen2.5 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "anthropic/claude-3.7-sonnet:thinking", - "name": "Anthropic: Claude 3.7 Sonnet (thinking)", - "display_name": "Anthropic: Claude 3.7 Sonnet (thinking)", + "id": "qwen2.5:0.5b", + "name": "Qwen2.5 0.5B", + "display_name": "Qwen2.5 0.5B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "anthropic/claude-haiku-4.5", - "name": "Anthropic: Claude Haiku 4.5", - "display_name": "Anthropic: Claude Haiku 4.5", + "id": "qwen2.5:1.5b", + "name": "Qwen2.5 1.5B", + "display_name": "Qwen2.5 1.5B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "anthropic/claude-opus-4", - "name": "Anthropic: Claude Opus 4", - "display_name": "Anthropic: Claude Opus 4", + "id": "qwen2.5:3b", + "name": "Qwen2.5 3B", + "display_name": "Qwen2.5 3B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "anthropic/claude-opus-4.1", - "name": "Anthropic: Claude Opus 4.1", - "display_name": "Anthropic: Claude Opus 4.1", + "id": "qwen2.5:7b", + "name": "Qwen2.5 7B", + "display_name": "Qwen2.5 7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "anthropic/claude-opus-4.5", - "name": "Anthropic: Claude Opus 4.5", - "display_name": "Anthropic: Claude Opus 4.5", + "id": "qwen2.5:14b", + "name": "Qwen2.5 14B", + "display_name": "Qwen2.5 14B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "anthropic/claude-sonnet-4", - "name": "Anthropic: Claude Sonnet 4", - "display_name": "Anthropic: Claude Sonnet 4", + "id": "qwen2.5:32b", + "name": "Qwen2.5 32B", + "display_name": "Qwen2.5 32B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "anthropic/claude-sonnet-4.5", - "name": "Anthropic: Claude Sonnet 4.5", - "display_name": "Anthropic: Claude Sonnet 4.5", + "id": "qwen2.5:72b", + "name": "Qwen2.5 72B", + "display_name": "Qwen2.5 72B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "arcee-ai/coder-large", - "name": "Arcee AI: Coder Large", - "display_name": "Arcee AI: Coder Large", - "limit": { - "context": 4096, - "output": 4096 + "id": "llama3:latest", + "name": "Llama 3 Latest", + "display_name": "Llama 3 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8000, + "output": 2000 }, "tool_call": false, "reasoning": { @@ -59855,12 +62567,20 @@ "type": "chat" }, { - "id": "arcee-ai/maestro-reasoning", - "name": "Arcee AI: Maestro Reasoning", - "display_name": "Arcee AI: Maestro Reasoning", + "id": "llama3:8b", + "name": "Llama 3 8B", + "display_name": "Llama 3 8B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8000, + "output": 2000 }, "tool_call": false, "reasoning": { @@ -59869,12 +62589,20 @@ "type": "chat" }, { - "id": "arcee-ai/spotlight", - "name": "Arcee AI: Spotlight", - "display_name": "Arcee AI: Spotlight", + "id": "llama3:70b", + "name": "Llama 3 70B", + "display_name": "Llama 3 70B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8000, + "output": 2000 }, "tool_call": false, "reasoning": { @@ -59883,12 +62611,20 @@ "type": "chat" }, { - "id": "arcee-ai/trinity-mini", - "name": "Arcee AI: Trinity Mini", - "display_name": "Arcee AI: Trinity Mini", + "id": "gemma2:latest", + "name": "Gemma 2 Latest", + "display_name": "Gemma 2 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 2048 }, "tool_call": false, "reasoning": { @@ -59897,12 +62633,20 @@ "type": "chat" }, { - "id": "arcee-ai/virtuoso-large", - "name": "Arcee AI: Virtuoso Large", - "display_name": "Arcee AI: Virtuoso Large", + "id": "gemma2:2b", + "name": "Gemma 2 2B", + "display_name": "Gemma 2 2B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 2048 }, "tool_call": false, "reasoning": { @@ -59911,12 +62655,20 @@ "type": "chat" }, { - "id": "arliai/qwq-32b-arliai-rpr-v1", - "name": "ArliAI: QwQ 32B RpR v1", - "display_name": "ArliAI: QwQ 32B RpR v1", + "id": "gemma2:9b", + "name": "Gemma 2 9B", + "display_name": "Gemma 2 9B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 2048 }, "tool_call": false, "reasoning": { @@ -59925,12 +62677,20 @@ "type": "chat" }, { - "id": "openrouter/auto", - "name": "Auto Router", - "display_name": "Auto Router", + "id": "gemma2:27b", + "name": "Gemma 2 27B", + "display_name": "Gemma 2 27B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 2048 }, "tool_call": false, "reasoning": { @@ -59939,152 +62699,240 @@ "type": "chat" }, { - "id": "baidu/ernie-4.5-21b-a3b", - "name": "Baidu: ERNIE 4.5 21B A3B", - "display_name": "Baidu: ERNIE 4.5 21B A3B", + "id": "qwen2.5-coder:latest", + "name": "Qwen2.5-Coder Latest", + "display_name": "Qwen2.5-Coder Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "baidu/ernie-4.5-21b-a3b-thinking", - "name": "Baidu: ERNIE 4.5 21B A3B Thinking", - "display_name": "Baidu: ERNIE 4.5 21B A3B Thinking", + "id": "qwen2.5-coder:0.5b", + "name": "Qwen2.5-Coder 0.5B", + "display_name": "Qwen2.5-Coder 0.5B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "baidu/ernie-4.5-300b-a47b", - "name": "Baidu: ERNIE 4.5 300B A47B", - "display_name": "Baidu: ERNIE 4.5 300B A47B", + "id": "qwen2.5-coder:1.5b", + "name": "Qwen2.5-Coder 1.5B", + "display_name": "Qwen2.5-Coder 1.5B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "baidu/ernie-4.5-vl-28b-a3b", - "name": "Baidu: ERNIE 4.5 VL 28B A3B", - "display_name": "Baidu: ERNIE 4.5 VL 28B A3B", + "id": "qwen2.5-coder:3b", + "name": "Qwen2.5-Coder 3B", + "display_name": "Qwen2.5-Coder 3B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "baidu/ernie-4.5-vl-424b-a47b", - "name": "Baidu: ERNIE 4.5 VL 424B A47B", - "display_name": "Baidu: ERNIE 4.5 VL 424B A47B", + "id": "qwen2.5-coder:7b", + "name": "Qwen2.5-Coder 7B", + "display_name": "Qwen2.5-Coder 7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "openrouter/bodybuilder", - "name": "Body Builder (beta)", - "display_name": "Body Builder (beta)", + "id": "qwen2.5-coder:14b", + "name": "Qwen2.5-Coder 14B", + "display_name": "Qwen2.5-Coder 14B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "bytedance/doubao-embedding-text-240715", - "name": "ByteDance: Doubao Embedding", - "display_name": "ByteDance: Doubao Embedding", + "id": "qwen2.5-coder:32b", + "name": "Qwen2.5-Coder 32B", + "display_name": "Qwen2.5-Coder 32B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, - "type": "embedding" + "type": "chat" }, { - "id": "bytedance/doubao-embedding-large-text-240915", - "name": "ByteDance: Doubao Embedding Large Text (240915)", - "display_name": "ByteDance: Doubao Embedding Large Text (240915)", + "id": "phi4:latest", + "name": "Phi-4 Latest", + "display_name": "Phi-4 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 16000, + "output": 4000 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "embedding" + "type": "chat" }, { - "id": "bytedance/doubao-embedding-vision-241215", - "name": "ByteDance: Doubao Embedding Vision", - "display_name": "ByteDance: Doubao Embedding Vision", + "id": "phi4:14b", + "name": "Phi-4 14B", + "display_name": "Phi-4 14B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 16000, + "output": 4000 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "embedding" + "type": "chat" }, { - "id": "bytedance/doubao-embedding-vision-250328", - "name": "ByteDance: Doubao Embedding Vision", - "display_name": "ByteDance: Doubao Embedding Vision", + "id": "gemma:latest", + "name": "Gemma Latest", + "display_name": "Gemma Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 2048 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "embedding" + "type": "chat" }, { - "id": "bytedance/doubao-seed-1.6", - "name": "ByteDance: Doubao Seed 1.6", - "display_name": "ByteDance: Doubao Seed 1.6", + "id": "gemma:2b", + "name": "Gemma 2B", + "display_name": "Gemma 2B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 2048 }, "tool_call": false, "reasoning": { @@ -60093,12 +62941,20 @@ "type": "chat" }, { - "id": "bytedance/doubao-seed-1.6-flash", - "name": "ByteDance: Doubao Seed 1.6 Flash", - "display_name": "ByteDance: Doubao Seed 1.6 Flash", + "id": "gemma:7b", + "name": "Gemma 7B", + "display_name": "Gemma 7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 2048 }, "tool_call": false, "reasoning": { @@ -60107,12 +62963,20 @@ "type": "chat" }, { - "id": "bytedance/doubao-seed-1.6-thinking", - "name": "ByteDance: Doubao Seed 1.6 Thinking", - "display_name": "ByteDance: Doubao Seed 1.6 Thinking", + "id": "llama2:latest", + "name": "Llama 2 Latest", + "display_name": "Llama 2 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { "context": 4096, - "output": 4096 + "output": 1024 }, "tool_call": false, "reasoning": { @@ -60121,12 +62985,20 @@ "type": "chat" }, { - "id": "bytedance/ui-tars-1.5-7b", - "name": "ByteDance: UI-TARS 7B", - "display_name": "ByteDance: UI-TARS 7B", + "id": "llama2:7b", + "name": "Llama 2 7B", + "display_name": "Llama 2 7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { "context": 4096, - "output": 4096 + "output": 1024 }, "tool_call": false, "reasoning": { @@ -60135,12 +63007,20 @@ "type": "chat" }, { - "id": "deepcogito/cogito-v2-preview-llama-109b-moe", - "name": "Cogito V2 Preview Llama 109B", - "display_name": "Cogito V2 Preview Llama 109B", + "id": "llama2:13b", + "name": "Llama 2 13B", + "display_name": "Llama 2 13B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { "context": 4096, - "output": 4096 + "output": 1024 }, "tool_call": false, "reasoning": { @@ -60149,12 +63029,20 @@ "type": "chat" }, { - "id": "cohere/command-a", - "name": "Cohere: Command A", - "display_name": "Cohere: Command A", + "id": "llama2:70b", + "name": "Llama 2 70B", + "display_name": "Llama 2 70B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { "context": 4096, - "output": 4096 + "output": 1024 }, "tool_call": false, "reasoning": { @@ -60163,180 +63051,265 @@ "type": "chat" }, { - "id": "cohere/command-r-08-2024", - "name": "Cohere: Command R (08-2024)", - "display_name": "Cohere: Command R (08-2024)", + "id": "qwen2:latest", + "name": "Qwen2 Latest", + "display_name": "Qwen2 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "cohere/command-r-plus-08-2024", - "name": "Cohere: Command R+ (08-2024)", - "display_name": "Cohere: Command R+ (08-2024)", + "id": "qwen2:0.5b", + "name": "Qwen2 0.5B", + "display_name": "Qwen2 0.5B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "cohere/command-r7b-12-2024", - "name": "Cohere: Command R7B (12-2024)", - "display_name": "Cohere: Command R7B (12-2024)", + "id": "qwen2:1.5b", + "name": "Qwen2 1.5B", + "display_name": "Qwen2 1.5B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "deepcogito/cogito-v2-preview-llama-405b", - "name": "Deep Cogito: Cogito V2 Preview Llama 405B", - "display_name": "Deep Cogito: Cogito V2 Preview Llama 405B", + "id": "qwen2:7b", + "name": "Qwen2 7B", + "display_name": "Qwen2 7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "deepcogito/cogito-v2-preview-llama-70b", - "name": "Deep Cogito: Cogito V2 Preview Llama 70B", - "display_name": "Deep Cogito: Cogito V2 Preview Llama 70B", + "id": "qwen2:72b", + "name": "Qwen2 72B", + "display_name": "Qwen2 72B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "deepcogito/cogito-v2.1-671b", - "name": "Deep Cogito: Cogito v2.1 671B", - "display_name": "Deep Cogito: Cogito v2.1 671B", - "limit": { - "context": 4096, - "output": 4096 - }, - "tool_call": false, - "reasoning": { - "supported": false + "id": "deepseek-v3:latest", + "name": "DeepSeek-V3 Latest", + "display_name": "DeepSeek-V3 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] }, - "type": "chat" - }, - { - "id": "deepseek/deepseek-prover-v2", - "name": "DeepSeek: DeepSeek Prover V2", - "display_name": "DeepSeek: DeepSeek Prover V2", "limit": { - "context": 4096, - "output": 4096 + "context": 160000, + "output": 40000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "type": "chat" }, { - "id": "deepseek/deepseek-r1-0528-qwen3-8b", - "name": "DeepSeek: DeepSeek R1 0528 Qwen3 8B", - "display_name": "DeepSeek: DeepSeek R1 0528 Qwen3 8B", + "id": "deepseek-v3:671b", + "name": "DeepSeek-V3 671B", + "display_name": "DeepSeek-V3 671B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 160000, + "output": 40000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "type": "chat" }, { - "id": "deepseek/deepseek-chat", - "name": "DeepSeek: DeepSeek V3", - "display_name": "DeepSeek: DeepSeek V3", + "id": "llama3.3:latest", + "name": "Llama 3.3 Latest", + "display_name": "Llama 3.3 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "deepseek/deepseek-chat-v3-0324", - "name": "DeepSeek: DeepSeek V3 0324", - "display_name": "DeepSeek: DeepSeek V3 0324", + "id": "llama3.3:70b", + "name": "Llama 3.3 70B", + "display_name": "Llama 3.3 70B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "deepseek/deepseek-chat-v3.1", - "name": "DeepSeek: DeepSeek V3.1", - "display_name": "DeepSeek: DeepSeek V3.1", + "id": "bge-m3:latest", + "name": "BGE-M3 Latest", + "display_name": "BGE-M3 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 0 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "type": "embedding" }, { - "id": "deepseek/deepseek-v3.1-terminus", - "name": "DeepSeek: DeepSeek V3.1 Terminus", - "display_name": "DeepSeek: DeepSeek V3.1 Terminus", + "id": "bge-m3:567m", + "name": "BGE-M3 567M", + "display_name": "BGE-M3 567M", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 0 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "type": "embedding" }, { - "id": "deepseek/deepseek-v3.1-terminus:exacto", - "name": "DeepSeek: DeepSeek V3.1 Terminus (exacto)", - "display_name": "DeepSeek: DeepSeek V3.1 Terminus (exacto)", + "id": "llama3.2-vision:latest", + "name": "Llama 3.2 Vision Latest", + "display_name": "Llama 3.2 Vision Latest", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, "tool_call": false, "reasoning": { @@ -60345,12 +63318,21 @@ "type": "chat" }, { - "id": "deepseek/deepseek-v3.2", - "name": "DeepSeek: DeepSeek V3.2", - "display_name": "DeepSeek: DeepSeek V3.2", + "id": "llama3.2-vision:11b", + "name": "Llama 3.2 Vision 11B", + "display_name": "Llama 3.2 Vision 11B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, "tool_call": false, "reasoning": { @@ -60359,12 +63341,21 @@ "type": "chat" }, { - "id": "deepseek/deepseek-v3.2-exp", - "name": "DeepSeek: DeepSeek V3.2 Exp", - "display_name": "DeepSeek: DeepSeek V3.2 Exp", + "id": "llama3.2-vision:90b", + "name": "Llama 3.2 Vision 90B", + "display_name": "Llama 3.2 Vision 90B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 32768 }, "tool_call": false, "reasoning": { @@ -60373,12 +63364,20 @@ "type": "chat" }, { - "id": "deepseek/deepseek-v3.2-speciale", - "name": "DeepSeek: DeepSeek V3.2 Speciale", - "display_name": "DeepSeek: DeepSeek V3.2 Speciale", + "id": "tinyllama:latest", + "name": "TinyLlama Latest", + "display_name": "TinyLlama Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 2048, + "output": 512 }, "tool_call": false, "reasoning": { @@ -60387,12 +63386,20 @@ "type": "chat" }, { - "id": "deepseek/deepseek-r1", - "name": "DeepSeek: R1", - "display_name": "DeepSeek: R1", + "id": "tinyllama:1.1b", + "name": "TinyLlama 1.1B", + "display_name": "TinyLlama 1.1B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 2048, + "output": 512 }, "tool_call": false, "reasoning": { @@ -60401,11 +63408,19 @@ "type": "chat" }, { - "id": "deepseek/deepseek-r1-0528", - "name": "DeepSeek: R1 0528", - "display_name": "DeepSeek: R1 0528", + "id": "starcoder2:latest", + "name": "StarCoder2 Latest", + "display_name": "StarCoder2 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, + "context": 16384, "output": 4096 }, "tool_call": false, @@ -60415,11 +63430,19 @@ "type": "chat" }, { - "id": "deepseek/deepseek-r1-distill-llama-70b", - "name": "DeepSeek: R1 Distill Llama 70B", - "display_name": "DeepSeek: R1 Distill Llama 70B", + "id": "starcoder2:3b", + "name": "StarCoder2 3B", + "display_name": "StarCoder2 3B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, + "context": 16384, "output": 4096 }, "tool_call": false, @@ -60429,11 +63452,19 @@ "type": "chat" }, { - "id": "deepseek/deepseek-r1-distill-qwen-14b", - "name": "DeepSeek: R1 Distill Qwen 14B", - "display_name": "DeepSeek: R1 Distill Qwen 14B", + "id": "starcoder2:7b", + "name": "StarCoder2 7B", + "display_name": "StarCoder2 7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, + "context": 16384, "output": 4096 }, "tool_call": false, @@ -60443,11 +63474,19 @@ "type": "chat" }, { - "id": "deepseek/deepseek-r1-distill-qwen-32b", - "name": "DeepSeek: R1 Distill Qwen 32B", - "display_name": "DeepSeek: R1 Distill Qwen 32B", + "id": "starcoder2:15b", + "name": "StarCoder2 15B", + "display_name": "StarCoder2 15B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, + "context": 16384, "output": 4096 }, "tool_call": false, @@ -60457,12 +63496,20 @@ "type": "chat" }, { - "id": "eleutherai/llemma_7b", - "name": "EleutherAI: Llemma 7b", - "display_name": "EleutherAI: Llemma 7b", + "id": "codegemma:latest", + "name": "CodeGemma Latest", + "display_name": "CodeGemma Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 2048 }, "tool_call": false, "reasoning": { @@ -60471,12 +63518,20 @@ "type": "chat" }, { - "id": "essentialai/rnj-1-instruct", - "name": "EssentialAI: Rnj 1 Instruct", - "display_name": "EssentialAI: Rnj 1 Instruct", + "id": "codegemma:2b", + "name": "CodeGemma 2B", + "display_name": "CodeGemma 2B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 2048 }, "tool_call": false, "reasoning": { @@ -60485,12 +63540,20 @@ "type": "chat" }, { - "id": "alpindale/goliath-120b", - "name": "Goliath 120B", - "display_name": "Goliath 120B", + "id": "codegemma:7b", + "name": "CodeGemma 7B", + "display_name": "CodeGemma 7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 2048 }, "tool_call": false, "reasoning": { @@ -60499,107 +63562,5330 @@ "type": "chat" }, { - "id": "google/gemini-2.0-flash-001", - "name": "Google: Gemini 2.0 Flash", - "display_name": "Google: Gemini 2.0 Flash", + "id": "kimi-k2-thinking:cloud", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 8192 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2025-11-06", + "last_updated": "2025-11-06" }, { - "id": "google/gemini-2.0-flash-lite-001", - "name": "Google: Gemini 2.0 Flash Lite", - "display_name": "Google: Gemini 2.0 Flash Lite", + "id": "qwen3-vl-235b-cloud", + "name": "Qwen3-VL 235B Instruct", + "display_name": "Qwen3-VL 235B Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 200000, + "output": 8192 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "release_date": "2025-09-22", + "last_updated": "2025-09-22" }, { - "id": "google/gemini-2.5-flash", - "name": "Google: Gemini 2.5 Flash", - "display_name": "Google: Gemini 2.5 Flash", + "id": "cogito-2.1:671b-cloud", + "name": "Cogito 2.1 671B", + "display_name": "Cogito 2.1 671B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 160000, + "output": 8192 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2025-11-19", + "last_updated": "2025-11-19" }, { - "id": "google/gemini-2.5-flash-image", - "name": "Google: Gemini 2.5 Flash Image (Nano Banana)", - "display_name": "Google: Gemini 2.5 Flash Image (Nano Banana)", + "id": "qwen3-vl-235b-instruct-cloud", + "name": "Qwen3-VL 235B Instruct", + "display_name": "Qwen3-VL 235B Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 200000, + "output": 8192 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": true, + "open_weights": true, + "release_date": "2025-09-22", + "last_updated": "2025-09-22" }, { - "id": "google/gemini-2.5-flash-image-preview", - "name": "Google: Gemini 2.5 Flash Image Preview (Nano Banana)", - "display_name": "Google: Gemini 2.5 Flash Image Preview (Nano Banana)", + "id": "kimi-k2:1t-cloud", + "name": "Kimi K2", + "display_name": "Kimi K2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 8192 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" + "attachment": false, + "open_weights": true, + "release_date": "2025-09-05", + "last_updated": "2025-09-05" }, { - "id": "google/gemini-2.5-flash-lite", - "name": "Google: Gemini 2.5 Flash Lite", - "display_name": "Google: Gemini 2.5 Flash Lite", + "id": "minimax-m2:cloud", + "name": "MiniMax M2", + "display_name": "MiniMax M2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 200000, + "output": 8192 }, - "tool_call": false, + "temperature": true, + "tool_call": true, "reasoning": { "supported": false }, - "type": "chat" - }, - { - "id": "google/gemini-2.5-flash-lite-preview-09-2025", - "name": "Google: Gemini 2.5 Flash Lite Preview 09-2025", - "display_name": "Google: Gemini 2.5 Flash Lite Preview 09-2025", - "limit": { - "context": 4096, - "output": 4096 - }, - "tool_call": false, + "attachment": false, + "open_weights": true, + "release_date": "2025-10-27", + "last_updated": "2025-10-27" + } + ] + }, + "burncloud": { + "id": "burncloud", + "name": "burncloud", + "display_name": "burncloud", + "models": [ + { + "id": "openai/gpt-4-turbo", + "name": "OpenAI GPT-4 Turbo", + "display_name": "GPT-4 Turbo", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 8, + "output": 24 + }, + "type": "chat" + }, + { + "id": "openai/o4-mini", + "name": "OpenAI o4-mini", + "display_name": "o4-mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 100000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 0.88, + "output": 3.52 + }, + "type": "chat" + }, + { + "id": "openai/o3", + "name": "OpenAI o3", + "display_name": "o3", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 100000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 8, + "output": 35 + }, + "type": "chat" + }, + { + "id": "openai/o3-mini", + "name": "OpenAI o3-mini", + "display_name": "o3-mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 100000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 0.88, + "output": 3.52 + }, + "type": "chat" + }, + { + "id": "openai/o1", + "name": "OpenAI o1", + "display_name": "o1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 100000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 12, + "output": 48 + }, + "type": "chat" + }, + { + "id": "openai/o1-mini", + "name": "OpenAI o1-mini", + "display_name": "o1-mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 0.88, + "output": 3.52 + }, + "type": "chat" + }, + { + "id": "openai/o1-pro", + "name": "OpenAI o1-pro", + "display_name": "o1-pro", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 100000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 120, + "output": 480 + }, + "type": "chat" + }, + { + "id": "openai/gpt-4.1", + "name": "OpenAI GPT-4.1", + "display_name": "GPT-4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 1.6, + "output": 6.4 + }, + "type": "chat" + }, + { + "id": "openai/gpt-4o", + "name": "OpenAI GPT-4o", + "display_name": "GPT-4o", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 2, + "output": 8 + }, + "type": "chat" + }, + { + "id": "openai/gpt-4o-audio", + "name": "OpenAI GPT-4o Audio", + "display_name": "GPT-4o Audio", + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "limit": { + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 2, + "output": 8 + }, + "type": "chat" + }, + { + "id": "openai/gpt-4o-mini", + "name": "OpenAI GPT-4o mini", + "display_name": "GPT-4o mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 0.12, + "output": 0.48 + }, + "type": "chat" + }, + { + "id": "openai/gpt-4o-mini-audio", + "name": "OpenAI GPT-4o mini Audio", + "display_name": "GPT-4o mini Audio", + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "limit": { + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 0.12, + "output": 0.48 + }, + "type": "chat" + }, + { + "id": "openai/gpt-4o-realtime", + "name": "OpenAI GPT-4o Realtime", + "display_name": "GPT-4o Realtime", + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "limit": { + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 4, + "output": 16 + }, + "type": "chat" + }, + { + "id": "openai/gpt-4o-mini-realtime", + "name": "OpenAI GPT-4o mini Realtime", + "display_name": "GPT-4o mini Realtime", + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text", + "audio" + ] + }, + "limit": { + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 0.48, + "output": 1.92 + }, + "type": "chat" + }, + { + "id": "openai/gpt-image-1", + "name": "OpenAI GPT Image 1", + "display_name": "GPT Image 1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "cost": { + "input": 4, + "output": 32 + }, + "type": "imageGeneration" + }, + { + "id": "openai/gpt-4o-mini-tts", + "name": "OpenAI GPT-4o mini TTS", + "display_name": "GPT-4o mini TTS", + "modalities": { + "input": [ + "text" + ], + "output": [ + "audio" + ] + }, + "temperature": false, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "cost": { + "input": 0.48, + "output": 0.96 + } + }, + { + "id": "openai/tts-1-hd", + "name": "OpenAI TTS-1 HD", + "display_name": "TTS-1 HD", + "modalities": { + "input": [ + "text" + ], + "output": [ + "audio" + ] + }, + "temperature": false, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "cost": { + "input": 24 + } + }, + { + "id": "openai/gpt-4o-transcribe", + "name": "OpenAI GPT-4o Transcribe", + "display_name": "GPT-4o Transcribe", + "modalities": { + "input": [ + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 2000 + }, + "temperature": false, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "cost": { + "input": 2, + "output": 8 + } + }, + { + "id": "openai/whisper", + "name": "OpenAI Whisper", + "display_name": "Whisper", + "modalities": { + "input": [ + "audio" + ], + "output": [ + "text" + ] + }, + "temperature": false, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "cost": { + "input": 0.0048 + } + }, + { + "id": "openai/gpt-4o-search-preview", + "name": "OpenAI GPT-4o Search Preview", + "display_name": "GPT-4o Search Preview", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 2, + "output": 8 + }, + "type": "chat" + }, + { + "id": "openai/computer-use-preview", + "name": "OpenAI Computer Use Preview", + "display_name": "computer-use-preview", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 1024 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 2.4, + "output": 9.6 + }, + "type": "chat" + }, + { + "id": "google/gemini-2.5-pro", + "name": "Google Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 1, + "output": 8 + }, + "type": "chat" + }, + { + "id": "google/gemini-2.5-flash", + "name": "Google Gemini 2.5 Flash", + "display_name": "Gemini 2.5 Flash", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 0.12, + "output": 0.48 + }, + "type": "chat" + }, + { + "id": "google/gemini-2.0-flash", + "name": "Google Gemini 2.0 Flash", + "display_name": "Gemini 2.0 Flash", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 0.08, + "output": 0.32 + }, + "type": "chat" + }, + { + "id": "google/imagen-3", + "name": "Google Imagen 3", + "display_name": "Imagen 3", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "cost": { + "input": 0.024 + }, + "type": "imageGeneration" + }, + { + "id": "google/veo-2", + "name": "Google Veo 2", + "display_name": "Veo 2", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "video" + ] + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "cost": { + "input": 0.28 + } + }, + { + "id": "anthropic/claude-sonnet-4", + "name": "Anthropic Claude Sonnet 4", + "display_name": "Claude Sonnet 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 200000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 2.4, + "output": 12 + }, + "type": "chat" + }, + { + "id": "anthropic/claude-opus-4", + "name": "Anthropic Claude Opus 4", + "display_name": "Claude Opus 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 12, + "output": 60 + }, + "type": "chat" + }, + { + "id": "anthropic/claude-3.7-sonnet", + "name": "Anthropic Claude 3.7 Sonnet", + "display_name": "Claude 3.7 Sonnet", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 200000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 2.4, + "output": 12 + }, + "type": "chat" + }, + { + "id": "anthropic/claude-3.5-haiku", + "name": "Anthropic Claude 3.5 Haiku", + "display_name": "Claude 3.5 Haiku", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 0.64, + "output": 3.2 + }, + "type": "chat" + }, + { + "id": "xai/grok-3", + "name": "xAI Grok-3", + "display_name": "Grok-3", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 2.4, + "output": 12 + }, + "type": "chat" + }, + { + "id": "xai/grok-3-mini", + "name": "xAI Grok-3 Mini", + "display_name": "Grok-3 Mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 0.24, + "output": 0.4 + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-r1", + "name": "DeepSeek Reasoner", + "display_name": "DeepSeek R1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 0.1104, + "output": 1.7632 + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-chat", + "name": "DeepSeek Chat", + "display_name": "DeepSeek Chat", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "cost": { + "input": 0.0552, + "output": 0.8816 + }, + "type": "chat" + } + ] + }, + "cherryin": { + "id": "cherryin", + "name": "cherryin", + "display_name": "cherryin", + "models": [ + { + "id": "anthropic/claude-opus-4.5", + "name": "Claude Opus 4.5", + "display_name": "Claude Opus 4.5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "open_weights": false, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5 + }, + "type": "chat" + }, + { + "id": "anthropic/claude-3.7-sonnet", + "name": "Anthropic: Claude 3.7 Sonnet", + "display_name": "Anthropic: Claude 3.7 Sonnet", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2024-01", + "release_date": "2025-02-19", + "last_updated": "2025-02-19" + }, + { + "id": "anthropic/claude-haiku-4.5", + "name": "Anthropic: claude-haiku-4-5", + "display_name": "Anthropic: claude-haiku-4-5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 204800, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false + }, + { + "id": "anthropic/claude-opus-4", + "name": "Anthropic: Claude Opus 4", + "display_name": "Anthropic: Claude Opus 4", + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22" + }, + { + "id": "anthropic/claude-opus-4.1", + "name": "Anthropic: Claude Opus 4.1", + "display_name": "Anthropic: Claude Opus 4.1", + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05" + }, + { + "id": "anthropic/claude-sonnet-4", + "name": "Anthropic: Claude Sonnet 4", + "display_name": "Anthropic: Claude Sonnet 4", + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22" + }, + { + "id": "anthropic/claude-sonnet-4.5", + "name": "Anthropic: Claude Sonnet 4.5", + "display_name": "Anthropic: Claude Sonnet 4.5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29" + }, + { + "id": "bytedance/seed-oss-36b-instruct", + "name": "ByteDance: Seed OSS 36B Instruct", + "display_name": "ByteDance: Seed OSS 36B Instruct", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + } + }, + { + "id": "deepseek/deepseek-r1-0528", + "name": "DeepSeek: R1 0528", + "display_name": "DeepSeek: R1 0528", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 163840, + "output": 163840 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false + }, + { + "id": "deepseek/deepseek-v3.1", + "name": "DeepSeek V3.1", + "display_name": "DeepSeek V3.1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2025-08-20", + "last_updated": "2025-08-26" + }, + { + "id": "deepseek/deepseek-v3.1-fast", + "name": "DeepSeek: DeepSeek V3.1 (free)", + "display_name": "DeepSeek: DeepSeek V3.1 (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 163800 + }, + "temperature": false, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false + }, + { + "id": "deepseek/deepseek-v3.1-terminus", + "name": "DeepSeek: DeepSeek V3.1 Terminus", + "display_name": "DeepSeek: DeepSeek V3.1 Terminus", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 163840, + "output": 163840 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-09-22", + "last_updated": "2025-09-22" + }, + { + "id": "deepseek/deepseek-v3.2-exp", + "name": "DeepSeek: DeepSeek V3.2 Exp", + "display_name": "DeepSeek: DeepSeek V3.2 Exp", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 163840 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false + }, + { + "id": "google/gemini-2.5-flash", + "name": "Google: Gemini 2.5 Flash", + "display_name": "Google: Gemini 2.5 Flash", + "modalities": { + "input": [ + "image", + "text", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65535 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-07-17", + "last_updated": "2025-07-17" + }, + { + "id": "google/gemini-2.5-flash-image", + "name": "Google: Gemini 2.5 Flash Image (Nano Banana)", + "display_name": "Google: Gemini 2.5 Flash Image (Nano Banana)", + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "image", + "text" + ] + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "temperature": false, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false + }, + { + "id": "google/gemini-2.5-flash-image-preview", + "name": "Google: Gemini 2.5 Flash Image Preview (Nano Banana)", + "display_name": "Google: Gemini 2.5 Flash Image Preview (Nano Banana)", + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "image", + "text" + ] + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "temperature": false, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false + }, + { + "id": "google/gemini-2.5-flash-lite", + "name": "Google: Gemini 2.5 Flash Lite", + "display_name": "Google: Gemini 2.5 Flash Lite", + "modalities": { + "input": [ + "image", + "text", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65535 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true + }, + { + "id": "google/gemini-2.5-pro", + "name": "Google: Gemini 2.5 Pro", + "display_name": "Google: Gemini 2.5 Pro", + "modalities": { + "input": [ + "image", + "text", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05" + }, + { + "id": "google/gemini-3-pro-preview", + "name": "Google: Gemini 3 Pro Preview", + "display_name": "Google: Gemini 3 Pro Preview", + "modalities": { + "input": [ + "image", + "text", + "audio", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-10", + "release_date": "2025-11-19", + "last_updated": "2025-11-19" + }, + { + "id": "inclusionai/ling-1t", + "name": "inclusionAI: Ling-1T", + "display_name": "inclusionAI: Ling-1T", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false + }, + { + "id": "meituan/longcat-flash-chat", + "name": "Meituan: LongCat-Flash-Chat", + "display_name": "Meituan: LongCat-Flash-Chat", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false + }, + { + "id": "minimax/minimax-m2", + "name": "MiniMax: minimax-m2", + "display_name": "MiniMax: minimax-m2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 204800, + "output": 192000 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false + }, + { + "id": "minimaxai/minimax-m1-80k", + "name": "MiniMax: MiniMax M1", + "display_name": "MiniMax: MiniMax M1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 40000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false + }, + { + "id": "moonshotai/kimi-k2-0905", + "name": "MoonshotAI: Kimi K2 0905", + "display_name": "MoonshotAI: Kimi K2 0905", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-09-05", + "last_updated": "2025-09-05" + }, + { + "id": "moonshotai/kimi-k2-thinking", + "name": "MoonshotAI: kimi-k2-thinking", + "display_name": "MoonshotAI: kimi-k2-thinking", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false + }, + { + "id": "moonshotai/kimi-k2-thinking-turbo", + "name": "MoonshotAI: kimi-k2-thinking", + "display_name": "MoonshotAI: kimi-k2-thinking", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false + }, + { + "id": "openai/gpt-4.1", + "name": "OpenAI: GPT-4.1", + "display_name": "OpenAI: GPT-4.1", + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14" + }, + { + "id": "openai/gpt-4.1-mini", + "name": "OpenAI: GPT-4.1 Mini", + "display_name": "OpenAI: GPT-4.1 Mini", + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14" + }, + { + "id": "openai/gpt-4.1-nano", + "name": "OpenAI: GPT-4.1 Nano", + "display_name": "OpenAI: GPT-4.1 Nano", + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true + }, + { + "id": "openai/gpt-4o", + "name": "OpenAI: gpt-4o", + "display_name": "OpenAI: gpt-4o", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false + }, + { + "id": "openai/gpt-4o-mini", + "name": "OpenAI: gpt-4o-mini", + "display_name": "OpenAI: gpt-4o-mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false + }, + { + "id": "openai/gpt-5", + "name": "OpenAI: GPT-5", + "display_name": "OpenAI: GPT-5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-01", + "release_date": "2025-08-07", + "last_updated": "2025-08-07" + }, + { + "id": "openai/gpt-5-chat", + "name": "OpenAI: GPT-5 Chat", + "display_name": "OpenAI: GPT-5 Chat", + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": false, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07" + }, + { + "id": "openai/gpt-5-mini", + "name": "OpenAI: GPT-5 Mini", + "display_name": "OpenAI: GPT-5 Mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-01", + "release_date": "2025-08-07", + "last_updated": "2025-08-07" + }, + { + "id": "openai/gpt-5-nano", + "name": "OpenAI: GPT-5 Nano", + "display_name": "OpenAI: GPT-5 Nano", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-01", + "release_date": "2025-08-07", + "last_updated": "2025-08-07" + }, + { + "id": "openai/gpt-5.1", + "name": "OpenAI: gpt-5.1", + "display_name": "OpenAI: gpt-5.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false + }, + { + "id": "openai/gpt-5.2", + "name": "OpenAI: gpt-5.2", + "display_name": "OpenAI: gpt-5.2", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false + }, + { + "id": "openai/gpt-5.1-chat", + "name": "OpenAI: gpt-5.1", + "display_name": "OpenAI: gpt-5.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false + }, + { + "id": "openai/gpt-image-1", + "name": "OpenAI: gpt-image-1", + "display_name": "OpenAI: gpt-image-1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false + }, + { + "id": "openai/gpt-oss-120b", + "name": "OpenAI: gpt-oss-120b", + "display_name": "OpenAI: gpt-oss-120b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05" + }, + { + "id": "openai/gpt-oss-20b", + "name": "OpenAI: gpt-oss-20b", + "display_name": "OpenAI: gpt-oss-20b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05" + }, + { + "id": "openai/o1", + "name": "OpenAI: o1", + "display_name": "OpenAI: o1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true + }, + { + "id": "openai/o1-mini", + "name": "OpenAI: o1-mini", + "display_name": "OpenAI: o1-mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 65536 + }, + "temperature": false, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false + }, + { + "id": "openai/o3", + "name": "OpenAI: o3", + "display_name": "OpenAI: o3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false + }, + { + "id": "openai/o4-mini", + "name": "OpenAI: o4 Mini", + "display_name": "OpenAI: o4 Mini", + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2025-04-16", + "last_updated": "2025-04-16" + }, + { + "id": "qwen/qwen3-235b-a22b-instruct-2507", + "name": "Qwen: Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen: Qwen3 235B A22B Instruct 2507", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false + }, + { + "id": "qwen/qwen3-235b-a22b-thinking-2507", + "name": "Qwen: Qwen3 235B A22B Thinking 2507", + "display_name": "Qwen: Qwen3 235B A22B Thinking 2507", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-25", + "last_updated": "2025-07-25" + }, + { + "id": "qwen/qwen3-30b-a3b-instruct-2507", + "name": "Qwen: Qwen3 30B A3B Instruct 2507", + "display_name": "Qwen: Qwen3 30B A3B Instruct 2507", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-29", + "last_updated": "2025-07-29" + }, + { + "id": "qwen/qwen3-30b-a3b-thinking-2507", + "name": "Qwen: Qwen3 30B A3B Thinking 2507", + "display_name": "Qwen: Qwen3 30B A3B Thinking 2507", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false + }, + { + "id": "qwen/qwen3-8b", + "name": "Qwen: Qwen3 8B", + "display_name": "Qwen: Qwen3 8B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 20000 + }, + "temperature": false, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false + }, + { + "id": "qwen/qwen3-coder", + "name": "Qwen: Qwen3 Coder 480B A35B", + "display_name": "Qwen: Qwen3 Coder 480B A35B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23" + }, + { + "id": "qwen/qwen3-coder-30b-a3b-instruct", + "name": "Qwen: Qwen3 Coder 30B A3B Instruct", + "display_name": "Qwen: Qwen3 Coder 30B A3B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false + }, + { + "id": "qwen/qwen3-coder-480b-a35b-instruct", + "name": "Qwen: Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen: Qwen3 Coder 480B A35B Instruct", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + } + }, + { + "id": "qwen/qwen3-embedding-0.6b", + "name": "qwen/qwen3-embedding-0.6b", + "display_name": "qwen/qwen3-embedding-0.6b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "embedding" + }, + { + "id": "qwen/qwen3-embedding-4b", + "name": "qwen/qwen3-embedding-4b", + "display_name": "qwen/qwen3-embedding-4b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "embedding" + }, + { + "id": "qwen/qwen3-embedding-8b", + "name": "qwen/qwen3-embedding-8b", + "display_name": "qwen/qwen3-embedding-8b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "embedding" + }, + { + "id": "qwen/qwen3-next-80b-a3b-instruct", + "name": "Qwen: Qwen3 Next 80B A3B Instruct", + "display_name": "Qwen: Qwen3 Next 80B A3B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-11", + "last_updated": "2025-09-11" + }, + { + "id": "qwen/qwen3-next-80b-a3b-thinking", + "name": "Qwen: Qwen3 Next 80B A3B Thinking", + "display_name": "Qwen: Qwen3 Next 80B A3B Thinking", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false + }, + { + "id": "qwen/qwen3-omni-30b-a3b-instruct", + "name": "Qwen: Qwen3 VL 30B A3B Instruct", + "display_name": "Qwen: Qwen3 VL 30B A3B Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false + }, + { + "id": "qwen/qwen3-omni-30b-a3b-thinking", + "name": "Qwen: Qwen3 VL 30B A3B Thinking", + "display_name": "Qwen: Qwen3 VL 30B A3B Thinking", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false + }, + { + "id": "qwen/qwen3-reranker-0.6b", + "name": "qwen/qwen3-reranker-0.6b", + "display_name": "qwen/qwen3-reranker-0.6b", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-reranker-4b", + "name": "qwen/qwen3-reranker-4b", + "display_name": "qwen/qwen3-reranker-4b", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-reranker-8b", + "name": "qwen/qwen3-reranker-8b", + "display_name": "qwen/qwen3-reranker-8b", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-vl-235b-a22b-instruct", + "name": "Qwen: Qwen3 VL 235B A22B Instruct", + "display_name": "Qwen: Qwen3 VL 235B A22B Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false + }, + { + "id": "qwen/qwen3-vl-235b-a22b-thinking", + "name": "Qwen: Qwen3 VL 235B A22B Thinking", + "display_name": "Qwen: Qwen3 VL 235B A22B Thinking", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 65536, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false + }, + { + "id": "qwen/qwen3-vl-30b-a3b-instruct", + "name": "Qwen: Qwen3 VL 30B A3B Instruct", + "display_name": "Qwen: Qwen3 VL 30B A3B Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false + }, + { + "id": "qwen/qwen3-vl-30b-a3b-thinking", + "name": "Qwen: Qwen3 VL 30B A3B Thinking", + "display_name": "Qwen: Qwen3 VL 30B A3B Thinking", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false + }, + { + "id": "tencent/hunyuan-mt-7b", + "name": "Tencent: Hunyuan A13B Instruct", + "display_name": "Tencent: Hunyuan A13B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768 + }, + "temperature": false, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false + }, + { + "id": "x-ai/grok-2-image", + "name": "grok-2", + "display_name": "grok-2", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text", + "image" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "x-ai/grok-3", + "name": "xAI: Grok 3", + "display_name": "xAI: Grok 3", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17" + }, + { + "id": "x-ai/grok-3-mini", + "name": "xAI: Grok 3 Mini", + "display_name": "xAI: Grok 3 Mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17" + }, + { + "id": "x-ai/grok-4", + "name": "xAI: Grok 4", + "display_name": "xAI: Grok 4", + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 64000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-07-09", + "last_updated": "2025-07-09" + }, + { + "id": "x-ai/grok-4-fast-non-reasoning", + "name": "x-ai/grok-4-fast-non-reasoning", + "display_name": "x-ai/grok-4-fast-non-reasoning", + "limit": { + "context": 2000000, + "output": 2000000 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "x-ai/grok-4-fast-reasoning", + "name": "x-ai/grok-4-fast-reasoning", + "display_name": "x-ai/grok-4-fast-reasoning", + "limit": { + "context": 2000000, + "output": 2000000 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "x-ai/grok-code-fast-1", + "name": "xAI: Grok Code Fast 1", + "display_name": "xAI: Grok Code Fast 1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 10000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "knowledge": "2025-08", + "release_date": "2025-08-26", + "last_updated": "2025-08-26" + }, + { + "id": "z-ai/glm-4.5", + "name": "Z.AI: GLM 4.5", + "display_name": "Z.AI: GLM 4.5", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28" + }, + { + "id": "z-ai/glm-4.5-flash", + "name": "z-ai/glm-4.5-flash", + "display_name": "z-ai/glm-4.5-flash", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "z-ai/glm-4.5v", + "name": "Z.AI: GLM 4.5V", + "display_name": "Z.AI: GLM 4.5V", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 65536, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-08-11", + "last_updated": "2025-08-11" + }, + { + "id": "z-ai/glm-4.6", + "name": "Z.AI: GLM 4.6", + "display_name": "Z.AI: GLM 4.6", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 202752, + "output": 202752 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2025-09", + "release_date": "2025-09-30", + "last_updated": "2025-09-30" + }, + { + "id": "z-ai/glm-4.7", + "name": "Z.AI: GLM 4.7", + "display_name": "Z.AI: GLM 4.7", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 200000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "cost": { + "input": 0.273974, + "output": 1.095896, + "cache_read": 0.054795 + }, + "type": "chat" + }, + { + "id": "xiaomi/mimo-v2-flash", + "name": "Xiaomi: Mimo V2 Flash", + "display_name": "Xiaomi: Mimo V2 Flash", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "cost": { + "input": 0.1918, + "output": 0.5754, + "cache_read": 0.03836 + }, + "type": "chat" + }, + { + "id": "xiaomimimo/mimo-v2-flash", + "name": "Xiaomi: Mimo V2 Flash", + "display_name": "Xiaomi: Mimo V2 Flash", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "cost": { + "input": 0.1918, + "output": 0.5754, + "cache_read": 0.03836 + }, + "type": "chat" + }, + { + "id": "minimax/minimax-m2.1", + "name": "MiniMax: minimax-m2.1", + "display_name": "MiniMax: minimax-m2.1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 204800, + "output": 204800 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "cost": { + "input": 0.288, + "output": 1.152 + }, + "type": "chat" + }, + { + "id": "minimax/minimax-m2.1-lightning", + "name": "MiniMax: minimax-m2.1-lightning", + "display_name": "MiniMax: minimax-m2.1-lightning", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 204800, + "output": 204800 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "cost": { + "input": 0.144, + "output": 0.576 + }, + "type": "chat" + } + ] + }, + "doubao": { + "id": "doubao", + "name": "Doubao", + "display_name": "Doubao", + "models": [ + { + "id": "deepseek-v3-1-250821", + "name": "DeepSeek V3.1", + "display_name": "DeepSeek V3.1", + "limit": { + "context": 128000, + "output": 32000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek-r1-250120", + "name": "DeepSeek R1", + "display_name": "DeepSeek R1", + "limit": { + "context": 64000, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "deepseek-r1-distill-qwen-32b-250120", + "name": "DeepSeek R1 Distill Qwen 32B", + "display_name": "DeepSeek R1 Distill Qwen 32B", + "limit": { + "context": 32000, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "deepseek-r1-distill-qwen-7b-250120", + "name": "DeepSeek R1 Distill Qwen 7B", + "display_name": "DeepSeek R1 Distill Qwen 7B", + "limit": { + "context": 32000, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "deepseek-v3-250324", + "name": "DeepSeek V3", + "display_name": "DeepSeek V3", + "limit": { + "context": 64000, + "output": 4096 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "doubao-seed-1-6-vision-250815", + "name": "Doubao Seed 1.6 Vision", + "display_name": "Doubao Seed 1.6 Vision", + "limit": { + "context": 256000, + "output": 32000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "doubao-seed-1-6-250615", + "name": "Doubao Seed 1.6", + "display_name": "Doubao Seed 1.6", + "limit": { + "context": 256000, + "output": 32000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "doubao-seed-1-6-flash-250715", + "name": "Doubao Seed 1.6 Flash", + "display_name": "Doubao Seed 1.6 Flash", + "limit": { + "context": 256000, + "output": 32000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "doubao-seed-1-6-flash-250615", + "name": "Doubao Seed 1.6 Flash (250615)", + "display_name": "Doubao Seed 1.6 Flash (250615)", + "limit": { + "context": 256000, + "output": 32000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "doubao-seed-1-6-thinking-250715", + "name": "Doubao Seed 1.6 Thinking", + "display_name": "Doubao Seed 1.6 Thinking", + "limit": { + "context": 256000, + "output": 32000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "doubao-seed-1-6-thinking-250615", + "name": "Doubao Seed 1.6 Thinking (250615)", + "display_name": "Doubao Seed 1.6 Thinking (250615)", + "limit": { + "context": 256000, + "output": 32000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + } + ] + }, + "ppinfra": { + "id": "ppinfra", + "name": "PPInfra", + "display_name": "PPInfra", + "models": [ + { + "id": "zai-org/autoglm-phone-9b-multilingual", + "name": "AutoGLM-Phone-9B-Multilingual", + "display_name": "AutoGLM-Phone-9B-Multilingual", + "limit": { + "context": 65536, + "output": 32000 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "baichuan/baichuan-m2-32b", + "name": "BaiChuan M2 32B", + "display_name": "BaiChuan M2 32B", + "limit": { + "context": 131072, + "output": 131072 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-prover-v2-671b", + "name": "Deepseek Prover V2 671B", + "display_name": "Deepseek Prover V2 671B", + "limit": { + "context": 160000, + "output": 160000 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-r1/community", + "name": "DeepSeek R1 (Community)", + "display_name": "DeepSeek R1 (Community)", + "limit": { + "context": 64000, + "output": 4000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-r1-turbo", + "name": "DeepSeek R1 (Turbo)", + "display_name": "DeepSeek R1 (Turbo)", + "limit": { + "context": 64000, + "output": 16000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-r1-distill-llama-70b", + "name": "DeepSeek R1 Distill Llama 70B", + "display_name": "DeepSeek R1 Distill Llama 70B", + "limit": { + "context": 32000, + "output": 8000 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-v3/community", + "name": "DeepSeek V3 (Community)", + "display_name": "DeepSeek V3 (Community)", + "limit": { + "context": 64000, + "output": 4000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-v3-turbo", + "name": "DeepSeek V3 (Turbo)", + "display_name": "DeepSeek V3 (Turbo)", + "limit": { + "context": 64000, + "output": 16000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-v3-0324", + "name": "DeepSeek V3 0324", + "display_name": "DeepSeek V3 0324", + "limit": { + "context": 163840, + "output": 163840 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-v3.1", + "name": "Deepseek V3.1", + "display_name": "Deepseek V3.1", + "limit": { + "context": 131072, + "output": 32768 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-v3.1-terminus", + "name": "Deepseek V3.1 Terminus", + "display_name": "Deepseek V3.1 Terminus", + "limit": { + "context": 131072, + "output": 65536 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-v3.2", + "name": "Deepseek V3.2", + "display_name": "Deepseek V3.2", + "limit": { + "context": 163840, + "output": 65536 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-v3.2-exp", + "name": "Deepseek V3.2 Exp", + "display_name": "Deepseek V3.2 Exp", + "limit": { + "context": 163840, + "output": 65536 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-ocr", + "name": "DeepSeek-OCR", + "display_name": "DeepSeek-OCR", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-r1-0528-qwen3-8b", + "name": "DeepSeek-R1-0528-Qwen3-8B", + "display_name": "DeepSeek-R1-0528-Qwen3-8B", + "limit": { + "context": 128000, + "output": 32000 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-r1-distill-qwen-14b", + "name": "DeepSeek: DeepSeek R1 Distill Qwen 14B", + "display_name": "DeepSeek: DeepSeek R1 Distill Qwen 14B", + "limit": { + "context": 64000, + "output": 8000 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-r1-distill-qwen-32b", + "name": "DeepSeek: DeepSeek R1 Distill Qwen 32B", + "display_name": "DeepSeek: DeepSeek R1 Distill Qwen 32B", + "limit": { + "context": 64000, + "output": 8000 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-r1-0528", + "name": "deepseek/deepseek-r1-0528", + "display_name": "deepseek/deepseek-r1-0528", + "limit": { + "context": 163840, + "output": 32768 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "baidu/ernie-4.5-21b-a3b-thinking", + "name": "Ernie 4.5 21B A3B Thinking", + "display_name": "Ernie 4.5 21B A3B Thinking", + "limit": { + "context": 131072, + "output": 65536 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "baidu/ernie-4.5-0.3b", + "name": "ERNIE-4.5-0.3B", + "display_name": "ERNIE-4.5-0.3B", + "limit": { + "context": 120000, + "output": 8000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "baidu/ernie-4.5-21B-a3b", + "name": "ERNIE-4.5-21B-A3B", + "display_name": "ERNIE-4.5-21B-A3B", + "limit": { + "context": 120000, + "output": 8000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "baidu/ernie-4.5-300b-a47b-paddle", + "name": "ERNIE-4.5-300B-A47B", + "display_name": "ERNIE-4.5-300B-A47B", + "limit": { + "context": 123000, + "output": 12000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "baidu/ernie-4.5-vl-28b-a3b", + "name": "ERNIE-4.5-VL-28B-A3B", + "display_name": "ERNIE-4.5-VL-28B-A3B", + "limit": { + "context": 30000, + "output": 8000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "baidu/ernie-4.5-vl-424b-a47b", + "name": "ERNIE-4.5-VL-424B-A47B", + "display_name": "ERNIE-4.5-VL-424B-A47B", + "limit": { + "context": 123000, + "output": 16000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "zai-org/glm-4.5v", + "name": "GLM 4.5V", + "display_name": "GLM 4.5V", + "limit": { + "context": 65536, + "output": 16384 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "zai-org/glm-4.6", + "name": "GLM 4.6", + "display_name": "GLM 4.6", + "limit": { + "context": 204800, + "output": 131072 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "zai-org/glm-4.6v", + "name": "GLM 4.6v", + "display_name": "GLM 4.6v", + "limit": { + "context": 131072, + "output": 32768 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "zai-org/glm-4.5", + "name": "GLM-4.5", + "display_name": "GLM-4.5", + "limit": { + "context": 131072, + "output": 98304 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "zai-org/glm-4.7", + "name": "GLM-4.7", + "display_name": "GLM-4.7", + "limit": { + "context": 204800, + "output": 131072 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "kat-coder", + "name": "KAT-Coder-Pro V1", + "display_name": "KAT-Coder-Pro V1", + "limit": { + "context": 256000, + "output": 32000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "moonshotai/kimi-k2-0905", + "name": "Kimi K2 0905", + "display_name": "Kimi K2 0905", + "limit": { + "context": 262144, + "output": 262144 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "moonshotai/kimi-k2-instruct", + "name": "Kimi K2 Instruct", + "display_name": "Kimi K2 Instruct", + "limit": { + "context": 131072, + "output": 128000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "moonshotai/kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", + "limit": { + "context": 262144, + "output": 262144 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "minimax/minimax-m2.1", + "name": "Minimax M2.1", + "display_name": "Minimax M2.1", + "limit": { + "context": 204800, + "output": 131072 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "minimax/minimax-m2", + "name": "MiniMax-M2", + "display_name": "MiniMax-M2", + "limit": { + "context": 204800, + "output": 131072 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "minimaxai/minimax-m1-80k", + "name": "MiniMaxAI/MiniMax-M1-80k", + "display_name": "MiniMaxAI/MiniMax-M1-80k", + "limit": { + "context": 128000, + "output": 40000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "paddlepaddle/paddleocr-vl", + "name": "PaddleOCR-VL", + "display_name": "PaddleOCR-VL", + "limit": { + "context": 16384, + "output": 16384 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen2.5-7b-instruct", + "name": "Qwen 2.5 7B Instruct", + "display_name": "Qwen 2.5 7B Instruct", + "limit": { + "context": 32000, + "output": 32000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-vl-30b-a3b-instruct", + "name": "qwen/qwen3-vl-30b-a3b-instruct", + "display_name": "qwen/qwen3-vl-30b-a3b-instruct", + "limit": { + "context": 131072, + "output": 32768 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-vl-30b-a3b-thinking", + "name": "qwen/qwen3-vl-30b-a3b-thinking", + "display_name": "qwen/qwen3-vl-30b-a3b-thinking", + "limit": { + "context": 131072, + "output": 32768 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-vl-8b-instruct", + "name": "qwen/qwen3-vl-8b-instruct", + "display_name": "qwen/qwen3-vl-8b-instruct", + "limit": { + "context": 131072, + "output": 32768 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen-2.5-72b-instruct", + "name": "Qwen2.5 72B Instruct", + "display_name": "Qwen2.5 72B Instruct", + "limit": { + "context": 32000, + "output": 16000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen2.5-vl-72b-instruct", + "name": "Qwen2.5 VL 72B Instruct", + "display_name": "Qwen2.5 VL 72B Instruct", + "limit": { + "context": 32000, + "output": 32000 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-235b-a22b-instruct-2507", + "name": "Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen3 235B A22B Instruct 2507", + "limit": { + "context": 262144, + "output": 260000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-235b-a22b-thinking-2507", + "name": "Qwen3 235B A22b Thinking 2507", + "display_name": "Qwen3 235B A22b Thinking 2507", + "limit": { + "context": 131072, + "output": 114688 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-32b-fp8", + "name": "Qwen3 32B", + "display_name": "Qwen3 32B", + "limit": { + "context": 128000, + "output": 20000 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-4b-fp8", + "name": "Qwen3 4B", + "display_name": "Qwen3 4B", + "limit": { + "context": 128000, + "output": 20000 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-8b-fp8", + "name": "Qwen3 8B", + "display_name": "Qwen3 8B", + "limit": { + "context": 128000, + "output": 20000 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-coder-30b-a3b-instruct", + "name": "Qwen3 Coder 30b A3B Instruct", + "display_name": "Qwen3 Coder 30b A3B Instruct", + "limit": { + "context": 262144, + "output": 65536 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-coder-480b-a35b-instruct", + "name": "Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen3 Coder 480B A35B Instruct", + "limit": { + "context": 262144, + "output": 65536 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-next-80b-a3b-instruct", + "name": "Qwen3 Next 80B A3B Instruct", + "display_name": "Qwen3 Next 80B A3B Instruct", + "limit": { + "context": 65536, + "output": 65536 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-next-80b-a3b-thinking", + "name": "Qwen3 Next 80B A3B Thinking", + "display_name": "Qwen3 Next 80B A3B Thinking", + "limit": { + "context": 65536, + "output": 65536 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-vl-235b-a22b-instruct", + "name": "Qwen3 VL 235B A22B Instruct", + "display_name": "Qwen3 VL 235B A22B Instruct", + "limit": { + "context": 131072, + "output": 32768 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-vl-235b-a22b-thinking", + "name": "Qwen3 VL 235B A22B Thinking", + "display_name": "Qwen3 VL 235B A22B Thinking", + "limit": { + "context": 131072, + "output": 32768 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-235b-a22b-fp8", + "name": "Qwen3-235B-A22B", + "display_name": "Qwen3-235B-A22B", + "limit": { + "context": 40960, + "output": 20000 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-30b-a3b-fp8", + "name": "Qwen3-30B-A3B", + "display_name": "Qwen3-30B-A3B", + "limit": { + "context": 128000, + "output": 20000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "xiaomimimo/mimo-v2-flash", + "name": "XiaomiMiMo/MiMo-V2-Flash", + "display_name": "XiaomiMiMo/MiMo-V2-Flash", + "limit": { + "context": 262144, + "output": 32000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "zai-org/glm-4.5-air", + "name": "zai-org/glm-4.5-air", + "display_name": "zai-org/glm-4.5-air", + "limit": { + "context": 131072, + "output": 98304 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + } + ] + }, + "tokenflux": { + "id": "tokenflux", + "name": "Tokenflux", + "display_name": "Tokenflux", + "models": [ + { + "id": "anthropic/claude-3-haiku", + "name": "Anthropic: Claude 3 Haiku", + "display_name": "Anthropic: Claude 3 Haiku", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "anthropic/claude-3-opus", + "name": "Anthropic: Claude 3 Opus", + "display_name": "Anthropic: Claude 3 Opus", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "anthropic/claude-3.5-haiku", + "name": "Anthropic: Claude 3.5 Haiku", + "display_name": "Anthropic: Claude 3.5 Haiku", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "anthropic/claude-3.5-haiku-20241022", + "name": "Anthropic: Claude 3.5 Haiku (2024-10-22)", + "display_name": "Anthropic: Claude 3.5 Haiku (2024-10-22)", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "anthropic/claude-3.5-sonnet", + "name": "Anthropic: Claude 3.5 Sonnet", + "display_name": "Anthropic: Claude 3.5 Sonnet", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "anthropic/claude-3.7-sonnet", + "name": "Anthropic: Claude 3.7 Sonnet", + "display_name": "Anthropic: Claude 3.7 Sonnet", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "anthropic/claude-3.7-sonnet:thinking", + "name": "Anthropic: Claude 3.7 Sonnet (thinking)", + "display_name": "Anthropic: Claude 3.7 Sonnet (thinking)", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "anthropic/claude-haiku-4.5", + "name": "Anthropic: Claude Haiku 4.5", + "display_name": "Anthropic: Claude Haiku 4.5", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "anthropic/claude-opus-4", + "name": "Anthropic: Claude Opus 4", + "display_name": "Anthropic: Claude Opus 4", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "anthropic/claude-opus-4.1", + "name": "Anthropic: Claude Opus 4.1", + "display_name": "Anthropic: Claude Opus 4.1", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "anthropic/claude-opus-4.5", + "name": "Anthropic: Claude Opus 4.5", + "display_name": "Anthropic: Claude Opus 4.5", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "anthropic/claude-sonnet-4", + "name": "Anthropic: Claude Sonnet 4", + "display_name": "Anthropic: Claude Sonnet 4", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "anthropic/claude-sonnet-4.5", + "name": "Anthropic: Claude Sonnet 4.5", + "display_name": "Anthropic: Claude Sonnet 4.5", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "bytedance/doubao-seed-1.6", + "name": "bytedance/doubao-seed-1.6", + "display_name": "bytedance/doubao-seed-1.6", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "bytedance/doubao-seed-1.6-flash", + "name": "bytedance/doubao-seed-1.6-flash", + "display_name": "bytedance/doubao-seed-1.6-flash", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "bytedance/doubao-seed-1.6-thinking", + "name": "bytedance/doubao-seed-1.6-thinking", + "display_name": "bytedance/doubao-seed-1.6-thinking", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-prover-v2", + "name": "DeepSeek: DeepSeek Prover V2", + "display_name": "DeepSeek: DeepSeek Prover V2", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-r1-0528-qwen3-8b", + "name": "DeepSeek: DeepSeek R1 0528 Qwen3 8B", + "display_name": "DeepSeek: DeepSeek R1 0528 Qwen3 8B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-chat-v3-0324", + "name": "DeepSeek: DeepSeek V3 0324", + "display_name": "DeepSeek: DeepSeek V3 0324", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-chat-v3.1", + "name": "DeepSeek: DeepSeek V3.1", + "display_name": "DeepSeek: DeepSeek V3.1", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-v3.1-terminus", + "name": "DeepSeek: DeepSeek V3.1 Terminus", + "display_name": "DeepSeek: DeepSeek V3.1 Terminus", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-v3.1-terminus:exacto", + "name": "DeepSeek: DeepSeek V3.1 Terminus (exacto)", + "display_name": "DeepSeek: DeepSeek V3.1 Terminus (exacto)", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-v3.2", + "name": "DeepSeek: DeepSeek V3.2", + "display_name": "DeepSeek: DeepSeek V3.2", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-v3.2-exp", + "name": "DeepSeek: DeepSeek V3.2 Exp", + "display_name": "DeepSeek: DeepSeek V3.2 Exp", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-v3.2-speciale", + "name": "DeepSeek: DeepSeek V3.2 Speciale", + "display_name": "DeepSeek: DeepSeek V3.2 Speciale", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-r1-distill-llama-70b", + "name": "DeepSeek: R1 Distill Llama 70B", + "display_name": "DeepSeek: R1 Distill Llama 70B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-r1-distill-qwen-14b", + "name": "DeepSeek: R1 Distill Qwen 14B", + "display_name": "DeepSeek: R1 Distill Qwen 14B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-r1-distill-qwen-32b", + "name": "DeepSeek: R1 Distill Qwen 32B", + "display_name": "DeepSeek: R1 Distill Qwen 32B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-chat", + "name": "deepseek/deepseek-chat", + "display_name": "deepseek/deepseek-chat", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-r1", + "name": "deepseek/deepseek-r1", + "display_name": "deepseek/deepseek-r1", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "deepseek/deepseek-r1-0528", + "name": "deepseek/deepseek-r1-0528", + "display_name": "deepseek/deepseek-r1-0528", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemini-2.0-flash-001", + "name": "Google: Gemini 2.0 Flash", + "display_name": "Google: Gemini 2.0 Flash", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemini-2.0-flash-lite-001", + "name": "Google: Gemini 2.0 Flash Lite", + "display_name": "Google: Gemini 2.0 Flash Lite", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemini-2.5-flash", + "name": "Google: Gemini 2.5 Flash", + "display_name": "Google: Gemini 2.5 Flash", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemini-2.5-flash-image", + "name": "Google: Gemini 2.5 Flash Image (Nano Banana)", + "display_name": "Google: Gemini 2.5 Flash Image (Nano Banana)", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemini-2.5-flash-image-preview", + "name": "Google: Gemini 2.5 Flash Image Preview (Nano Banana)", + "display_name": "Google: Gemini 2.5 Flash Image Preview (Nano Banana)", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemini-2.5-flash-lite", + "name": "Google: Gemini 2.5 Flash Lite", + "display_name": "Google: Gemini 2.5 Flash Lite", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemini-2.5-flash-lite-preview-09-2025", + "name": "Google: Gemini 2.5 Flash Lite Preview 09-2025", + "display_name": "Google: Gemini 2.5 Flash Lite Preview 09-2025", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemini-2.5-flash-preview-09-2025", + "name": "Google: Gemini 2.5 Flash Preview 09-2025", + "display_name": "Google: Gemini 2.5 Flash Preview 09-2025", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemini-2.5-pro", + "name": "Google: Gemini 2.5 Pro", + "display_name": "Google: Gemini 2.5 Pro", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemini-2.5-pro-preview-05-06", + "name": "Google: Gemini 2.5 Pro Preview 05-06", + "display_name": "Google: Gemini 2.5 Pro Preview 05-06", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemini-2.5-pro-preview", + "name": "Google: Gemini 2.5 Pro Preview 06-05", + "display_name": "Google: Gemini 2.5 Pro Preview 06-05", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemini-3-flash-preview", + "name": "Google: Gemini 3 Flash Preview", + "display_name": "Google: Gemini 3 Flash Preview", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemini-3-pro-preview", + "name": "Google: Gemini 3 Pro Preview", + "display_name": "Google: Gemini 3 Pro Preview", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemma-2-27b-it", + "name": "Google: Gemma 2 27B", + "display_name": "Google: Gemma 2 27B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemma-2-9b-it", + "name": "Google: Gemma 2 9B", + "display_name": "Google: Gemma 2 9B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemma-3-12b-it", + "name": "Google: Gemma 3 12B", + "display_name": "Google: Gemma 3 12B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemma-3-27b-it", + "name": "Google: Gemma 3 27B", + "display_name": "Google: Gemma 3 27B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemma-3-4b-it", + "name": "Google: Gemma 3 4B", + "display_name": "Google: Gemma 3 4B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemma-3n-e4b-it", + "name": "Google: Gemma 3n 4B", + "display_name": "Google: Gemma 3n 4B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "google/gemini-3-pro-image-preview", + "name": "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)", + "display_name": "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "minimax/minimax-m1", + "name": "MiniMax: MiniMax M1", + "display_name": "MiniMax: MiniMax M1", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "minimax/minimax-m2", + "name": "MiniMax: MiniMax M2", + "display_name": "MiniMax: MiniMax M2", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "minimax/minimax-m2.1", + "name": "MiniMax: MiniMax M2.1", + "display_name": "MiniMax: MiniMax M2.1", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "minimax/minimax-01", + "name": "MiniMax: MiniMax-01", + "display_name": "MiniMax: MiniMax-01", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "moonshotai/kimi-dev-72b", + "name": "MoonshotAI: Kimi Dev 72B", + "display_name": "MoonshotAI: Kimi Dev 72B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "moonshotai/kimi-k2-0905", + "name": "MoonshotAI: Kimi K2 0905", + "display_name": "MoonshotAI: Kimi K2 0905", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "moonshotai/kimi-k2-0905:exacto", + "name": "MoonshotAI: Kimi K2 0905 (exacto)", + "display_name": "MoonshotAI: Kimi K2 0905 (exacto)", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "moonshotai/kimi-k2-thinking", + "name": "MoonshotAI: Kimi K2 Thinking", + "display_name": "MoonshotAI: Kimi K2 Thinking", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "moonshotai/kimi-k2", + "name": "moonshotai/kimi-k2", + "display_name": "moonshotai/kimi-k2", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "morph/morph-v3-fast", + "name": "Morph: Morph V3 Fast", + "display_name": "Morph: Morph V3 Fast", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "morph/morph-v3-large", + "name": "Morph: Morph V3 Large", + "display_name": "Morph: Morph V3 Large", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "openai/chatgpt-4o-latest", + "name": "OpenAI: ChatGPT-4o", + "display_name": "OpenAI: ChatGPT-4o", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "openai/codex-mini", + "name": "OpenAI: Codex Mini", + "display_name": "OpenAI: Codex Mini", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "openai/gpt-3.5-turbo", + "name": "OpenAI: GPT-3.5 Turbo", + "display_name": "OpenAI: GPT-3.5 Turbo", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "openai/gpt-3.5-turbo-0613", + "name": "OpenAI: GPT-3.5 Turbo (older v0613)", + "display_name": "OpenAI: GPT-3.5 Turbo (older v0613)", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "openai/gpt-3.5-turbo-16k", + "name": "OpenAI: GPT-3.5 Turbo 16k", + "display_name": "OpenAI: GPT-3.5 Turbo 16k", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "openai/gpt-3.5-turbo-instruct", + "name": "OpenAI: GPT-3.5 Turbo Instruct", + "display_name": "OpenAI: GPT-3.5 Turbo Instruct", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "openai/gpt-4", + "name": "OpenAI: GPT-4", + "display_name": "OpenAI: GPT-4", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "openai/gpt-4-0314", + "name": "OpenAI: GPT-4 (older v0314)", + "display_name": "OpenAI: GPT-4 (older v0314)", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "openai/gpt-4-turbo", + "name": "OpenAI: GPT-4 Turbo", + "display_name": "OpenAI: GPT-4 Turbo", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "openai/gpt-4-1106-preview", + "name": "OpenAI: GPT-4 Turbo (older v1106)", + "display_name": "OpenAI: GPT-4 Turbo (older v1106)", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "openai/gpt-4-turbo-preview", + "name": "OpenAI: GPT-4 Turbo Preview", + "display_name": "OpenAI: GPT-4 Turbo Preview", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "openai/gpt-4.1", + "name": "OpenAI: GPT-4.1", + "display_name": "OpenAI: GPT-4.1", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "openai/gpt-4.1-mini", + "name": "OpenAI: GPT-4.1 Mini", + "display_name": "OpenAI: GPT-4.1 Mini", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "openai/gpt-4.1-nano", + "name": "OpenAI: GPT-4.1 Nano", + "display_name": "OpenAI: GPT-4.1 Nano", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, "reasoning": { "supported": false }, "type": "chat" }, { - "id": "google/gemini-2.5-flash-preview-09-2025", - "name": "Google: Gemini 2.5 Flash Preview 09-2025", - "display_name": "Google: Gemini 2.5 Flash Preview 09-2025", + "id": "openai/gpt-4o", + "name": "OpenAI: GPT-4o", + "display_name": "OpenAI: GPT-4o", "limit": { "context": 4096, "output": 4096 @@ -60611,9 +68897,9 @@ "type": "chat" }, { - "id": "google/gemini-2.5-pro", - "name": "Google: Gemini 2.5 Pro", - "display_name": "Google: Gemini 2.5 Pro", + "id": "openai/gpt-4o-2024-05-13", + "name": "OpenAI: GPT-4o (2024-05-13)", + "display_name": "OpenAI: GPT-4o (2024-05-13)", "limit": { "context": 4096, "output": 4096 @@ -60625,9 +68911,9 @@ "type": "chat" }, { - "id": "google/gemini-2.5-pro-preview-05-06", - "name": "Google: Gemini 2.5 Pro Preview 05-06", - "display_name": "Google: Gemini 2.5 Pro Preview 05-06", + "id": "openai/gpt-4o-2024-08-06", + "name": "OpenAI: GPT-4o (2024-08-06)", + "display_name": "OpenAI: GPT-4o (2024-08-06)", "limit": { "context": 4096, "output": 4096 @@ -60639,9 +68925,9 @@ "type": "chat" }, { - "id": "google/gemini-2.5-pro-preview", - "name": "Google: Gemini 2.5 Pro Preview 06-05", - "display_name": "Google: Gemini 2.5 Pro Preview 06-05", + "id": "openai/gpt-4o-2024-11-20", + "name": "OpenAI: GPT-4o (2024-11-20)", + "display_name": "OpenAI: GPT-4o (2024-11-20)", "limit": { "context": 4096, "output": 4096 @@ -60653,9 +68939,9 @@ "type": "chat" }, { - "id": "google/gemini-3-flash-preview", - "name": "Google: Gemini 3 Flash Preview", - "display_name": "Google: Gemini 3 Flash Preview", + "id": "openai/gpt-4o:extended", + "name": "OpenAI: GPT-4o (extended)", + "display_name": "OpenAI: GPT-4o (extended)", "limit": { "context": 4096, "output": 4096 @@ -60667,9 +68953,9 @@ "type": "chat" }, { - "id": "google/gemini-3-pro-preview", - "name": "Google: Gemini 3 Pro Preview", - "display_name": "Google: Gemini 3 Pro Preview", + "id": "openai/gpt-4o-audio-preview", + "name": "OpenAI: GPT-4o Audio", + "display_name": "OpenAI: GPT-4o Audio", "limit": { "context": 4096, "output": 4096 @@ -60681,9 +68967,9 @@ "type": "chat" }, { - "id": "google/gemma-2-27b-it", - "name": "Google: Gemma 2 27B", - "display_name": "Google: Gemma 2 27B", + "id": "openai/gpt-4o-search-preview", + "name": "OpenAI: GPT-4o Search Preview", + "display_name": "OpenAI: GPT-4o Search Preview", "limit": { "context": 4096, "output": 4096 @@ -60695,9 +68981,9 @@ "type": "chat" }, { - "id": "google/gemma-2-9b-it", - "name": "Google: Gemma 2 9B", - "display_name": "Google: Gemma 2 9B", + "id": "openai/gpt-4o-mini", + "name": "OpenAI: GPT-4o-mini", + "display_name": "OpenAI: GPT-4o-mini", "limit": { "context": 4096, "output": 4096 @@ -60709,9 +68995,9 @@ "type": "chat" }, { - "id": "google/gemma-3-12b-it", - "name": "Google: Gemma 3 12B", - "display_name": "Google: Gemma 3 12B", + "id": "openai/gpt-4o-mini-2024-07-18", + "name": "OpenAI: GPT-4o-mini (2024-07-18)", + "display_name": "OpenAI: GPT-4o-mini (2024-07-18)", "limit": { "context": 4096, "output": 4096 @@ -60723,9 +69009,9 @@ "type": "chat" }, { - "id": "google/gemma-3-27b-it", - "name": "Google: Gemma 3 27B", - "display_name": "Google: Gemma 3 27B", + "id": "openai/gpt-4o-mini-search-preview", + "name": "OpenAI: GPT-4o-mini Search Preview", + "display_name": "OpenAI: GPT-4o-mini Search Preview", "limit": { "context": 4096, "output": 4096 @@ -60737,9 +69023,9 @@ "type": "chat" }, { - "id": "google/gemma-3-4b-it", - "name": "Google: Gemma 3 4B", - "display_name": "Google: Gemma 3 4B", + "id": "openai/gpt-5", + "name": "OpenAI: GPT-5", + "display_name": "OpenAI: GPT-5", "limit": { "context": 4096, "output": 4096 @@ -60751,9 +69037,9 @@ "type": "chat" }, { - "id": "google/gemma-3n-e4b-it", - "name": "Google: Gemma 3n 4B", - "display_name": "Google: Gemma 3n 4B", + "id": "openai/gpt-5-chat", + "name": "OpenAI: GPT-5 Chat", + "display_name": "OpenAI: GPT-5 Chat", "limit": { "context": 4096, "output": 4096 @@ -60765,9 +69051,9 @@ "type": "chat" }, { - "id": "google/gemini-3-pro-image-preview", - "name": "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)", - "display_name": "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)", + "id": "openai/gpt-5-codex", + "name": "OpenAI: GPT-5 Codex", + "display_name": "OpenAI: GPT-5 Codex", "limit": { "context": 4096, "output": 4096 @@ -60779,9 +69065,9 @@ "type": "chat" }, { - "id": "ibm-granite/granite-4.0-h-micro", - "name": "IBM: Granite 4.0 Micro", - "display_name": "IBM: Granite 4.0 Micro", + "id": "openai/gpt-5-image", + "name": "OpenAI: GPT-5 Image", + "display_name": "OpenAI: GPT-5 Image", "limit": { "context": 4096, "output": 4096 @@ -60793,9 +69079,9 @@ "type": "chat" }, { - "id": "inception/mercury", - "name": "Inception: Mercury", - "display_name": "Inception: Mercury", + "id": "openai/gpt-5-image-mini", + "name": "OpenAI: GPT-5 Image Mini", + "display_name": "OpenAI: GPT-5 Image Mini", "limit": { "context": 4096, "output": 4096 @@ -60807,9 +69093,9 @@ "type": "chat" }, { - "id": "inception/mercury-coder", - "name": "Inception: Mercury Coder", - "display_name": "Inception: Mercury Coder", + "id": "openai/gpt-5-mini", + "name": "OpenAI: GPT-5 Mini", + "display_name": "OpenAI: GPT-5 Mini", "limit": { "context": 4096, "output": 4096 @@ -60821,9 +69107,9 @@ "type": "chat" }, { - "id": "inflection/inflection-3-pi", - "name": "Inflection: Inflection 3 Pi", - "display_name": "Inflection: Inflection 3 Pi", + "id": "openai/gpt-5-nano", + "name": "OpenAI: GPT-5 Nano", + "display_name": "OpenAI: GPT-5 Nano", "limit": { "context": 4096, "output": 4096 @@ -60835,9 +69121,9 @@ "type": "chat" }, { - "id": "inflection/inflection-3-productivity", - "name": "Inflection: Inflection 3 Productivity", - "display_name": "Inflection: Inflection 3 Productivity", + "id": "openai/gpt-5-pro", + "name": "OpenAI: GPT-5 Pro", + "display_name": "OpenAI: GPT-5 Pro", "limit": { "context": 4096, "output": 4096 @@ -60849,9 +69135,9 @@ "type": "chat" }, { - "id": "liquid/lfm-2.2-6b", - "name": "LiquidAI/LFM2-2.6B", - "display_name": "LiquidAI/LFM2-2.6B", + "id": "openai/gpt-5.1", + "name": "OpenAI: GPT-5.1", + "display_name": "OpenAI: GPT-5.1", "limit": { "context": 4096, "output": 4096 @@ -60863,9 +69149,9 @@ "type": "chat" }, { - "id": "liquid/lfm2-8b-a1b", - "name": "LiquidAI/LFM2-8B-A1B", - "display_name": "LiquidAI/LFM2-8B-A1B", + "id": "openai/gpt-5.1-chat", + "name": "OpenAI: GPT-5.1 Chat", + "display_name": "OpenAI: GPT-5.1 Chat", "limit": { "context": 4096, "output": 4096 @@ -60877,9 +69163,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-guard-3-8b", - "name": "Llama Guard 3 8B", - "display_name": "Llama Guard 3 8B", + "id": "openai/gpt-5.1-codex", + "name": "OpenAI: GPT-5.1-Codex", + "display_name": "OpenAI: GPT-5.1-Codex", "limit": { "context": 4096, "output": 4096 @@ -60891,9 +69177,9 @@ "type": "chat" }, { - "id": "anthracite-org/magnum-v4-72b", - "name": "Magnum v4 72B", - "display_name": "Magnum v4 72B", + "id": "openai/gpt-5.1-codex-max", + "name": "OpenAI: GPT-5.1-Codex-Max", + "display_name": "OpenAI: GPT-5.1-Codex-Max", "limit": { "context": 4096, "output": 4096 @@ -60905,9 +69191,9 @@ "type": "chat" }, { - "id": "mancer/weaver", - "name": "Mancer: Weaver (alpha)", - "display_name": "Mancer: Weaver (alpha)", + "id": "openai/gpt-5.1-codex-mini", + "name": "OpenAI: GPT-5.1-Codex-Mini", + "display_name": "OpenAI: GPT-5.1-Codex-Mini", "limit": { "context": 4096, "output": 4096 @@ -60919,9 +69205,9 @@ "type": "chat" }, { - "id": "meituan/longcat-flash-chat", - "name": "Meituan: LongCat Flash Chat", - "display_name": "Meituan: LongCat Flash Chat", + "id": "openai/gpt-5.2", + "name": "OpenAI: GPT-5.2", + "display_name": "OpenAI: GPT-5.2", "limit": { "context": 4096, "output": 4096 @@ -60933,9 +69219,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-3-70b-instruct", - "name": "Meta: Llama 3 70B Instruct", - "display_name": "Meta: Llama 3 70B Instruct", + "id": "openai/gpt-5.2-chat", + "name": "OpenAI: GPT-5.2 Chat", + "display_name": "OpenAI: GPT-5.2 Chat", "limit": { "context": 4096, "output": 4096 @@ -60947,9 +69233,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-3-8b-instruct", - "name": "Meta: Llama 3 8B Instruct", - "display_name": "Meta: Llama 3 8B Instruct", + "id": "openai/gpt-5.2-pro", + "name": "OpenAI: GPT-5.2 Pro", + "display_name": "OpenAI: GPT-5.2 Pro", "limit": { "context": 4096, "output": 4096 @@ -60961,9 +69247,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-3.1-405b", - "name": "Meta: Llama 3.1 405B (base)", - "display_name": "Meta: Llama 3.1 405B (base)", + "id": "openai/gpt-oss-120b", + "name": "OpenAI: gpt-oss-120b", + "display_name": "OpenAI: gpt-oss-120b", "limit": { "context": 4096, "output": 4096 @@ -60975,9 +69261,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-3.1-405b-instruct", - "name": "Meta: Llama 3.1 405B Instruct", - "display_name": "Meta: Llama 3.1 405B Instruct", + "id": "openai/gpt-oss-120b:exacto", + "name": "OpenAI: gpt-oss-120b (exacto)", + "display_name": "OpenAI: gpt-oss-120b (exacto)", "limit": { "context": 4096, "output": 4096 @@ -60989,9 +69275,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-3.1-70b-instruct", - "name": "Meta: Llama 3.1 70B Instruct", - "display_name": "Meta: Llama 3.1 70B Instruct", + "id": "openai/gpt-oss-20b", + "name": "OpenAI: gpt-oss-20b", + "display_name": "OpenAI: gpt-oss-20b", "limit": { "context": 4096, "output": 4096 @@ -61003,9 +69289,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-3.1-8b-instruct", - "name": "Meta: Llama 3.1 8B Instruct", - "display_name": "Meta: Llama 3.1 8B Instruct", + "id": "openai/gpt-oss-safeguard-20b", + "name": "OpenAI: gpt-oss-safeguard-20b", + "display_name": "OpenAI: gpt-oss-safeguard-20b", "limit": { "context": 4096, "output": 4096 @@ -61017,9 +69303,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-3.2-11b-vision-instruct", - "name": "Meta: Llama 3.2 11B Vision Instruct", - "display_name": "Meta: Llama 3.2 11B Vision Instruct", + "id": "openai/o1", + "name": "OpenAI: o1", + "display_name": "OpenAI: o1", "limit": { "context": 4096, "output": 4096 @@ -61031,9 +69317,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-3.2-1b-instruct", - "name": "Meta: Llama 3.2 1B Instruct", - "display_name": "Meta: Llama 3.2 1B Instruct", + "id": "openai/o1-pro", + "name": "OpenAI: o1-pro", + "display_name": "OpenAI: o1-pro", "limit": { "context": 4096, "output": 4096 @@ -61045,9 +69331,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-3.2-3b-instruct", - "name": "Meta: Llama 3.2 3B Instruct", - "display_name": "Meta: Llama 3.2 3B Instruct", + "id": "openai/o3", + "name": "OpenAI: o3", + "display_name": "OpenAI: o3", "limit": { "context": 4096, "output": 4096 @@ -61059,9 +69345,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-3.2-90b-vision-instruct", - "name": "Meta: Llama 3.2 90B Vision Instruct", - "display_name": "Meta: Llama 3.2 90B Vision Instruct", + "id": "openai/o3-deep-research", + "name": "OpenAI: o3 Deep Research", + "display_name": "OpenAI: o3 Deep Research", "limit": { "context": 4096, "output": 4096 @@ -61073,9 +69359,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-3.3-70b-instruct", - "name": "Meta: Llama 3.3 70B Instruct", - "display_name": "Meta: Llama 3.3 70B Instruct", + "id": "openai/o3-mini", + "name": "OpenAI: o3 Mini", + "display_name": "OpenAI: o3 Mini", "limit": { "context": 4096, "output": 4096 @@ -61087,9 +69373,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-4-maverick", - "name": "Meta: Llama 4 Maverick", - "display_name": "Meta: Llama 4 Maverick", + "id": "openai/o3-mini-high", + "name": "OpenAI: o3 Mini High", + "display_name": "OpenAI: o3 Mini High", "limit": { "context": 4096, "output": 4096 @@ -61101,9 +69387,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-4-scout", - "name": "Meta: Llama 4 Scout", - "display_name": "Meta: Llama 4 Scout", + "id": "openai/o3-pro", + "name": "OpenAI: o3 Pro", + "display_name": "OpenAI: o3 Pro", "limit": { "context": 4096, "output": 4096 @@ -61115,9 +69401,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-guard-4-12b", - "name": "Meta: Llama Guard 4 12B", - "display_name": "Meta: Llama Guard 4 12B", + "id": "openai/o4-mini", + "name": "OpenAI: o4 Mini", + "display_name": "OpenAI: o4 Mini", "limit": { "context": 4096, "output": 4096 @@ -61129,9 +69415,9 @@ "type": "chat" }, { - "id": "meta-llama/llama-guard-2-8b", - "name": "Meta: LlamaGuard 2 8B", - "display_name": "Meta: LlamaGuard 2 8B", + "id": "openai/o4-mini-deep-research", + "name": "OpenAI: o4 Mini Deep Research", + "display_name": "OpenAI: o4 Mini Deep Research", "limit": { "context": 4096, "output": 4096 @@ -61143,9 +69429,9 @@ "type": "chat" }, { - "id": "microsoft/phi-4", - "name": "Microsoft: Phi 4", - "display_name": "Microsoft: Phi 4", + "id": "openai/o4-mini-high", + "name": "OpenAI: o4 Mini High", + "display_name": "OpenAI: o4 Mini High", "limit": { "context": 4096, "output": 4096 @@ -61157,9 +69443,9 @@ "type": "chat" }, { - "id": "microsoft/phi-4-multimodal-instruct", - "name": "Microsoft: Phi 4 Multimodal Instruct", - "display_name": "Microsoft: Phi 4 Multimodal Instruct", + "id": "qwen/qwen-plus-2025-07-28", + "name": "Qwen: Qwen Plus 0728", + "display_name": "Qwen: Qwen Plus 0728", "limit": { "context": 4096, "output": 4096 @@ -61171,9 +69457,9 @@ "type": "chat" }, { - "id": "microsoft/phi-4-reasoning-plus", - "name": "Microsoft: Phi 4 Reasoning Plus", - "display_name": "Microsoft: Phi 4 Reasoning Plus", + "id": "qwen/qwen-plus-2025-07-28:thinking", + "name": "Qwen: Qwen Plus 0728 (thinking)", + "display_name": "Qwen: Qwen Plus 0728 (thinking)", "limit": { "context": 4096, "output": 4096 @@ -61185,9 +69471,9 @@ "type": "chat" }, { - "id": "microsoft/phi-3-medium-128k-instruct", - "name": "Microsoft: Phi-3 Medium 128K Instruct", - "display_name": "Microsoft: Phi-3 Medium 128K Instruct", + "id": "qwen/qwen-vl-max", + "name": "Qwen: Qwen VL Max", + "display_name": "Qwen: Qwen VL Max", "limit": { "context": 4096, "output": 4096 @@ -61199,9 +69485,9 @@ "type": "chat" }, { - "id": "microsoft/phi-3-mini-128k-instruct", - "name": "Microsoft: Phi-3 Mini 128K Instruct", - "display_name": "Microsoft: Phi-3 Mini 128K Instruct", + "id": "qwen/qwen-vl-plus", + "name": "Qwen: Qwen VL Plus", + "display_name": "Qwen: Qwen VL Plus", "limit": { "context": 4096, "output": 4096 @@ -61213,9 +69499,9 @@ "type": "chat" }, { - "id": "microsoft/phi-3.5-mini-128k-instruct", - "name": "Microsoft: Phi-3.5 Mini 128K Instruct", - "display_name": "Microsoft: Phi-3.5 Mini 128K Instruct", + "id": "qwen/qwen-max", + "name": "Qwen: Qwen-Max", + "display_name": "Qwen: Qwen-Max", "limit": { "context": 4096, "output": 4096 @@ -61227,9 +69513,9 @@ "type": "chat" }, { - "id": "minimax/minimax-m1", - "name": "MiniMax: MiniMax M1", - "display_name": "MiniMax: MiniMax M1", + "id": "qwen/qwen-plus", + "name": "Qwen: Qwen-Plus", + "display_name": "Qwen: Qwen-Plus", "limit": { "context": 4096, "output": 4096 @@ -61241,9 +69527,9 @@ "type": "chat" }, { - "id": "minimax/minimax-m2", - "name": "MiniMax: MiniMax M2", - "display_name": "MiniMax: MiniMax M2", + "id": "qwen/qwen-turbo", + "name": "Qwen: Qwen-Turbo", + "display_name": "Qwen: Qwen-Turbo", "limit": { "context": 4096, "output": 4096 @@ -61255,9 +69541,9 @@ "type": "chat" }, { - "id": "minimax/minimax-01", - "name": "MiniMax: MiniMax-01", - "display_name": "MiniMax: MiniMax-01", + "id": "qwen/qwen-2.5-7b-instruct", + "name": "Qwen: Qwen2.5 7B Instruct", + "display_name": "Qwen: Qwen2.5 7B Instruct", "limit": { "context": 4096, "output": 4096 @@ -61269,9 +69555,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-large", - "name": "Mistral Large", - "display_name": "Mistral Large", + "id": "qwen/qwen2.5-coder-7b-instruct", + "name": "Qwen: Qwen2.5 Coder 7B Instruct", + "display_name": "Qwen: Qwen2.5 Coder 7B Instruct", "limit": { "context": 4096, "output": 4096 @@ -61283,9 +69569,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-large-2407", - "name": "Mistral Large 2407", - "display_name": "Mistral Large 2407", + "id": "qwen/qwen2.5-vl-32b-instruct", + "name": "Qwen: Qwen2.5 VL 32B Instruct", + "display_name": "Qwen: Qwen2.5 VL 32B Instruct", "limit": { "context": 4096, "output": 4096 @@ -61297,9 +69583,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-large-2411", - "name": "Mistral Large 2411", - "display_name": "Mistral Large 2411", + "id": "qwen/qwen2.5-vl-72b-instruct", + "name": "Qwen: Qwen2.5 VL 72B Instruct", + "display_name": "Qwen: Qwen2.5 VL 72B Instruct", "limit": { "context": 4096, "output": 4096 @@ -61311,9 +69597,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-tiny", - "name": "Mistral Tiny", - "display_name": "Mistral Tiny", + "id": "qwen/qwen-2.5-vl-7b-instruct", + "name": "Qwen: Qwen2.5-VL 7B Instruct", + "display_name": "Qwen: Qwen2.5-VL 7B Instruct", "limit": { "context": 4096, "output": 4096 @@ -61325,9 +69611,9 @@ "type": "chat" }, { - "id": "mistralai/codestral-2508", - "name": "Mistral: Codestral 2508", - "display_name": "Mistral: Codestral 2508", + "id": "qwen/qwen3-14b", + "name": "Qwen: Qwen3 14B", + "display_name": "Qwen: Qwen3 14B", "limit": { "context": 4096, "output": 4096 @@ -61339,9 +69625,191 @@ "type": "chat" }, { - "id": "mistralai/devstral-2512", - "name": "Mistral: Devstral 2 2512", - "display_name": "Mistral: Devstral 2 2512", + "id": "qwen/qwen3-235b-a22b", + "name": "Qwen: Qwen3 235B A22B", + "display_name": "Qwen: Qwen3 235B A22B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-235b-a22b-2507", + "name": "Qwen: Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen: Qwen3 235B A22B Instruct 2507", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-235b-a22b-thinking-2507", + "name": "Qwen: Qwen3 235B A22B Thinking 2507", + "display_name": "Qwen: Qwen3 235B A22B Thinking 2507", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-30b-a3b", + "name": "Qwen: Qwen3 30B A3B", + "display_name": "Qwen: Qwen3 30B A3B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-30b-a3b-instruct-2507", + "name": "Qwen: Qwen3 30B A3B Instruct 2507", + "display_name": "Qwen: Qwen3 30B A3B Instruct 2507", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-30b-a3b-thinking-2507", + "name": "Qwen: Qwen3 30B A3B Thinking 2507", + "display_name": "Qwen: Qwen3 30B A3B Thinking 2507", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-32b", + "name": "Qwen: Qwen3 32B", + "display_name": "Qwen: Qwen3 32B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-8b", + "name": "Qwen: Qwen3 8B", + "display_name": "Qwen: Qwen3 8B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-coder-30b-a3b-instruct", + "name": "Qwen: Qwen3 Coder 30B A3B Instruct", + "display_name": "Qwen: Qwen3 Coder 30B A3B Instruct", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-coder", + "name": "Qwen: Qwen3 Coder 480B A35B", + "display_name": "Qwen: Qwen3 Coder 480B A35B", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-coder:exacto", + "name": "Qwen: Qwen3 Coder 480B A35B (exacto)", + "display_name": "Qwen: Qwen3 Coder 480B A35B (exacto)", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-coder-flash", + "name": "Qwen: Qwen3 Coder Flash", + "display_name": "Qwen: Qwen3 Coder Flash", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-coder-plus", + "name": "Qwen: Qwen3 Coder Plus", + "display_name": "Qwen: Qwen3 Coder Plus", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, + { + "id": "qwen/qwen3-max", + "name": "Qwen: Qwen3 Max", + "display_name": "Qwen: Qwen3 Max", "limit": { "context": 4096, "output": 4096 @@ -61353,9 +69821,9 @@ "type": "chat" }, { - "id": "mistralai/devstral-medium", - "name": "Mistral: Devstral Medium", - "display_name": "Mistral: Devstral Medium", + "id": "qwen/qwen3-next-80b-a3b-instruct", + "name": "Qwen: Qwen3 Next 80B A3B Instruct", + "display_name": "Qwen: Qwen3 Next 80B A3B Instruct", "limit": { "context": 4096, "output": 4096 @@ -61367,9 +69835,9 @@ "type": "chat" }, { - "id": "mistralai/devstral-small", - "name": "Mistral: Devstral Small 1.1", - "display_name": "Mistral: Devstral Small 1.1", + "id": "qwen/qwen3-next-80b-a3b-thinking", + "name": "Qwen: Qwen3 Next 80B A3B Thinking", + "display_name": "Qwen: Qwen3 Next 80B A3B Thinking", "limit": { "context": 4096, "output": 4096 @@ -61381,9 +69849,9 @@ "type": "chat" }, { - "id": "mistralai/devstral-small-2505", - "name": "Mistral: Devstral Small 2505", - "display_name": "Mistral: Devstral Small 2505", + "id": "qwen/qwen3-vl-235b-a22b-instruct", + "name": "Qwen: Qwen3 VL 235B A22B Instruct", + "display_name": "Qwen: Qwen3 VL 235B A22B Instruct", "limit": { "context": 4096, "output": 4096 @@ -61395,9 +69863,9 @@ "type": "chat" }, { - "id": "mistralai/ministral-14b-2512", - "name": "Mistral: Ministral 3 14B 2512", - "display_name": "Mistral: Ministral 3 14B 2512", + "id": "qwen/qwen3-vl-235b-a22b-thinking", + "name": "Qwen: Qwen3 VL 235B A22B Thinking", + "display_name": "Qwen: Qwen3 VL 235B A22B Thinking", "limit": { "context": 4096, "output": 4096 @@ -61409,9 +69877,9 @@ "type": "chat" }, { - "id": "mistralai/ministral-3b-2512", - "name": "Mistral: Ministral 3 3B 2512", - "display_name": "Mistral: Ministral 3 3B 2512", + "id": "qwen/qwen3-vl-30b-a3b-instruct", + "name": "Qwen: Qwen3 VL 30B A3B Instruct", + "display_name": "Qwen: Qwen3 VL 30B A3B Instruct", "limit": { "context": 4096, "output": 4096 @@ -61423,9 +69891,9 @@ "type": "chat" }, { - "id": "mistralai/ministral-8b-2512", - "name": "Mistral: Ministral 3 8B 2512", - "display_name": "Mistral: Ministral 3 8B 2512", + "id": "qwen/qwen3-vl-30b-a3b-thinking", + "name": "Qwen: Qwen3 VL 30B A3B Thinking", + "display_name": "Qwen: Qwen3 VL 30B A3B Thinking", "limit": { "context": 4096, "output": 4096 @@ -61437,9 +69905,9 @@ "type": "chat" }, { - "id": "mistralai/ministral-3b", - "name": "Mistral: Ministral 3B", - "display_name": "Mistral: Ministral 3B", + "id": "qwen/qwen3-vl-32b-instruct", + "name": "Qwen: Qwen3 VL 32B Instruct", + "display_name": "Qwen: Qwen3 VL 32B Instruct", "limit": { "context": 4096, "output": 4096 @@ -61451,9 +69919,9 @@ "type": "chat" }, { - "id": "mistralai/ministral-8b", - "name": "Mistral: Ministral 8B", - "display_name": "Mistral: Ministral 8B", + "id": "qwen/qwen3-vl-8b-instruct", + "name": "Qwen: Qwen3 VL 8B Instruct", + "display_name": "Qwen: Qwen3 VL 8B Instruct", "limit": { "context": 4096, "output": 4096 @@ -61465,9 +69933,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-7b-instruct", - "name": "Mistral: Mistral 7B Instruct", - "display_name": "Mistral: Mistral 7B Instruct", + "id": "qwen/qwen3-vl-8b-thinking", + "name": "Qwen: Qwen3 VL 8B Thinking", + "display_name": "Qwen: Qwen3 VL 8B Thinking", "limit": { "context": 4096, "output": 4096 @@ -61479,9 +69947,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-7b-instruct-v0.1", - "name": "Mistral: Mistral 7B Instruct v0.1", - "display_name": "Mistral: Mistral 7B Instruct v0.1", + "id": "qwen/qwq-32b", + "name": "Qwen: QwQ 32B", + "display_name": "Qwen: QwQ 32B", "limit": { "context": 4096, "output": 4096 @@ -61493,9 +69961,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-7b-instruct-v0.2", - "name": "Mistral: Mistral 7B Instruct v0.2", - "display_name": "Mistral: Mistral 7B Instruct v0.2", + "id": "qwen/qwen-2.5-72b-instruct", + "name": "Qwen2.5 72B Instruct", + "display_name": "Qwen2.5 72B Instruct", "limit": { "context": 4096, "output": 4096 @@ -61507,9 +69975,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-7b-instruct-v0.3", - "name": "Mistral: Mistral 7B Instruct v0.3", - "display_name": "Mistral: Mistral 7B Instruct v0.3", + "id": "qwen/qwen-2.5-coder-32b-instruct", + "name": "Qwen2.5 Coder 32B Instruct", + "display_name": "Qwen2.5 Coder 32B Instruct", "limit": { "context": 4096, "output": 4096 @@ -61521,9 +69989,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-large-2512", - "name": "Mistral: Mistral Large 3 2512", - "display_name": "Mistral: Mistral Large 3 2512", + "id": "x-ai/grok-code-fast-1", + "name": "x-ai/grok-code-fast-1", + "display_name": "x-ai/grok-code-fast-1", "limit": { "context": 4096, "output": 4096 @@ -61535,9 +70003,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-medium-3", - "name": "Mistral: Mistral Medium 3", - "display_name": "Mistral: Mistral Medium 3", + "id": "x-ai/grok-3", + "name": "xAI: Grok 3", + "display_name": "xAI: Grok 3", "limit": { "context": 4096, "output": 4096 @@ -61549,9 +70017,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-medium-3.1", - "name": "Mistral: Mistral Medium 3.1", - "display_name": "Mistral: Mistral Medium 3.1", + "id": "x-ai/grok-3-beta", + "name": "xAI: Grok 3 Beta", + "display_name": "xAI: Grok 3 Beta", "limit": { "context": 4096, "output": 4096 @@ -61563,9 +70031,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-nemo", - "name": "Mistral: Mistral Nemo", - "display_name": "Mistral: Mistral Nemo", + "id": "x-ai/grok-3-mini", + "name": "xAI: Grok 3 Mini", + "display_name": "xAI: Grok 3 Mini", "limit": { "context": 4096, "output": 4096 @@ -61577,9 +70045,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-small-24b-instruct-2501", - "name": "Mistral: Mistral Small 3", - "display_name": "Mistral: Mistral Small 3", + "id": "x-ai/grok-3-mini-beta", + "name": "xAI: Grok 3 Mini Beta", + "display_name": "xAI: Grok 3 Mini Beta", "limit": { "context": 4096, "output": 4096 @@ -61591,9 +70059,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-small-3.1-24b-instruct", - "name": "Mistral: Mistral Small 3.1 24B", - "display_name": "Mistral: Mistral Small 3.1 24B", + "id": "x-ai/grok-4", + "name": "xAI: Grok 4", + "display_name": "xAI: Grok 4", "limit": { "context": 4096, "output": 4096 @@ -61605,9 +70073,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-small-3.2-24b-instruct", - "name": "Mistral: Mistral Small 3.2 24B", - "display_name": "Mistral: Mistral Small 3.2 24B", + "id": "x-ai/grok-4-fast", + "name": "xAI: Grok 4 Fast", + "display_name": "xAI: Grok 4 Fast", "limit": { "context": 4096, "output": 4096 @@ -61619,9 +70087,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-small-creative", - "name": "Mistral: Mistral Small Creative", - "display_name": "Mistral: Mistral Small Creative", + "id": "x-ai/grok-4.1-fast", + "name": "xAI: Grok 4.1 Fast", + "display_name": "xAI: Grok 4.1 Fast", "limit": { "context": 4096, "output": 4096 @@ -61633,9 +70101,9 @@ "type": "chat" }, { - "id": "mistralai/mixtral-8x22b-instruct", - "name": "Mistral: Mixtral 8x22B Instruct", - "display_name": "Mistral: Mixtral 8x22B Instruct", + "id": "z-ai/glm-4.7", + "name": "z-ai/glm-4.7", + "display_name": "z-ai/glm-4.7", "limit": { "context": 4096, "output": 4096 @@ -61647,9 +70115,9 @@ "type": "chat" }, { - "id": "mistralai/mixtral-8x7b-instruct", - "name": "Mistral: Mixtral 8x7B Instruct", - "display_name": "Mistral: Mixtral 8x7B Instruct", + "id": "z-ai/glm-4-32b", + "name": "Z.AI: GLM 4 32B", + "display_name": "Z.AI: GLM 4 32B", "limit": { "context": 4096, "output": 4096 @@ -61661,9 +70129,9 @@ "type": "chat" }, { - "id": "mistralai/pixtral-12b", - "name": "Mistral: Pixtral 12B", - "display_name": "Mistral: Pixtral 12B", + "id": "z-ai/glm-4.5", + "name": "Z.AI: GLM 4.5", + "display_name": "Z.AI: GLM 4.5", "limit": { "context": 4096, "output": 4096 @@ -61675,9 +70143,9 @@ "type": "chat" }, { - "id": "mistralai/pixtral-large-2411", - "name": "Mistral: Pixtral Large 2411", - "display_name": "Mistral: Pixtral Large 2411", + "id": "z-ai/glm-4.5-air", + "name": "Z.AI: GLM 4.5 Air", + "display_name": "Z.AI: GLM 4.5 Air", "limit": { "context": 4096, "output": 4096 @@ -61689,9 +70157,9 @@ "type": "chat" }, { - "id": "mistralai/mistral-saba", - "name": "Mistral: Saba", - "display_name": "Mistral: Saba", + "id": "z-ai/glm-4.5v", + "name": "Z.AI: GLM 4.5V", + "display_name": "Z.AI: GLM 4.5V", "limit": { "context": 4096, "output": 4096 @@ -61703,9 +70171,9 @@ "type": "chat" }, { - "id": "mistralai/voxtral-small-24b-2507", - "name": "Mistral: Voxtral Small 24B 2507", - "display_name": "Mistral: Voxtral Small 24B 2507", + "id": "z-ai/glm-4.6", + "name": "Z.AI: GLM 4.6", + "display_name": "Z.AI: GLM 4.6", "limit": { "context": 4096, "output": 4096 @@ -61717,9 +70185,9 @@ "type": "chat" }, { - "id": "moonshotai/kimi-dev-72b", - "name": "MoonshotAI: Kimi Dev 72B", - "display_name": "MoonshotAI: Kimi Dev 72B", + "id": "z-ai/glm-4.6:exacto", + "name": "Z.AI: GLM 4.6 (exacto)", + "display_name": "Z.AI: GLM 4.6 (exacto)", "limit": { "context": 4096, "output": 4096 @@ -61731,9 +70199,9 @@ "type": "chat" }, { - "id": "moonshotai/kimi-k2", - "name": "MoonshotAI: Kimi K2 0711", - "display_name": "MoonshotAI: Kimi K2 0711", + "id": "z-ai/glm-4.6v", + "name": "Z.AI: GLM 4.6V", + "display_name": "Z.AI: GLM 4.6V", "limit": { "context": 4096, "output": 4096 @@ -61743,2279 +70211,3870 @@ "supported": false }, "type": "chat" - }, + } + ] + }, + "aihubmix": { + "id": "aihubmix", + "name": "AIHubMix", + "display_name": "AIHubMix", + "models": [ { - "id": "moonshotai/kimi-k2-0905", - "name": "MoonshotAI: Kimi K2 0905", - "display_name": "MoonshotAI: Kimi K2 0905", + "id": "gemini-3-flash-preview", + "name": "gemini-3-flash-preview", + "display_name": "gemini-3-flash-preview", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1048576, + "output": 1048576 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + }, "type": "chat" }, { - "id": "moonshotai/kimi-k2-0905:exacto", - "name": "MoonshotAI: Kimi K2 0905 (exacto)", - "display_name": "MoonshotAI: Kimi K2 0905 (exacto)", + "id": "gemini-3-flash-preview-search", + "name": "gemini-3-flash-preview-search", + "display_name": "gemini-3-flash-preview-search", + "modalities": { + "input": [ + "text", + "image", + "audio" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 }, "type": "chat" }, { - "id": "moonshotai/kimi-k2-thinking", - "name": "MoonshotAI: Kimi K2 Thinking", - "display_name": "MoonshotAI: Kimi K2 Thinking", + "id": "claude-opus-4-5", + "name": "claude-opus-4-5", + "display_name": "claude-opus-4-5", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 200000, + "output": 200000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5 }, "type": "chat" }, { - "id": "morph/morph-v3-fast", - "name": "Morph: Morph V3 Fast", - "display_name": "Morph: Morph V3 Fast", + "id": "glm-4.7", + "name": "glm-4.7", + "display_name": "glm-4.7", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 200000, + "output": 200000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.273974, + "output": 1.095896, + "cache_read": 0.054795 }, "type": "chat" }, { - "id": "morph/morph-v3-large", - "name": "Morph: Morph V3 Large", - "display_name": "Morph: Morph V3 Large", + "id": "coding-glm-4.7-free", + "name": "coding-glm-4.7-free", + "display_name": "coding-glm-4.7-free", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 }, "type": "chat" }, { - "id": "gryphe/mythomax-l2-13b", - "name": "MythoMax 13B", - "display_name": "MythoMax 13B", + "id": "gemini-3-pro-image-preview", + "name": "gemini-3-pro-image-preview", + "display_name": "gemini-3-pro-image-preview", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 2, + "output": 12, + "cache_read": 2 + }, + "type": "imageGeneration" }, { - "id": "neversleep/llama-3.1-lumimaid-8b", - "name": "NeverSleep: Lumimaid v0.2 8B", - "display_name": "NeverSleep: Lumimaid v0.2 8B", + "id": "gpt-image-1.5", + "name": "gpt-image-1.5", + "display_name": "gpt-image-1.5", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 5, + "output": 10, + "cache_read": 5 + }, + "type": "imageGeneration" + }, + { + "id": "gpt-5.2", + "name": "gpt-5.2", + "display_name": "gpt-5.2", + "modalities": { + "input": [ + "text", + "image" + ] + }, + "limit": { + "context": 400000, + "output": 400000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, "type": "chat" }, { - "id": "neversleep/noromaid-20b", - "name": "Noromaid 20B", - "display_name": "Noromaid 20B", + "id": "gpt-5.2-chat-latest", + "name": "gpt-5.2-chat-latest", + "display_name": "gpt-5.2-chat-latest", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 128000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, "type": "chat" }, { - "id": "nousresearch/deephermes-3-mistral-24b-preview", - "name": "Nous: DeepHermes 3 Mistral 24B Preview", - "display_name": "Nous: DeepHermes 3 Mistral 24B Preview", + "id": "gemini-3-pro-preview", + "name": "gemini-3-pro-preview", + "display_name": "gemini-3-pro-preview", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2 }, "type": "chat" }, { - "id": "nousresearch/hermes-3-llama-3.1-405b", - "name": "Nous: Hermes 3 405B Instruct", - "display_name": "Nous: Hermes 3 405B Instruct", + "id": "gpt-5.2-pro", + "name": "gpt-5.2-pro", + "display_name": "gpt-5.2-pro", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 400000, + "output": 400000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 21, + "output": 168, + "cache_read": 2.1 }, "type": "chat" }, { - "id": "nousresearch/hermes-3-llama-3.1-70b", - "name": "Nous: Hermes 3 70B Instruct", - "display_name": "Nous: Hermes 3 70B Instruct", + "id": "gpt-5.1", + "name": "gpt-5.1", + "display_name": "gpt-5.1", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 400000, + "output": 400000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 }, "type": "chat" }, { - "id": "nousresearch/hermes-4-405b", - "name": "Nous: Hermes 4 405B", - "display_name": "Nous: Hermes 4 405B", + "id": "gpt-5.1-codex-max", + "name": "gpt-5.1-codex-max", + "display_name": "gpt-5.1-codex-max", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 400000, + "output": 400000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 }, "type": "chat" }, { - "id": "nousresearch/hermes-4-70b", - "name": "Nous: Hermes 4 70B", - "display_name": "Nous: Hermes 4 70B", + "id": "gemini-3-pro-preview-search", + "name": "gemini-3-pro-preview-search", + "display_name": "gemini-3-pro-preview-search", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2 }, "type": "chat" }, { - "id": "nousresearch/hermes-2-pro-llama-3-8b", - "name": "NousResearch: Hermes 2 Pro - Llama-3 8B", - "display_name": "NousResearch: Hermes 2 Pro - Llama-3 8B", + "id": "gpt-5.1-chat-latest", + "name": "gpt-5.1-chat-latest", + "display_name": "gpt-5.1-chat-latest", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 128000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, "type": "chat" }, { - "id": "nvidia/llama-3.1-nemotron-70b-instruct", - "name": "NVIDIA: Llama 3.1 Nemotron 70B Instruct", - "display_name": "NVIDIA: Llama 3.1 Nemotron 70B Instruct", + "id": "gpt-5.1-codex", + "name": "gpt-5.1-codex", + "display_name": "gpt-5.1-codex", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 400000, + "output": 400000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 }, "type": "chat" }, { - "id": "nvidia/llama-3.1-nemotron-ultra-253b-v1", - "name": "NVIDIA: Llama 3.1 Nemotron Ultra 253B v1", - "display_name": "NVIDIA: Llama 3.1 Nemotron Ultra 253B v1", + "id": "gpt-5.1-codex-mini", + "name": "gpt-5.1-codex-mini", + "display_name": "gpt-5.1-codex-mini", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 400000, + "output": 400000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 }, "type": "chat" }, { - "id": "nvidia/llama-3.3-nemotron-super-49b-v1.5", - "name": "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5", - "display_name": "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5", + "id": "doubao-seed-1-8", + "name": "doubao-seed-1-8", + "display_name": "doubao-seed-1-8", + "modalities": { + "input": [ + "text", + "image", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.119, + "output": 0.2975, + "cache_read": 0.0238 }, "type": "chat" }, { - "id": "nvidia/nemotron-nano-12b-v2-vl", - "name": "NVIDIA: Nemotron Nano 12B 2 VL", - "display_name": "NVIDIA: Nemotron Nano 12B 2 VL", + "id": "claude-haiku-4-5", + "name": "claude-haiku-4-5", + "display_name": "claude-haiku-4-5", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 204800, + "output": 204800 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 1.1, + "output": 5.5, + "cache_read": 0.11 }, "type": "chat" }, { - "id": "nvidia/nemotron-nano-9b-v2", - "name": "NVIDIA: Nemotron Nano 9B V2", - "display_name": "NVIDIA: Nemotron Nano 9B V2", + "id": "claude-sonnet-4-5", + "name": "claude-sonnet-4-5", + "display_name": "claude-sonnet-4-5", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1000000, + "output": 1000000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 3.3, + "output": 16.5, + "cache_read": 0.33 }, "type": "chat" }, { - "id": "openai/chatgpt-4o-latest", - "name": "OpenAI: ChatGPT-4o", - "display_name": "OpenAI: ChatGPT-4o", + "id": "mistral-large-3", + "name": "mistral-large-3", + "display_name": "mistral-large-3", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.5, + "output": 1.5 + }, "type": "chat" }, { - "id": "openai/codex-mini", - "name": "OpenAI: Codex Mini", - "display_name": "OpenAI: Codex Mini", + "id": "gemini-2.5-flash-image", + "name": "gemini-2.5-flash-image", + "display_name": "gemini-2.5-flash-image", + "modalities": { + "input": [ + "image", + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 32800, + "output": 32800 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 0.3, + "output": 2.499, + "cache_read": 0.3 + }, + "type": "imageGeneration" }, { - "id": "openai/gpt-3.5-turbo", - "name": "OpenAI: GPT-3.5 Turbo", - "display_name": "OpenAI: GPT-3.5 Turbo", + "id": "grok-4-1-fast-non-reasoning", + "name": "grok-4-1-fast-non-reasoning", + "display_name": "grok-4-1-fast-non-reasoning", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 2000000, + "output": 2000000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 }, "type": "chat" }, { - "id": "openai/gpt-3.5-turbo-0613", - "name": "OpenAI: GPT-3.5 Turbo (older v0613)", - "display_name": "OpenAI: GPT-3.5 Turbo (older v0613)", + "id": "grok-4-1-fast-reasoning", + "name": "grok-4-1-fast-reasoning", + "display_name": "grok-4-1-fast-reasoning", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 2000000, + "output": 2000000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 }, "type": "chat" }, { - "id": "openai/gpt-3.5-turbo-16k", - "name": "OpenAI: GPT-3.5 Turbo 16k", - "display_name": "OpenAI: GPT-3.5 Turbo 16k", + "id": "mimo-v2-flash", + "name": "mimo-v2-flash", + "display_name": "mimo-v2-flash", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.1918, + "output": 0.5754, + "cache_read": 0.03836 + }, "type": "chat" }, { - "id": "openai/gpt-3.5-turbo-instruct", - "name": "OpenAI: GPT-3.5 Turbo Instruct", - "display_name": "OpenAI: GPT-3.5 Turbo Instruct", + "id": "web-gpt-image-1.5", + "name": "web-gpt-image-1.5", + "display_name": "web-gpt-image-1.5", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 3, + "output": 3, + "cache_read": 0 + }, + "type": "imageGeneration" }, { - "id": "openai/gpt-4", - "name": "OpenAI: GPT-4", - "display_name": "OpenAI: GPT-4", + "id": "gpt-5", + "name": "gpt-5", + "display_name": "gpt-5", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 400000, + "output": 400000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 }, "type": "chat" }, { - "id": "openai/gpt-4-0314", - "name": "OpenAI: GPT-4 (older v0314)", - "display_name": "OpenAI: GPT-4 (older v0314)", + "id": "deepseek-v3.2-fast", + "name": "deepseek-v3.2-fast", + "display_name": "deepseek-v3.2-fast", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 128000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 1.096, + "output": 3.288, + "cache_read": 1.096 + }, "type": "chat" }, { - "id": "openai/gpt-4-turbo", - "name": "OpenAI: GPT-4 Turbo", - "display_name": "OpenAI: GPT-4 Turbo", + "id": "deepseek-v3.2", + "name": "deepseek-v3.2", + "display_name": "deepseek-v3.2", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 128000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.302, + "output": 0.453, + "cache_read": 0.0302 + }, "type": "chat" }, { - "id": "openai/gpt-4-1106-preview", - "name": "OpenAI: GPT-4 Turbo (older v1106)", - "display_name": "OpenAI: GPT-4 Turbo (older v1106)", + "id": "deepseek-v3.2-speciale", + "name": "deepseek-v3.2-speciale", + "display_name": "deepseek-v3.2-speciale", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 128000 }, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.302, + "output": 0.453, + "cache_read": 0.0302 }, "type": "chat" }, { - "id": "openai/gpt-4-turbo-preview", - "name": "OpenAI: GPT-4 Turbo Preview", - "display_name": "OpenAI: GPT-4 Turbo Preview", + "id": "deepseek-v3.2-think", + "name": "deepseek-v3.2-think", + "display_name": "deepseek-v3.2-think", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 128000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.302, + "output": 0.453, + "cache_read": 0.0302 + }, "type": "chat" }, { - "id": "openai/gpt-4.1", - "name": "OpenAI: GPT-4.1", - "display_name": "OpenAI: GPT-4.1", + "id": "deepseek-math-v2", + "name": "deepseek-math-v2", + "display_name": "deepseek-math-v2", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 163000, + "output": 163000 }, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.492, + "output": 1.968, + "cache_read": 0.0984 }, "type": "chat" }, { - "id": "openai/gpt-4.1-mini", - "name": "OpenAI: GPT-4.1 Mini", - "display_name": "OpenAI: GPT-4.1 Mini", + "id": "DeepSeek-V3.2-Exp", + "name": "DeepSeek-V3.2-Exp", + "display_name": "DeepSeek-V3.2-Exp", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 163000, + "output": 163000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.274, + "output": 0.411, + "cache_read": 0.0274 + }, "type": "chat" }, { - "id": "openai/gpt-4.1-nano", - "name": "OpenAI: GPT-4.1 Nano", - "display_name": "OpenAI: GPT-4.1 Nano", + "id": "DeepSeek-V3.2-Exp-Think", + "name": "DeepSeek-V3.2-Exp-Think", + "display_name": "DeepSeek-V3.2-Exp-Think", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 131000, + "output": 131000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.274, + "output": 0.411, + "cache_read": 0.0274 }, "type": "chat" }, { - "id": "openai/gpt-4o", - "name": "OpenAI: GPT-4o", - "display_name": "OpenAI: GPT-4o", + "id": "gpt-5-codex", + "name": "gpt-5-codex", + "display_name": "gpt-5-codex", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 400000, + "output": 400000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 }, "type": "chat" }, { - "id": "openai/gpt-4o-2024-05-13", - "name": "OpenAI: GPT-4o (2024-05-13)", - "display_name": "OpenAI: GPT-4o (2024-05-13)", + "id": "DeepSeek-V3.1-Terminus", + "name": "DeepSeek-V3.1-Terminus", + "display_name": "DeepSeek-V3.1-Terminus", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 160000, + "output": 160000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.56, + "output": 1.68 + }, "type": "chat" }, { - "id": "openai/gpt-4o-2024-08-06", - "name": "OpenAI: GPT-4o (2024-08-06)", - "display_name": "OpenAI: GPT-4o (2024-08-06)", + "id": "DeepSeek-V3.1-Think", + "name": "DeepSeek-V3.1-Think", + "display_name": "DeepSeek-V3.1-Think", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 128000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.56, + "output": 1.68 }, "type": "chat" }, { - "id": "openai/gpt-4o-2024-11-20", - "name": "OpenAI: GPT-4o (2024-11-20)", - "display_name": "OpenAI: GPT-4o (2024-11-20)", + "id": "gpt-5-pro", + "name": "gpt-5-pro", + "display_name": "gpt-5-pro", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 400000, + "output": 400000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 15, + "output": 120 }, "type": "chat" }, { - "id": "openai/gpt-4o:extended", - "name": "OpenAI: GPT-4o (extended)", - "display_name": "OpenAI: GPT-4o (extended)", + "id": "gpt-5-mini", + "name": "gpt-5-mini", + "display_name": "gpt-5-mini", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 400000, + "output": 400000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 }, "type": "chat" }, { - "id": "openai/gpt-4o-audio-preview", - "name": "OpenAI: GPT-4o Audio", - "display_name": "OpenAI: GPT-4o Audio", + "id": "gpt-5-nano", + "name": "gpt-5-nano", + "display_name": "gpt-5-nano", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 400000, + "output": 400000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.005 }, "type": "chat" }, { - "id": "openai/gpt-4o-search-preview", - "name": "OpenAI: GPT-4o Search Preview", - "display_name": "OpenAI: GPT-4o Search Preview", + "id": "gpt-5-chat-latest", + "name": "gpt-5-chat-latest", + "display_name": "gpt-5-chat-latest", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 400000, + "output": 400000 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, "type": "chat" }, { - "id": "openai/gpt-4o-mini", - "name": "OpenAI: GPT-4o-mini", - "display_name": "OpenAI: GPT-4o-mini", + "id": "claude-opus-4-1", + "name": "claude-opus-4-1", + "display_name": "claude-opus-4-1", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 200000, + "output": 200000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 16.5, + "output": 82.5 }, "type": "chat" }, { - "id": "openai/gpt-4o-mini-2024-07-18", - "name": "OpenAI: GPT-4o-mini (2024-07-18)", - "display_name": "OpenAI: GPT-4o-mini (2024-07-18)", + "id": "doubao-seedream-4-5", + "name": "doubao-seedream-4-5", + "display_name": "doubao-seedream-4-5", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 2, + "output": 0, + "cache_read": 0 + }, + "type": "imageGeneration" }, { - "id": "openai/gpt-4o-mini-search-preview", - "name": "OpenAI: GPT-4o-mini Search Preview", - "display_name": "OpenAI: GPT-4o-mini Search Preview", + "id": "sora-2", + "name": "sora-2", + "display_name": "sora-2", "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 2 + }, "type": "chat" }, { - "id": "openai/gpt-5", - "name": "OpenAI: GPT-5", - "display_name": "OpenAI: GPT-5", + "id": "sora-2-pro", + "name": "sora-2-pro", + "display_name": "sora-2-pro", "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 2 + }, "type": "chat" }, { - "id": "openai/gpt-5-chat", - "name": "OpenAI: GPT-5 Chat", - "display_name": "OpenAI: GPT-5 Chat", + "id": "o3", + "name": "o3", + "display_name": "o3", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 200000, + "output": 200000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 }, "type": "chat" }, { - "id": "openai/gpt-5-codex", - "name": "OpenAI: GPT-5 Codex", - "display_name": "OpenAI: GPT-5 Codex", + "id": "wan2.6-i2v", + "name": "wan2.6-i2v", + "display_name": "wan2.6-i2v", + "modalities": { + "input": [ + "image", + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 0 + }, "type": "chat" }, { - "id": "openai/gpt-5-image", - "name": "OpenAI: GPT-5 Image", - "display_name": "OpenAI: GPT-5 Image", + "id": "wan2.6-t2v", + "name": "wan2.6-t2v", + "display_name": "wan2.6-t2v", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 0 + }, "type": "chat" }, { - "id": "openai/gpt-5-image-mini", - "name": "OpenAI: GPT-5 Image Mini", - "display_name": "OpenAI: GPT-5 Image Mini", + "id": "gpt-4o-audio-preview", + "name": "gpt-4o-audio-preview", + "display_name": "gpt-4o-audio-preview", + "modalities": { + "input": [ + "text", + "audio" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 128000 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2.5, + "output": 10 + }, "type": "chat" }, { - "id": "openai/gpt-5-mini", - "name": "OpenAI: GPT-5 Mini", - "display_name": "OpenAI: GPT-5 Mini", + "id": "gpt-4o-mini-audio-preview", + "name": "gpt-4o-mini-audio-preview", + "display_name": "gpt-4o-mini-audio-preview", + "modalities": { + "input": [ + "text", + "audio" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.15, + "output": 0.6 + }, "type": "chat" }, { - "id": "openai/gpt-5-nano", - "name": "OpenAI: GPT-5 Nano", - "display_name": "OpenAI: GPT-5 Nano", + "id": "minimax-m2.1", + "name": "minimax-m2.1", + "display_name": "minimax-m2.1", "limit": { - "context": 4096, - "output": 4096 + "context": 204800, + "output": 204800 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.288, + "output": 1.152 + }, "type": "chat" }, { - "id": "openai/gpt-5-pro", - "name": "OpenAI: GPT-5 Pro", - "display_name": "OpenAI: GPT-5 Pro", + "id": "cc-glm-4.7", + "name": "cc-glm-4.7", + "display_name": "cc-glm-4.7", "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.06, + "output": 0.22 + }, "type": "chat" }, { - "id": "openai/gpt-5.1", - "name": "OpenAI: GPT-5.1", - "display_name": "OpenAI: GPT-5.1", + "id": "cc-minimax-m2.1", + "name": "cc-minimax-m2.1", + "display_name": "cc-minimax-m2.1", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.1, + "output": 0.1 + }, "type": "chat" }, { - "id": "openai/gpt-5.1-chat", - "name": "OpenAI: GPT-5.1 Chat", - "display_name": "OpenAI: GPT-5.1 Chat", + "id": "coding-glm-4.7", + "name": "coding-glm-4.7", + "display_name": "coding-glm-4.7", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.06, + "output": 0.22, + "cache_read": 0.010998 }, "type": "chat" }, { - "id": "openai/gpt-5.1-codex", - "name": "OpenAI: GPT-5.1-Codex", - "display_name": "OpenAI: GPT-5.1-Codex", + "id": "coding-minimax-m2.1", + "name": "coding-minimax-m2.1", + "display_name": "coding-minimax-m2.1", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 204800, + "output": 204800 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "openai/gpt-5.1-codex-max", - "name": "OpenAI: GPT-5.1-Codex-Max", - "display_name": "OpenAI: GPT-5.1-Codex-Max", + "id": "coding-minimax-m2.1-free", + "name": "coding-minimax-m2.1-free", + "display_name": "coding-minimax-m2.1-free", "limit": { - "context": 4096, - "output": 4096 + "context": 204800, + "output": 204800 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0, + "output": 0 + }, "type": "chat" }, { - "id": "openai/gpt-5.1-codex-mini", - "name": "OpenAI: GPT-5.1-Codex-Mini", - "display_name": "OpenAI: GPT-5.1-Codex-Mini", + "id": "crush-glm-4.7-free", + "name": "crush-glm-4.7-free", + "display_name": "crush-glm-4.7-free", "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0, + "output": 0 + }, "type": "chat" }, { - "id": "openai/gpt-5.2", - "name": "OpenAI: GPT-5.2", - "display_name": "OpenAI: GPT-5.2", + "id": "cc-glm-4.6", + "name": "cc-glm-4.6", + "display_name": "cc-glm-4.6", "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.06, + "output": 0.22 + }, "type": "chat" }, { - "id": "openai/gpt-5.2-chat", - "name": "OpenAI: GPT-5.2 Chat", - "display_name": "OpenAI: GPT-5.2 Chat", + "id": "coding-glm-4.6", + "name": "coding-glm-4.6", + "display_name": "coding-glm-4.6", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.06, + "output": 0.22, + "cache_read": 0.010998 }, "type": "chat" }, { - "id": "openai/gpt-5.2-pro", - "name": "OpenAI: GPT-5.2 Pro", - "display_name": "OpenAI: GPT-5.2 Pro", + "id": "coding-glm-4.6-free", + "name": "coding-glm-4.6-free", + "display_name": "coding-glm-4.6-free", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 200000, + "output": 200000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 }, "type": "chat" }, { - "id": "openai/gpt-oss-120b", - "name": "OpenAI: gpt-oss-120b", - "display_name": "OpenAI: gpt-oss-120b", + "id": "coding-minimax-m2", + "name": "coding-minimax-m2", + "display_name": "coding-minimax-m2", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 204800, + "output": 204800 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "openai/gpt-oss-120b:exacto", - "name": "OpenAI: gpt-oss-120b (exacto)", - "display_name": "OpenAI: gpt-oss-120b (exacto)", + "id": "coding-minimax-m2-free", + "name": "coding-minimax-m2-free", + "display_name": "coding-minimax-m2-free", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 204800, + "output": 204800 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 }, "type": "chat" }, { - "id": "openai/gpt-oss-20b", - "name": "OpenAI: gpt-oss-20b", - "display_name": "OpenAI: gpt-oss-20b", + "id": "o3-pro", + "name": "o3-pro", + "display_name": "o3-pro", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 200000, + "output": 200000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 20, + "output": 80, + "cache_read": 20 }, "type": "chat" }, { - "id": "openai/gpt-oss-safeguard-20b", - "name": "OpenAI: gpt-oss-safeguard-20b", - "display_name": "OpenAI: gpt-oss-safeguard-20b", + "id": "wan2.2-i2v-plus", + "name": "wan2.2-i2v-plus", + "display_name": "wan2.2-i2v-plus", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 0 + }, "type": "chat" }, { - "id": "openai/o1", - "name": "OpenAI: o1", - "display_name": "OpenAI: o1", + "id": "wan2.2-t2v-plus", + "name": "wan2.2-t2v-plus", + "display_name": "wan2.2-t2v-plus", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 0 + }, "type": "chat" }, { - "id": "openai/o1-pro", - "name": "OpenAI: o1-pro", - "display_name": "OpenAI: o1-pro", + "id": "wan2.5-i2v-preview", + "name": "wan2.5-i2v-preview", + "display_name": "wan2.5-i2v-preview", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 0 + }, "type": "chat" }, { - "id": "openai/o3", - "name": "OpenAI: o3", - "display_name": "OpenAI: o3", + "id": "wan2.5-t2v-preview", + "name": "wan2.5-t2v-preview", + "display_name": "wan2.5-t2v-preview", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 0 + }, "type": "chat" }, { - "id": "openai/o3-deep-research", - "name": "OpenAI: o3 Deep Research", - "display_name": "OpenAI: o3 Deep Research", + "id": "web-sora-2", + "name": "web-sora-2", + "display_name": "web-sora-2", "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 2 + }, "type": "chat" }, { - "id": "openai/o3-mini", - "name": "OpenAI: o3 Mini", - "display_name": "OpenAI: o3 Mini", + "id": "web-sora-2-pro", + "name": "web-sora-2-pro", + "display_name": "web-sora-2-pro", "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 2 + }, "type": "chat" }, { - "id": "openai/o3-mini-high", - "name": "OpenAI: o3 Mini High", - "display_name": "OpenAI: o3 Mini High", + "id": "flux-2-flex", + "name": "flux-2-flex", + "display_name": "flux-2-flex", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 2, + "output": 0, + "cache_read": 0 + }, + "type": "imageGeneration" }, { - "id": "openai/o3-pro", - "name": "OpenAI: o3 Pro", - "display_name": "OpenAI: o3 Pro", + "id": "flux-2-pro", + "name": "flux-2-pro", + "display_name": "flux-2-pro", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 2, + "output": 0, + "cache_read": 0 + }, + "type": "imageGeneration" }, { - "id": "openai/o4-mini", - "name": "OpenAI: o4 Mini", - "display_name": "OpenAI: o4 Mini", + "id": "gemini-2.5-pro", + "name": "gemini-2.5-pro", + "display_name": "gemini-2.5-pro", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1048576, + "output": 1048576 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 }, "type": "chat" }, { - "id": "openai/o4-mini-deep-research", - "name": "OpenAI: o4 Mini Deep Research", - "display_name": "OpenAI: o4 Mini Deep Research", + "id": "glm-4.6", + "name": "glm-4.6", + "display_name": "glm-4.6", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 204800, + "output": 204800 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 }, "type": "chat" }, { - "id": "openai/o4-mini-high", - "name": "OpenAI: o4 Mini High", - "display_name": "OpenAI: o4 Mini High", + "id": "glm-4.6v", + "name": "glm-4.6v", + "display_name": "glm-4.6v", + "modalities": { + "input": [ + "text", + "image", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 128000 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.137, + "output": 0.411, + "cache_read": 0.0274 + }, "type": "chat" }, { - "id": "opengvlab/internvl3-78b", - "name": "OpenGVLab: InternVL3 78B", - "display_name": "OpenGVLab: InternVL3 78B", + "id": "jimeng-3.0-1080p", + "name": "jimeng-3.0-1080p", + "display_name": "jimeng-3.0-1080p", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 0 + }, "type": "chat" }, { - "id": "perplexity/sonar", - "name": "Perplexity: Sonar", - "display_name": "Perplexity: Sonar", + "id": "jimeng-3.0-720p", + "name": "jimeng-3.0-720p", + "display_name": "jimeng-3.0-720p", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 0 + }, "type": "chat" }, { - "id": "perplexity/sonar-deep-research", - "name": "Perplexity: Sonar Deep Research", - "display_name": "Perplexity: Sonar Deep Research", + "id": "jimeng-3.0-pro", + "name": "jimeng-3.0-pro", + "display_name": "jimeng-3.0-pro", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 0 + }, "type": "chat" }, { - "id": "perplexity/sonar-pro", - "name": "Perplexity: Sonar Pro", - "display_name": "Perplexity: Sonar Pro", + "id": "kimi-for-coding-free", + "name": "kimi-for-coding-free", + "display_name": "kimi-for-coding-free", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 }, "type": "chat" }, { - "id": "perplexity/sonar-pro-search", - "name": "Perplexity: Sonar Pro Search", - "display_name": "Perplexity: Sonar Pro Search", + "id": "gemini-2.5-pro-search", + "name": "gemini-2.5-pro-search", + "display_name": "gemini-2.5-pro-search", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1048576, + "output": 1048576 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 }, "type": "chat" }, { - "id": "perplexity/sonar-reasoning", - "name": "Perplexity: Sonar Reasoning", - "display_name": "Perplexity: Sonar Reasoning", + "id": "kimi-k2-thinking", + "name": "kimi-k2-thinking", + "display_name": "kimi-k2-thinking", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 262144, + "output": 262144 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.548, + "output": 2.192, + "cache_read": 0.137 }, "type": "chat" }, { - "id": "perplexity/sonar-reasoning-pro", - "name": "Perplexity: Sonar Reasoning Pro", - "display_name": "Perplexity: Sonar Reasoning Pro", + "id": "Kimi-K2-0905", + "name": "Kimi-K2-0905", + "display_name": "Kimi-K2-0905", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 262144, + "output": 262144 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.548, + "output": 2.192 + }, "type": "chat" }, { - "id": "prime-intellect/intellect-3", - "name": "Prime Intellect: INTELLECT-3", - "display_name": "Prime Intellect: INTELLECT-3", + "id": "DeepSeek-V3.1-Fast", + "name": "DeepSeek-V3.1-Fast", + "display_name": "DeepSeek-V3.1-Fast", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 163000, + "output": 163000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 1.096, + "output": 3.288 + }, "type": "chat" }, { - "id": "qwen/qwen-plus-2025-07-28", - "name": "Qwen: Qwen Plus 0728", - "display_name": "Qwen: Qwen Plus 0728", + "id": "claude-opus-4-0", + "name": "claude-opus-4-0", + "display_name": "claude-opus-4-0", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 200000, + "output": 200000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 16.5, + "output": 82.5 + }, "type": "chat" }, { - "id": "qwen/qwen-plus-2025-07-28:thinking", - "name": "Qwen: Qwen Plus 0728 (thinking)", - "display_name": "Qwen: Qwen Plus 0728 (thinking)", + "id": "claude-sonnet-4-0", + "name": "claude-sonnet-4-0", + "display_name": "claude-sonnet-4-0", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1000000, + "output": 1000000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 3.3, + "output": 16.5, + "cache_read": 0.33 }, "type": "chat" }, { - "id": "qwen/qwen-vl-max", - "name": "Qwen: Qwen VL Max", - "display_name": "Qwen: Qwen VL Max", - "limit": { - "context": 4096, - "output": 4096 - }, - "tool_call": false, - "reasoning": { - "supported": false + "id": "gemini-2.5-flash", + "name": "gemini-2.5-flash", + "display_name": "gemini-2.5-flash", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] }, - "type": "chat" - }, - { - "id": "qwen/qwen-vl-plus", - "name": "Qwen: Qwen VL Plus", - "display_name": "Qwen: Qwen VL Plus", "limit": { - "context": 4096, - "output": 4096 + "context": 1048576, + "output": 1048576 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.3, + "output": 2.499, + "cache_read": 0.03 + }, "type": "chat" }, { - "id": "qwen/qwen-max", - "name": "Qwen: Qwen-Max", - "display_name": "Qwen: Qwen-Max", + "id": "gemini-2.5-flash-preview-09-2025", + "name": "gemini-2.5-flash-preview-09-2025", + "display_name": "gemini-2.5-flash-preview-09-2025", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1048576, + "output": 1048576 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.3, + "output": 2.499, + "cache_read": 0.03 + }, "type": "chat" }, { - "id": "qwen/qwen-plus", - "name": "Qwen: Qwen-Plus", - "display_name": "Qwen: Qwen-Plus", + "id": "glm-4.5v", + "name": "glm-4.5v", + "display_name": "glm-4.5v", + "modalities": { + "input": [ + "text", + "image", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 64000, + "output": 64000 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.274, + "output": 0.822, + "cache_read": 0.274 + }, "type": "chat" }, { - "id": "qwen/qwen-turbo", - "name": "Qwen: Qwen-Turbo", - "display_name": "Qwen: Qwen-Turbo", + "id": "gemini-2.5-flash-lite", + "name": "gemini-2.5-flash-lite", + "display_name": "gemini-2.5-flash-lite", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1048576, + "output": 1048576 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.01 + }, "type": "chat" }, { - "id": "qwen/qwen-2.5-7b-instruct", - "name": "Qwen: Qwen2.5 7B Instruct", - "display_name": "Qwen: Qwen2.5 7B Instruct", + "id": "gemini-2.5-flash-lite-preview-09-2025", + "name": "gemini-2.5-flash-lite-preview-09-2025", + "display_name": "gemini-2.5-flash-lite-preview-09-2025", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1048576, + "output": 1048576 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.01 + }, "type": "chat" }, { - "id": "qwen/qwen2.5-coder-7b-instruct", - "name": "Qwen: Qwen2.5 Coder 7B Instruct", - "display_name": "Qwen: Qwen2.5 Coder 7B Instruct", + "id": "gemini-2.5-flash-nothink", + "name": "gemini-2.5-flash-nothink", + "display_name": "gemini-2.5-flash-nothink", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1047576, + "output": 1047576 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.3, + "output": 2.499, + "cache_read": 0.03 + }, "type": "chat" }, { - "id": "qwen/qwen2.5-vl-32b-instruct", - "name": "Qwen: Qwen2.5 VL 32B Instruct", - "display_name": "Qwen: Qwen2.5 VL 32B Instruct", + "id": "gemini-2.5-flash-search", + "name": "gemini-2.5-flash-search", + "display_name": "gemini-2.5-flash-search", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1048576, + "output": 1048576 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.3, + "output": 2.499, + "cache_read": 0.03 + }, "type": "chat" }, { - "id": "qwen/qwen2.5-vl-72b-instruct", - "name": "Qwen: Qwen2.5 VL 72B Instruct", - "display_name": "Qwen: Qwen2.5 VL 72B Instruct", + "id": "gemini-2.5-flash-preview-05-20-nothink", + "name": "gemini-2.5-flash-preview-05-20-nothink", + "display_name": "gemini-2.5-flash-preview-05-20-nothink", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1048576, + "output": 1048576 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.3, + "output": 2.499, + "cache_read": 0.03 + }, "type": "chat" }, { - "id": "qwen/qwen-2.5-vl-7b-instruct", - "name": "Qwen: Qwen2.5-VL 7B Instruct", - "display_name": "Qwen: Qwen2.5-VL 7B Instruct", + "id": "gemini-2.5-flash-preview-05-20-search", + "name": "gemini-2.5-flash-preview-05-20-search", + "display_name": "gemini-2.5-flash-preview-05-20-search", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1048576, + "output": 1048576 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.3, + "output": 2.499, + "cache_read": 0.03 + }, "type": "chat" }, { - "id": "qwen/qwen3-14b", - "name": "Qwen: Qwen3 14B", - "display_name": "Qwen: Qwen3 14B", + "id": "DeepSeek-V3-Fast", + "name": "DeepSeek-V3-Fast", + "display_name": "DeepSeek-V3-Fast", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 32000, + "output": 32000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.56, + "output": 2.24 + }, "type": "chat" }, { - "id": "qwen/qwen3-235b-a22b", - "name": "Qwen: Qwen3 235B A22B", - "display_name": "Qwen: Qwen3 235B A22B", + "id": "veo-2.0-generate-001", + "name": "veo-2.0-generate-001", + "display_name": "veo-2.0-generate-001", + "modalities": { + "input": [ + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 2, + "cache_read": 0 + }, "type": "chat" }, { - "id": "qwen/qwen3-235b-a22b-2507", - "name": "Qwen: Qwen3 235B A22B Instruct 2507", - "display_name": "Qwen: Qwen3 235B A22B Instruct 2507", + "id": "veo3.1", + "name": "veo3.1", + "display_name": "veo3.1", "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 200, + "output": 200 + }, "type": "chat" }, { - "id": "qwen/qwen3-235b-a22b-thinking-2507", - "name": "Qwen: Qwen3 235B A22B Thinking 2507", - "display_name": "Qwen: Qwen3 235B A22B Thinking 2507", + "id": "imagen-4.0", + "name": "imagen-4.0", + "display_name": "imagen-4.0", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 2, + "output": 2, + "cache_read": 0 + }, + "type": "imageGeneration" }, { - "id": "qwen/qwen3-30b-a3b", - "name": "Qwen: Qwen3 30B A3B", - "display_name": "Qwen: Qwen3 30B A3B", + "id": "imagen-4.0-fast-generate-001", + "name": "imagen-4.0-fast-generate-001", + "display_name": "imagen-4.0-fast-generate-001", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 2, + "output": 2 + }, + "type": "imageGeneration" }, { - "id": "qwen/qwen3-30b-a3b-instruct-2507", - "name": "Qwen: Qwen3 30B A3B Instruct 2507", - "display_name": "Qwen: Qwen3 30B A3B Instruct 2507", + "id": "imagen-4.0-fast-generate-preview-06-06", + "name": "imagen-4.0-fast-generate-preview-06-06", + "display_name": "imagen-4.0-fast-generate-preview-06-06", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 2, + "output": 2 + }, + "type": "imageGeneration" }, { - "id": "qwen/qwen3-30b-a3b-thinking-2507", - "name": "Qwen: Qwen3 30B A3B Thinking 2507", - "display_name": "Qwen: Qwen3 30B A3B Thinking 2507", + "id": "imagen-4.0-generate-001", + "name": "imagen-4.0-generate-001", + "display_name": "imagen-4.0-generate-001", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 2, + "output": 2 + }, + "type": "imageGeneration" }, { - "id": "qwen/qwen3-32b", - "name": "Qwen: Qwen3 32B", - "display_name": "Qwen: Qwen3 32B", + "id": "imagen-4.0-ultra-generate-001", + "name": "imagen-4.0-ultra-generate-001", + "display_name": "imagen-4.0-ultra-generate-001", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 2, + "output": 2 + }, + "type": "imageGeneration" }, { - "id": "qwen/qwen3-8b", - "name": "Qwen: Qwen3 8B", - "display_name": "Qwen: Qwen3 8B", + "id": "imagen-4.0-ultra", + "name": "imagen-4.0-ultra", + "display_name": "imagen-4.0-ultra", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 2, + "output": 2, + "cache_read": 0 + }, + "type": "imageGeneration" }, { - "id": "qwen/qwen3-coder-30b-a3b-instruct", - "name": "Qwen: Qwen3 Coder 30B A3B Instruct", - "display_name": "Qwen: Qwen3 Coder 30B A3B Instruct", + "id": "gpt-image-1", + "name": "gpt-image-1", + "display_name": "gpt-image-1", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 5, + "output": 40, + "cache_read": 5 + }, + "type": "imageGeneration" }, { - "id": "qwen/qwen3-coder", - "name": "Qwen: Qwen3 Coder 480B A35B", - "display_name": "Qwen: Qwen3 Coder 480B A35B", + "id": "gpt-image-1-mini", + "name": "gpt-image-1-mini", + "display_name": "gpt-image-1-mini", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 5, + "output": 40, + "cache_read": 5 + }, + "type": "imageGeneration" }, { - "id": "qwen/qwen3-coder:exacto", - "name": "Qwen: Qwen3 Coder 480B A35B (exacto)", - "display_name": "Qwen: Qwen3 Coder 480B A35B (exacto)", + "id": "o4-mini", + "name": "o4-mini", + "display_name": "o4-mini", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 200000, + "output": 200000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.275 }, "type": "chat" }, { - "id": "qwen/qwen3-coder-flash", - "name": "Qwen: Qwen3 Coder Flash", - "display_name": "Qwen: Qwen3 Coder Flash", + "id": "paddleocr-vl-0.9b", + "name": "paddleocr-vl-0.9b", + "display_name": "paddleocr-vl-0.9b", "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 0 + }, "type": "chat" }, { - "id": "qwen/qwen3-coder-plus", - "name": "Qwen: Qwen3 Coder Plus", - "display_name": "Qwen: Qwen3 Coder Plus", + "id": "pp-structurev3", + "name": "pp-structurev3", + "display_name": "pp-structurev3", "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 0 + }, "type": "chat" }, { - "id": "qwen/qwen3-max", - "name": "Qwen: Qwen3 Max", - "display_name": "Qwen: Qwen3 Max", + "id": "qwen3-vl-235b-a22b-instruct", + "name": "qwen3-vl-235b-a22b-instruct", + "display_name": "qwen3-vl-235b-a22b-instruct", + "modalities": { + "input": [ + "text", + "image", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 131000, + "output": 131000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.274, + "output": 1.096 + }, "type": "chat" }, { - "id": "qwen/qwen3-next-80b-a3b-instruct", - "name": "Qwen: Qwen3 Next 80B A3B Instruct", - "display_name": "Qwen: Qwen3 Next 80B A3B Instruct", + "id": "qwen3-vl-235b-a22b-thinking", + "name": "qwen3-vl-235b-a22b-thinking", + "display_name": "qwen3-vl-235b-a22b-thinking", + "modalities": { + "input": [ + "text", + "image", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 131000, + "output": 131000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.274, + "output": 2.74 }, "type": "chat" }, { - "id": "qwen/qwen3-next-80b-a3b-thinking", - "name": "Qwen: Qwen3 Next 80B A3B Thinking", - "display_name": "Qwen: Qwen3 Next 80B A3B Thinking", + "id": "qwen3-vl-30b-a3b-instruct", + "name": "qwen3-vl-30b-a3b-instruct", + "display_name": "qwen3-vl-30b-a3b-instruct", + "modalities": { + "input": [ + "text", + "image", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 128000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.1028, + "output": 0.4112 + }, "type": "chat" }, { - "id": "qwen/qwen3-vl-235b-a22b-instruct", - "name": "Qwen: Qwen3 VL 235B A22B Instruct", - "display_name": "Qwen: Qwen3 VL 235B A22B Instruct", + "id": "qwen3-vl-30b-a3b-thinking", + "name": "qwen3-vl-30b-a3b-thinking", + "display_name": "qwen3-vl-30b-a3b-thinking", + "modalities": { + "input": [ + "text", + "image", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 128000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.1028, + "output": 1.028 }, "type": "chat" }, { - "id": "qwen/qwen3-vl-235b-a22b-thinking", - "name": "Qwen: Qwen3 VL 235B A22B Thinking", - "display_name": "Qwen: Qwen3 VL 235B A22B Thinking", + "id": "veo-3.0-generate-preview", + "name": "veo-3.0-generate-preview", + "display_name": "veo-3.0-generate-preview", + "modalities": { + "input": [ + "text", + "image", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 2, + "cache_read": 0 + }, "type": "chat" }, { - "id": "qwen/qwen3-vl-30b-a3b-instruct", - "name": "Qwen: Qwen3 VL 30B A3B Instruct", - "display_name": "Qwen: Qwen3 VL 30B A3B Instruct", + "id": "veo-3.1-fast-generate-preview", + "name": "veo-3.1-fast-generate-preview", + "display_name": "veo-3.1-fast-generate-preview", + "modalities": { + "input": [ + "text", + "image", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 0 + }, "type": "chat" }, { - "id": "qwen/qwen3-vl-30b-a3b-thinking", - "name": "Qwen: Qwen3 VL 30B A3B Thinking", - "display_name": "Qwen: Qwen3 VL 30B A3B Thinking", + "id": "veo-3.1-generate-preview", + "name": "veo-3.1-generate-preview", + "display_name": "veo-3.1-generate-preview", + "modalities": { + "input": [ + "text", + "image", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 2, + "cache_read": 0 + }, "type": "chat" }, { - "id": "qwen/qwen3-vl-32b-instruct", - "name": "Qwen: Qwen3 VL 32B Instruct", - "display_name": "Qwen: Qwen3 VL 32B Instruct", + "id": "flux-kontext-max", + "name": "flux-kontext-max", + "display_name": "flux-kontext-max", "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 0, + "cache_read": 0 + }, "type": "chat" }, { - "id": "qwen/qwen3-vl-8b-instruct", - "name": "Qwen: Qwen3 VL 8B Instruct", - "display_name": "Qwen: Qwen3 VL 8B Instruct", + "id": "gemini-2.5-flash-image-preview", + "name": "gemini-2.5-flash-image-preview", + "display_name": "gemini-2.5-flash-image-preview", + "modalities": { + "input": [ + "image", + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 32800, + "output": 32800 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.3 + }, + "type": "imageGeneration" }, { - "id": "qwen/qwen3-vl-8b-thinking", - "name": "Qwen: Qwen3 VL 8B Thinking", - "display_name": "Qwen: Qwen3 VL 8B Thinking", + "id": "glm-4.5", + "name": "glm-4.5", + "display_name": "glm-4.5", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 131072, + "output": 131072 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.4, + "output": 1.6 + }, "type": "chat" }, { - "id": "qwen/qwq-32b", - "name": "Qwen: QwQ 32B", - "display_name": "Qwen: QwQ 32B", + "id": "gpt-4.1", + "name": "gpt-4.1", + "display_name": "gpt-4.1", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1047576, + "output": 1047576 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, "type": "chat" }, { - "id": "qwen/qwen-2.5-72b-instruct", - "name": "Qwen2.5 72B Instruct", - "display_name": "Qwen2.5 72B Instruct", + "id": "grok-4", + "name": "grok-4", + "display_name": "grok-4", "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 3.3, + "output": 16.5, + "cache_read": 0.825 + }, "type": "chat" }, { - "id": "qwen/qwen-2.5-coder-32b-instruct", - "name": "Qwen2.5 Coder 32B Instruct", - "display_name": "Qwen2.5 Coder 32B Instruct", + "id": "grok-4-fast-non-reasoning", + "name": "grok-4-fast-non-reasoning", + "display_name": "grok-4-fast-non-reasoning", "limit": { - "context": 4096, - "output": 4096 + "context": 2000000, + "output": 2000000 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + }, "type": "chat" }, { - "id": "relace/relace-apply-3", - "name": "Relace: Relace Apply 3", - "display_name": "Relace: Relace Apply 3", + "id": "grok-4-fast-reasoning", + "name": "grok-4-fast-reasoning", + "display_name": "grok-4-fast-reasoning", "limit": { - "context": 4096, - "output": 4096 + "context": 2000000, + "output": 2000000 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + }, "type": "chat" }, { - "id": "relace/relace-search", - "name": "Relace: Relace Search", - "display_name": "Relace: Relace Search", + "id": "kimi-k2-0711", + "name": "kimi-k2-0711", + "display_name": "kimi-k2-0711", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 131000, + "output": 131000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.54, + "output": 2.16 + }, "type": "chat" }, { - "id": "undi95/remm-slerp-l2-13b", - "name": "ReMM SLERP 13B", - "display_name": "ReMM SLERP 13B", + "id": "kimi-k2-turbo-preview", + "name": "kimi-k2-turbo-preview", + "display_name": "kimi-k2-turbo-preview", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 262144, + "output": 262144 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 1.2, + "output": 4.8, + "cache_read": 0.3 + }, "type": "chat" }, { - "id": "sao10k/l3-lunaris-8b", - "name": "Sao10K: Llama 3 8B Lunaris", - "display_name": "Sao10K: Llama 3 8B Lunaris", + "id": "DeepSeek-OCR", + "name": "DeepSeek-OCR", + "display_name": "DeepSeek-OCR", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8000, + "output": 8000 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.02, + "output": 0.02 + }, "type": "chat" }, { - "id": "sao10k/l3-euryale-70b", - "name": "Sao10k: Llama 3 Euryale 70B v2.1", - "display_name": "Sao10k: Llama 3 Euryale 70B v2.1", + "id": "deepseek-ocr", + "name": "deepseek-ocr", + "display_name": "deepseek-ocr", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8000, + "output": 8000 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.02, + "output": 0.02 + }, "type": "chat" }, { - "id": "sao10k/l3.1-70b-hanami-x1", - "name": "Sao10K: Llama 3.1 70B Hanami x1", - "display_name": "Sao10K: Llama 3.1 70B Hanami x1", + "id": "aihubmix-router", + "name": "aihubmix-router", + "display_name": "aihubmix-router", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + }, "type": "chat" }, { - "id": "sao10k/l3.1-euryale-70b", - "name": "Sao10K: Llama 3.1 Euryale 70B v2.2", - "display_name": "Sao10K: Llama 3.1 Euryale 70B v2.2", + "id": "qwen3-vl-plus", + "name": "qwen3-vl-plus", + "display_name": "qwen3-vl-plus", + "modalities": { + "input": [ + "text", + "image", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.137, + "output": 1.37, + "cache_read": 0.0274 + }, "type": "chat" }, { - "id": "sao10k/l3.3-euryale-70b", - "name": "Sao10K: Llama 3.3 Euryale 70B", - "display_name": "Sao10K: Llama 3.3 Euryale 70B", + "id": "gpt-4.1-mini", + "name": "gpt-4.1-mini", + "display_name": "gpt-4.1-mini", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1047576, + "output": 1047576 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + }, "type": "chat" }, { - "id": "raifle/sorcererlm-8x22b", - "name": "SorcererLM 8x22B", - "display_name": "SorcererLM 8x22B", + "id": "gpt-4.1-nano", + "name": "gpt-4.1-nano", + "display_name": "gpt-4.1-nano", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1047576, + "output": 1047576 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, "type": "chat" }, { - "id": "stepfun-ai/step3", - "name": "StepFun: Step3", - "display_name": "StepFun: Step3", + "id": "gemini-2.5-pro-preview-05-06", + "name": "gemini-2.5-pro-preview-05-06", + "display_name": "gemini-2.5-pro-preview-05-06", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1048576, + "output": 1048576 }, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 }, "type": "chat" }, { - "id": "switchpoint/router", - "name": "Switchpoint Router", - "display_name": "Switchpoint Router", + "id": "gemini-2.5-pro-preview-03-25", + "name": "gemini-2.5-pro-preview-03-25", + "display_name": "gemini-2.5-pro-preview-03-25", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 }, "type": "chat" }, { - "id": "tencent/hunyuan-a13b-instruct", - "name": "Tencent: Hunyuan A13B Instruct", - "display_name": "Tencent: Hunyuan A13B Instruct", - "limit": { - "context": 4096, - "output": 4096 - }, - "tool_call": false, - "reasoning": { - "supported": false + "id": "gemini-2.5-pro-preview-05-06-search", + "name": "gemini-2.5-pro-preview-05-06-search", + "display_name": "gemini-2.5-pro-preview-05-06-search", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] }, - "type": "chat" - }, - { - "id": "thedrummer/cydonia-24b-v4.1", - "name": "TheDrummer: Cydonia 24B V4.1", - "display_name": "TheDrummer: Cydonia 24B V4.1", "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 }, "type": "chat" }, { - "id": "thedrummer/rocinante-12b", - "name": "TheDrummer: Rocinante 12B", - "display_name": "TheDrummer: Rocinante 12B", + "id": "gemini-2.5-pro-preview-03-25-search", + "name": "gemini-2.5-pro-preview-03-25-search", + "display_name": "gemini-2.5-pro-preview-03-25-search", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 }, "type": "chat" }, { - "id": "thedrummer/skyfall-36b-v2", - "name": "TheDrummer: Skyfall 36B V2", - "display_name": "TheDrummer: Skyfall 36B V2", + "id": "qwen3-max-preview", + "name": "qwen3-max-preview", + "display_name": "qwen3-max-preview", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.822, + "output": 3.288, + "cache_read": 0.822 + }, "type": "chat" }, { - "id": "thedrummer/unslopnemo-12b", - "name": "TheDrummer: UnslopNemo 12B", - "display_name": "TheDrummer: UnslopNemo 12B", + "id": "qwen3-max", + "name": "qwen3-max", + "display_name": "qwen3-max", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 262144, + "output": 262144 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.822, + "output": 3.288, + "cache_read": 0.822 + }, "type": "chat" }, { - "id": "thudm/glm-4.1v-9b-thinking", - "name": "THUDM: GLM 4.1V 9B Thinking", - "display_name": "THUDM: GLM 4.1V 9B Thinking", + "id": "qwen3-next-80b-a3b-instruct", + "name": "qwen3-next-80b-a3b-instruct", + "display_name": "qwen3-next-80b-a3b-instruct", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.138, + "output": 0.552 + }, "type": "chat" }, { - "id": "tngtech/deepseek-r1t-chimera", - "name": "TNG: DeepSeek R1T Chimera", - "display_name": "TNG: DeepSeek R1T Chimera", + "id": "qwen3-next-80b-a3b-thinking", + "name": "qwen3-next-80b-a3b-thinking", + "display_name": "qwen3-next-80b-a3b-thinking", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.138, + "output": 1.38 }, "type": "chat" }, { - "id": "tngtech/deepseek-r1t2-chimera", - "name": "TNG: DeepSeek R1T2 Chimera", - "display_name": "TNG: DeepSeek R1T2 Chimera", + "id": "qwen3-235b-a22b-instruct-2507", + "name": "qwen3-235b-a22b-instruct-2507", + "display_name": "qwen3-235b-a22b-instruct-2507", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 262144, + "output": 262144 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.28, + "output": 1.12 + }, "type": "chat" }, { - "id": "tngtech/tng-r1t-chimera", - "name": "TNG: R1T Chimera", - "display_name": "TNG: R1T Chimera", + "id": "qwen3-235b-a22b-thinking-2507", + "name": "qwen3-235b-a22b-thinking-2507", + "display_name": "qwen3-235b-a22b-thinking-2507", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 262144, + "output": 262144 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.28, + "output": 2.8 }, "type": "chat" }, { - "id": "alibaba/tongyi-deepresearch-30b-a3b", - "name": "Tongyi DeepResearch 30B A3B", - "display_name": "Tongyi DeepResearch 30B A3B", + "id": "qwen3-coder-30b-a3b-instruct", + "name": "qwen3-coder-30b-a3b-instruct", + "display_name": "qwen3-coder-30b-a3b-instruct", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 2000000, + "output": 2000000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.2, + "output": 0.8, + "cache_read": 0.2 + }, "type": "chat" }, { - "id": "microsoft/wizardlm-2-8x22b", - "name": "WizardLM-2 8x22B", - "display_name": "WizardLM-2 8x22B", + "id": "qwen3-coder-480b-a35b-instruct", + "name": "qwen3-coder-480b-a35b-instruct", + "display_name": "qwen3-coder-480b-a35b-instruct", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 262000, + "output": 262000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.82, + "output": 3.28, + "cache_read": 0.82 + }, "type": "chat" }, { - "id": "x-ai/grok-3", - "name": "xAI: Grok 3", - "display_name": "xAI: Grok 3", + "id": "qwen3-235b-a22b", + "name": "qwen3-235b-a22b", + "display_name": "qwen3-235b-a22b", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 131100, + "output": 131100 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.28, + "output": 1.12 + }, "type": "chat" }, { - "id": "x-ai/grok-3-beta", - "name": "xAI: Grok 3 Beta", - "display_name": "xAI: Grok 3 Beta", + "id": "qwen3-coder-flash", + "name": "qwen3-coder-flash", + "display_name": "qwen3-coder-flash", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.136, + "output": 0.544, + "cache_read": 0.136 + }, "type": "chat" }, { - "id": "x-ai/grok-3-mini", - "name": "xAI: Grok 3 Mini", - "display_name": "xAI: Grok 3 Mini", + "id": "qwen3-coder-plus", + "name": "qwen3-coder-plus", + "display_name": "qwen3-coder-plus", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1048576, + "output": 1048576 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.54, + "output": 2.16, + "cache_read": 0.108 + }, "type": "chat" }, { - "id": "x-ai/grok-3-mini-beta", - "name": "xAI: Grok 3 Mini Beta", - "display_name": "xAI: Grok 3 Mini Beta", + "id": "qwen3-coder-plus-2025-07-22", + "name": "qwen3-coder-plus-2025-07-22", + "display_name": "qwen3-coder-plus-2025-07-22", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 128000, + "output": 128000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.54, + "output": 2.16, + "cache_read": 0.54 + }, "type": "chat" }, { - "id": "x-ai/grok-4", - "name": "xAI: Grok 4", - "display_name": "xAI: Grok 4", + "id": "DeepSeek-V3", + "name": "DeepSeek-V3", + "display_name": "DeepSeek-V3", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 1638000, + "output": 1638000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.272, + "output": 1.088 + }, "type": "chat" }, { - "id": "x-ai/grok-4-fast", - "name": "xAI: Grok 4 Fast", - "display_name": "xAI: Grok 4 Fast", + "id": "LongCat-Flash-Chat", + "name": "LongCat-Flash-Chat", + "display_name": "LongCat-Flash-Chat", "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.14, + "output": 0.7 + }, "type": "chat" }, { - "id": "x-ai/grok-4.1-fast", - "name": "xAI: Grok 4.1 Fast", - "display_name": "xAI: Grok 4.1 Fast", + "id": "gemini-2.5-pro-preview-06-05-search", + "name": "gemini-2.5-pro-preview-06-05-search", + "display_name": "gemini-2.5-pro-preview-06-05-search", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 }, "type": "chat" }, { - "id": "x-ai/grok-code-fast-1", - "name": "xAI: Grok Code Fast 1", - "display_name": "xAI: Grok Code Fast 1", + "id": "imagen-4.0-ultra-generate-exp-05-20", + "name": "imagen-4.0-ultra-generate-exp-05-20", + "display_name": "imagen-4.0-ultra-generate-exp-05-20", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 2, + "output": 2, + "cache_read": 0 + }, + "type": "imageGeneration" }, { - "id": "z-ai/glm-4-32b", - "name": "Z.AI: GLM 4 32B", - "display_name": "Z.AI: GLM 4 32B", + "id": "Qwen2.5-VL-72B-Instruct", + "name": "Qwen2.5-VL-72B-Instruct", + "display_name": "Qwen2.5-VL-72B-Instruct", + "modalities": { + "input": [ + "text", + "image", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 0.62, + "output": 0.62 + }, "type": "chat" }, { - "id": "z-ai/glm-4.5", - "name": "Z.AI: GLM 4.5", - "display_name": "Z.AI: GLM 4.5", + "id": "ernie-5.0-thinking-preview", + "name": "ernie-5.0-thinking-preview", + "display_name": "ernie-5.0-thinking-preview", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 183000, + "output": 183000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.822, + "output": 3.288 }, "type": "chat" }, { - "id": "z-ai/glm-4.5-air", - "name": "Z.AI: GLM 4.5 Air", - "display_name": "Z.AI: GLM 4.5 Air", + "id": "inclusionAI/Ling-1T", + "name": "inclusionAI/Ling-1T", + "display_name": "inclusionAI/Ling-1T", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, + "cost": { + "input": 0.548, + "output": 2.192 + }, "type": "chat" }, { - "id": "z-ai/glm-4.5v", - "name": "Z.AI: GLM 4.5V", - "display_name": "Z.AI: GLM 4.5V", + "id": "inclusionAI/Ring-1T", + "name": "inclusionAI/Ring-1T", + "display_name": "inclusionAI/Ring-1T", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true + }, + "cost": { + "input": 0.548, + "output": 2.192 }, "type": "chat" }, { - "id": "z-ai/glm-4.6", - "name": "Z.AI: GLM 4.6", - "display_name": "Z.AI: GLM 4.6", + "id": "glm-4.5-x", + "name": "glm-4.5-x", + "display_name": "glm-4.5-x", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, + "cost": { + "input": 2.2, + "output": 8.91, + "cache_read": 0.44 + }, "type": "chat" }, { - "id": "z-ai/glm-4.6:exacto", - "name": "Z.AI: GLM 4.6 (exacto)", - "display_name": "Z.AI: GLM 4.6 (exacto)", + "id": "gme-qwen2-vl-2b-instruct", + "name": "gme-qwen2-vl-2b-instruct", + "display_name": "gme-qwen2-vl-2b-instruct", + "modalities": { + "input": [ + "text", + "image", + "video" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" + "cost": { + "input": 0.138, + "output": 0.138 + }, + "type": "embedding" }, { - "id": "z-ai/glm-4.6v", - "name": "Z.AI: GLM 4.6V", - "display_name": "Z.AI: GLM 4.6V", + "id": "gte-rerank-v2", + "name": "gte-rerank-v2", + "display_name": "gte-rerank-v2", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 4096, - "output": 4096 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "type": "chat" - } - ] - }, - "aihubmix": { - "id": "aihubmix", - "name": "AIHubMix", - "display_name": "AIHubMix", - "models": [ + "cost": { + "input": 0.11, + "output": 0.11 + }, + "type": "rerank" + }, { - "id": "gemini-3-flash-preview", - "name": "gemini-3-flash-preview", - "display_name": "gemini-3-flash-preview", + "id": "inclusionAI/Ling-flash-2.0", + "name": "inclusionAI/Ling-flash-2.0", + "display_name": "inclusionAI/Ling-flash-2.0", "modalities": { "input": [ - "text", - "image", - "audio", - "video" + "text" ] }, "limit": { - "context": 1048576, - "output": 1048576 + "context": 8192, + "output": 8192 }, "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 0.5, - "output": 3, - "cache_read": 0.05 + "input": 0.136, + "output": 0.544 }, "type": "chat" }, { - "id": "doubao-seed-1-8", - "name": "doubao-seed-1-8", - "display_name": "doubao-seed-1-8", + "id": "inclusionAI/Ling-mini-2.0", + "name": "inclusionAI/Ling-mini-2.0", + "display_name": "inclusionAI/Ling-mini-2.0", "modalities": { "input": [ - "text", - "image", - "video" + "text" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 8192, + "output": 8192 }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.119, - "output": 0.2975, - "cache_read": 0.0238 + "input": 0.068, + "output": 0.272 }, "type": "chat" }, { - "id": "claude-opus-4-5", - "name": "claude-opus-4-5", - "display_name": "claude-opus-4-5", + "id": "inclusionAI/Ring-flash-2.0", + "name": "inclusionAI/Ring-flash-2.0", + "display_name": "inclusionAI/Ring-flash-2.0", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { - "context": 200000, - "output": 200000 + "context": 8192, + "output": 8192 }, "tool_call": true, "reasoning": { @@ -64023,43 +74082,59 @@ "default": true }, "cost": { - "input": 5, - "output": 25, - "cache_read": 0.5 + "input": 0.136, + "output": 0.544 }, "type": "chat" }, { - "id": "gemini-3-flash-preview-search", - "name": "gemini-3-flash-preview-search", - "display_name": "gemini-3-flash-preview-search", + "id": "irag-1.0", + "name": "irag-1.0", + "display_name": "irag-1.0", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 2, + "output": 0, + "cache_read": 0 + }, + "type": "imageGeneration" + }, + { + "id": "jina-deepsearch-v1", + "name": "jina-deepsearch-v1", + "display_name": "jina-deepsearch-v1", "modalities": { "input": [ "text", - "image", - "audio" + "image" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 1000000, + "output": 1000000 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": true, "default": true }, "cost": { - "input": 0.5, - "output": 3, - "cache_read": 0.05 + "input": 0.05, + "output": 0.05 }, "type": "chat" }, { - "id": "gemini-3-pro-image-preview", - "name": "gemini-3-pro-image-preview", - "display_name": "gemini-3-pro-image-preview", + "id": "jina-embeddings-v4", + "name": "jina-embeddings-v4", + "display_name": "jina-embeddings-v4", "modalities": { "input": [ "text", @@ -64075,16 +74150,15 @@ "supported": false }, "cost": { - "input": 2, - "output": 12, - "cache_read": 2 + "input": 0.05, + "output": 0.05 }, - "type": "imageGeneration" + "type": "embedding" }, { - "id": "gpt-image-1.5", - "name": "gpt-image-1.5", - "display_name": "gpt-image-1.5", + "id": "jina-reranker-v3", + "name": "jina-reranker-v3", + "display_name": "jina-reranker-v3", "modalities": { "input": [ "text", @@ -64092,24 +74166,23 @@ ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 131000, + "output": 131000 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 5, - "output": 10, - "cache_read": 5 + "input": 0.05, + "output": 0.05 }, - "type": "imageGeneration" + "type": "rerank" }, { - "id": "gpt-5.2", - "name": "gpt-5.2", - "display_name": "gpt-5.2", + "id": "llama-4-maverick", + "name": "llama-4-maverick", + "display_name": "llama-4-maverick", "modalities": { "input": [ "text", @@ -64117,25 +74190,23 @@ ] }, "limit": { - "context": 400000, - "output": 400000 + "context": 1048576, + "output": 1048576 }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.75, - "output": 14, - "cache_read": 0.175 + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "gpt-5.2-chat-latest", - "name": "gpt-5.2-chat-latest", - "display_name": "gpt-5.2-chat-latest", + "id": "llama-4-scout", + "name": "llama-4-scout", + "display_name": "llama-4-scout", "modalities": { "input": [ "text", @@ -64143,52 +74214,48 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 131000, + "output": 131000 }, "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 1.75, - "output": 14, - "cache_read": 0.175 + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "gemini-3-pro-preview", - "name": "gemini-3-pro-preview", - "display_name": "gemini-3-pro-preview", + "id": "qwen-image", + "name": "qwen-image", + "display_name": "qwen-image", "modalities": { "input": [ "text", - "image", - "audio", - "video" + "image" ] }, "limit": { "context": 8192, "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { "input": 2, - "output": 12, - "cache_read": 0.5 + "output": 0, + "cache_read": 0 }, - "type": "chat" + "type": "imageGeneration" }, { - "id": "gpt-5.2-pro", - "name": "gpt-5.2-pro", - "display_name": "gpt-5.2-pro", + "id": "qwen-image-edit", + "name": "qwen-image-edit", + "display_name": "qwen-image-edit", "modalities": { "input": [ "text", @@ -64196,25 +74263,24 @@ ] }, "limit": { - "context": 400000, - "output": 400000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 21, - "output": 168, - "cache_read": 2.1 + "input": 2, + "output": 0, + "cache_read": 0 }, - "type": "chat" + "type": "imageGeneration" }, { - "id": "gpt-5.1", - "name": "gpt-5.1", - "display_name": "gpt-5.1", + "id": "qwen-image-plus", + "name": "qwen-image-plus", + "display_name": "qwen-image-plus", "modalities": { "input": [ "text", @@ -64222,130 +74288,139 @@ ] }, "limit": { - "context": 400000, - "output": 400000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 2, + "output": 0, + "cache_read": 0 + }, + "type": "imageGeneration" + }, + { + "id": "qwen-mt-plus", + "name": "qwen-mt-plus", + "display_name": "qwen-mt-plus", + "modalities": { + "input": [ + "text" + ] + }, + "limit": { + "context": 16000, + "output": 16000 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.492, + "output": 1.476 }, "type": "chat" }, { - "id": "gpt-5.1-codex-max", - "name": "gpt-5.1-codex-max", - "display_name": "gpt-5.1-codex-max", + "id": "qwen-mt-turbo", + "name": "qwen-mt-turbo", + "display_name": "qwen-mt-turbo", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { - "context": 400000, - "output": 400000 + "context": 16000, + "output": 16000 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 0.192, + "output": 0.534912 }, "type": "chat" }, { - "id": "gemini-3-pro-preview-search", - "name": "gemini-3-pro-preview-search", - "display_name": "gemini-3-pro-preview-search", + "id": "qwen3-embedding-0.6b", + "name": "qwen3-embedding-0.6b", + "display_name": "qwen3-embedding-0.6b", "modalities": { "input": [ - "text", - "image", - "audio", - "video" + "text" ] }, "limit": { "context": 8192, "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 2, - "output": 12, - "cache_read": 0.5 + "input": 0.068, + "output": 0.068 }, - "type": "chat" + "type": "embedding" }, { - "id": "gpt-5.1-chat-latest", - "name": "gpt-5.1-chat-latest", - "display_name": "gpt-5.1-chat-latest", + "id": "qwen3-embedding-4b", + "name": "qwen3-embedding-4b", + "display_name": "qwen3-embedding-4b", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 0.068, + "output": 0.068 }, - "type": "chat" + "type": "embedding" }, { - "id": "gpt-5.1-codex", - "name": "gpt-5.1-codex", - "display_name": "gpt-5.1-codex", + "id": "qwen3-embedding-8b", + "name": "qwen3-embedding-8b", + "display_name": "qwen3-embedding-8b", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { - "context": 400000, - "output": 400000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 0.068, + "output": 0.068 }, - "type": "chat" + "type": "embedding" }, { - "id": "gpt-5.1-codex-mini", - "name": "gpt-5.1-codex-mini", - "display_name": "gpt-5.1-codex-mini", + "id": "qwen3-reranker-0.6b", + "name": "qwen3-reranker-0.6b", + "display_name": "qwen3-reranker-0.6b", "modalities": { "input": [ "text", @@ -64353,25 +74428,23 @@ ] }, "limit": { - "context": 400000, - "output": 400000 + "context": 16000, + "output": 16000 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.025 + "input": 0.11, + "output": 0.11 }, - "type": "chat" + "type": "rerank" }, { - "id": "mistral-large-3", - "name": "mistral-large-3", - "display_name": "mistral-large-3", + "id": "qwen3-reranker-4b", + "name": "qwen3-reranker-4b", + "display_name": "qwen3-reranker-4b", "modalities": { "input": [ "text", @@ -64379,23 +74452,23 @@ ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.5, - "output": 1.5 + "input": 0.11, + "output": 0.11 }, - "type": "chat" + "type": "rerank" }, { - "id": "claude-haiku-4-5", - "name": "claude-haiku-4-5", - "display_name": "claude-haiku-4-5", + "id": "qwen3-reranker-8b", + "name": "qwen3-reranker-8b", + "display_name": "qwen3-reranker-8b", "modalities": { "input": [ "text", @@ -64403,25 +74476,41 @@ ] }, "limit": { - "context": 204800, - "output": 204800 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.1, - "output": 5.5, - "cache_read": 0.11 + "input": 0.11, + "output": 0.11 }, - "type": "chat" + "type": "rerank" }, { - "id": "claude-sonnet-4-5", - "name": "claude-sonnet-4-5", - "display_name": "claude-sonnet-4-5", + "id": "tao-8k", + "name": "tao-8k", + "display_name": "tao-8k", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.068, + "output": 0.068 + }, + "type": "embedding" + }, + { + "id": "bce-reranker-base", + "name": "bce-reranker-base", + "display_name": "bce-reranker-base", "modalities": { "input": [ "text", @@ -64429,101 +74518,96 @@ ] }, "limit": { - "context": 1000000, - "output": 1000000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 3.3, - "output": 16.5, - "cache_read": 0.33 + "input": 0.068, + "output": 0.068 }, - "type": "chat" + "type": "rerank" }, { - "id": "gemini-2.5-flash-image", - "name": "gemini-2.5-flash-image", - "display_name": "gemini-2.5-flash-image", + "id": "codex-mini-latest", + "name": "codex-mini-latest", + "display_name": "codex-mini-latest", "modalities": { "input": [ - "image", - "text" + "text", + "image" ] }, "limit": { - "context": 32800, - "output": 32800 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.3, - "output": 2.499, - "cache_read": 0.3 + "input": 1.5, + "output": 6, + "cache_read": 0.375 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "glm-4.6", - "name": "glm-4.6", - "display_name": "glm-4.6", + "id": "doubao-seedream-4-0", + "name": "doubao-seedream-4-0", + "display_name": "doubao-seedream-4-0", "modalities": { "input": [ - "text" + "text", + "image" ] }, "limit": { - "context": 204800, - "output": 204800 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0, + "input": 2, "output": 0, "cache_read": 0 }, - "type": "chat" + "type": "imageGeneration" }, { - "id": "glm-4.6v", - "name": "glm-4.6v", - "display_name": "glm-4.6v", + "id": "embedding-v1", + "name": "embedding-v1", + "display_name": "embedding-v1", "modalities": { "input": [ - "text", - "image", - "video" + "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.137, - "output": 0.411, - "cache_read": 0.0274 + "input": 0.068, + "output": 0.068 }, - "type": "chat" + "type": "embedding" }, { - "id": "grok-4-1-fast-non-reasoning", - "name": "grok-4-1-fast-non-reasoning", - "display_name": "grok-4-1-fast-non-reasoning", + "id": "ernie-4.5-turbo-latest", + "name": "ernie-4.5-turbo-latest", + "display_name": "ernie-4.5-turbo-latest", "modalities": { "input": [ "text", @@ -64531,25 +74615,23 @@ ] }, "limit": { - "context": 2000000, - "output": 2000000 + "context": 135000, + "output": 135000 }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05 + "input": 0.11, + "output": 0.44 }, "type": "chat" }, { - "id": "grok-4-1-fast-reasoning", - "name": "grok-4-1-fast-reasoning", - "display_name": "grok-4-1-fast-reasoning", + "id": "ernie-irag-edit", + "name": "ernie-irag-edit", + "display_name": "ernie-irag-edit", "modalities": { "input": [ "text", @@ -64557,25 +74639,24 @@ ] }, "limit": { - "context": 2000000, - "output": 2000000 + "context": 8192, + "output": 8192 }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05 + "input": 2, + "output": 0, + "cache_read": 0 }, - "type": "chat" + "type": "imageGeneration" }, { - "id": "web-gpt-image-1.5", - "name": "web-gpt-image-1.5", - "display_name": "web-gpt-image-1.5", + "id": "jina-clip-v2", + "name": "jina-clip-v2", + "display_name": "jina-clip-v2", "modalities": { "input": [ "text", @@ -64591,16 +74672,15 @@ "supported": false }, "cost": { - "input": 3, - "output": 3, - "cache_read": 0 + "input": 0.05, + "output": 0.05 }, - "type": "imageGeneration" + "type": "embedding" }, { - "id": "gpt-5", - "name": "gpt-5", - "display_name": "gpt-5", + "id": "jina-reranker-m0", + "name": "jina-reranker-m0", + "display_name": "jina-reranker-m0", "modalities": { "input": [ "text", @@ -64608,52 +74688,50 @@ ] }, "limit": { - "context": 400000, - "output": 400000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 0.05, + "output": 0.05 }, - "type": "chat" + "type": "rerank" }, { - "id": "deepseek-v3.2-fast", - "name": "deepseek-v3.2-fast", - "display_name": "deepseek-v3.2-fast", + "id": "jina-colbert-v2", + "name": "jina-colbert-v2", + "display_name": "jina-colbert-v2", "modalities": { "input": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 1.096, - "output": 3.288, - "cache_read": 1.096 + "input": 0.05, + "output": 0.05 }, - "type": "chat" + "type": "embedding" }, { - "id": "deepseek-v3.2", - "name": "deepseek-v3.2", - "display_name": "deepseek-v3.2", + "id": "gpt-4o-search-preview", + "name": "gpt-4o-search-preview", + "display_name": "gpt-4o-search-preview", "modalities": { "input": [ - "text" + "text", + "image" ] }, "limit": { @@ -64665,44 +74743,43 @@ "supported": false }, "cost": { - "input": 0.302, - "output": 0.453, - "cache_read": 0.0302 + "input": 2.5, + "output": 10, + "cache_read": 1.25 }, "type": "chat" }, { - "id": "deepseek-v3.2-speciale", - "name": "deepseek-v3.2-speciale", - "display_name": "deepseek-v3.2-speciale", + "id": "DeepSeek-R1", + "name": "DeepSeek-R1", + "display_name": "DeepSeek-R1", "modalities": { "input": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 1638000, + "output": 1638000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.302, - "output": 0.453, - "cache_read": 0.0302 + "input": 0.4, + "output": 2 }, "type": "chat" }, { - "id": "deepseek-v3.2-think", - "name": "deepseek-v3.2-think", - "display_name": "deepseek-v3.2-think", + "id": "gpt-4o-mini-search-preview", + "name": "gpt-4o-mini-search-preview", + "display_name": "gpt-4o-mini-search-preview", "modalities": { "input": [ - "text" + "text", + "image" ] }, "limit": { @@ -64714,92 +74791,67 @@ "supported": false }, "cost": { - "input": 0.302, - "output": 0.453, - "cache_read": 0.0302 + "input": 0.15, + "output": 0.6, + "cache_read": 0.075 }, "type": "chat" }, { - "id": "deepseek-math-v2", - "name": "deepseek-math-v2", - "display_name": "deepseek-math-v2", + "id": "jina-embeddings-v3", + "name": "jina-embeddings-v3", + "display_name": "jina-embeddings-v3", "modalities": { "input": [ "text" ] }, "limit": { - "context": 163000, - "output": 163000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true - }, - "cost": { - "input": 0.492, - "output": 1.968, - "cache_read": 0.0984 - }, - "type": "chat" - }, - { - "id": "gpt-5-codex", - "name": "gpt-5-codex", - "display_name": "gpt-5-codex", - "modalities": { - "input": [ - "text", - "image" - ] - }, - "limit": { - "context": 400000, - "output": 400000 - }, - "tool_call": true, - "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 0.05, + "output": 0.05, + "cache_read": 0 }, - "type": "chat" + "type": "embedding" }, { - "id": "gpt-5-pro", - "name": "gpt-5-pro", - "display_name": "gpt-5-pro", + "id": "gemini-2.0-flash", + "name": "gemini-2.0-flash", + "display_name": "gemini-2.0-flash", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video" ] }, "limit": { - "context": 400000, - "output": 400000 + "context": 1048576, + "output": 1048576 }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 15, - "output": 120 + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 }, "type": "chat" }, { - "id": "gpt-5-mini", - "name": "gpt-5-mini", - "display_name": "gpt-5-mini", + "id": "gemini-2.0-flash-preview-image-generation", + "name": "gemini-2.0-flash-preview-image-generation", + "display_name": "gemini-2.0-flash-preview-image-generation", "modalities": { "input": [ "text", @@ -64807,51 +74859,48 @@ ] }, "limit": { - "context": 400000, - "output": 400000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.025 + "input": 0.1, + "output": 0.4, + "cache_read": 0 }, "type": "chat" }, { - "id": "gpt-5-nano", - "name": "gpt-5-nano", - "display_name": "gpt-5-nano", + "id": "mimo-v2-flash-free", + "name": "mimo-v2-flash-free", + "display_name": "mimo-v2-flash-free", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { - "context": 400000, - "output": 400000 + "context": 256000, + "output": 256000 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.05, - "output": 0.4, - "cache_read": 0.005 + "input": 0, + "output": 0, + "cache_read": 0 }, "type": "chat" }, { - "id": "gpt-5-chat-latest", - "name": "gpt-5-chat-latest", - "display_name": "gpt-5-chat-latest", + "id": "FLUX.1-Kontext-pro", + "name": "FLUX.1-Kontext-pro", + "display_name": "FLUX.1-Kontext-pro", "modalities": { "input": [ "text", @@ -64859,24 +74908,23 @@ ] }, "limit": { - "context": 400000, - "output": 400000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 + "input": 40, + "output": 40 }, - "type": "chat" + "type": "imageGeneration" }, { - "id": "claude-opus-4-1", - "name": "claude-opus-4-1", - "display_name": "claude-opus-4-1", + "id": "claude-3-7-sonnet", + "name": "claude-3-7-sonnet", + "display_name": "claude-3-7-sonnet", "modalities": { "input": [ "text", @@ -64893,15 +74941,15 @@ "default": true }, "cost": { - "input": 16.5, - "output": 82.5 + "input": 3.3, + "output": 16.5 }, "type": "chat" }, { - "id": "doubao-seedream-4-5", - "name": "doubao-seedream-4-5", - "display_name": "doubao-seedream-4-5", + "id": "ernie-4.5", + "name": "ernie-4.5", + "display_name": "ernie-4.5", "modalities": { "input": [ "text", @@ -64909,64 +74957,51 @@ ] }, "limit": { - "context": 8192, - "output": 8192 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, - "cost": { - "input": 2, - "output": 0, - "cache_read": 0 - }, - "type": "imageGeneration" - }, - { - "id": "sora-2", - "name": "sora-2", - "display_name": "sora-2", - "limit": { - "context": 8192, - "output": 8192 + "context": 160000, + "output": 160000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 2, - "output": 2 + "input": 0.068, + "output": 0.272 }, "type": "chat" }, { - "id": "sora-2-pro", - "name": "sora-2-pro", - "display_name": "sora-2-pro", + "id": "ernie-4.5-turbo-vl", + "name": "ernie-4.5-turbo-vl", + "display_name": "ernie-4.5-turbo-vl", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 8192, - "output": 8192 + "context": 139000, + "output": 139000 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 2, - "output": 2 + "input": 0.4, + "output": 1.2 }, "type": "chat" }, { - "id": "wan2.6-i2v", - "name": "wan2.6-i2v", - "display_name": "wan2.6-i2v", + "id": "FLUX-1.1-pro", + "name": "FLUX-1.1-pro", + "display_name": "FLUX-1.1-pro", "modalities": { "input": [ - "image", - "text" + "text", + "image" ] }, "limit": { @@ -64978,95 +75013,106 @@ "supported": false }, "cost": { - "input": 2, - "output": 0 + "input": 40, + "output": 40, + "cache_read": 0 }, - "type": "chat" + "type": "imageGeneration" }, { - "id": "wan2.6-t2v", - "name": "wan2.6-t2v", - "display_name": "wan2.6-t2v", + "id": "o3-mini", + "name": "o3-mini", + "display_name": "o3-mini", "modalities": { "input": [ - "text" + "text", + "image" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 200000, + "output": 200000 }, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "cost": { - "input": 2, - "output": 0 + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 }, "type": "chat" }, { - "id": "gpt-4o-audio-preview", - "name": "gpt-4o-audio-preview", - "display_name": "gpt-4o-audio-preview", + "id": "doubao-seed-1-6", + "name": "doubao-seed-1-6", + "display_name": "doubao-seed-1-6", "modalities": { "input": [ "text", - "audio" + "image", + "video" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "cost": { - "input": 2.5, - "output": 10 + "input": 0.18, + "output": 1.8, + "cache_read": 0.036 }, "type": "chat" }, { - "id": "gpt-4o-mini-audio-preview", - "name": "gpt-4o-mini-audio-preview", - "display_name": "gpt-4o-mini-audio-preview", + "id": "doubao-seed-1-6-flash", + "name": "doubao-seed-1-6-flash", + "display_name": "doubao-seed-1-6-flash", "modalities": { "input": [ "text", - "audio" + "image", + "video" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 256000, + "output": 256000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "cost": { - "input": 0.15, - "output": 0.6 + "input": 0.044, + "output": 0.44, + "cache_read": 0.0088 }, "type": "chat" }, { - "id": "o3", - "name": "o3", - "display_name": "o3", + "id": "doubao-seed-1-6-lite", + "name": "doubao-seed-1-6-lite", + "display_name": "doubao-seed-1-6-lite", "modalities": { "input": [ "text", - "image" + "image", + "video" ] }, "limit": { - "context": 200000, - "output": 200000 + "context": 256000, + "output": 256000 }, "tool_call": true, "reasoning": { @@ -65074,28 +75120,26 @@ "default": true }, "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 0.082, + "output": 0.656, + "cache_read": 0.0164 }, "type": "chat" }, { - "id": "gemini-2.5-pro", - "name": "gemini-2.5-pro", - "display_name": "gemini-2.5-pro", + "id": "doubao-seed-1-6-thinking", + "name": "doubao-seed-1-6-thinking", + "display_name": "doubao-seed-1-6-thinking", "modalities": { "input": [ "text", "image", - "audio", - "video", - "pdf" + "video" ] }, "limit": { - "context": 1048576, - "output": 1048576 + "context": 256000, + "output": 256000 }, "tool_call": true, "reasoning": { @@ -65103,22 +75147,34 @@ "default": true }, "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 0.18, + "output": 1.8, + "cache_read": 0.036 }, "type": "chat" }, { - "id": "jimeng-3.0-1080p", - "name": "jimeng-3.0-1080p", - "display_name": "jimeng-3.0-1080p", - "modalities": { - "input": [ - "text", - "image" - ] + "id": "qwen3-30b-a3b-instruct-2507", + "name": "qwen3-30b-a3b-instruct-2507", + "display_name": "qwen3-30b-a3b-instruct-2507", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.1028, + "output": 0.4112 }, + "type": "chat" + }, + { + "id": "qwen3-30b-a3b-thinking-2507", + "name": "qwen3-30b-a3b-thinking-2507", + "display_name": "qwen3-30b-a3b-thinking-2507", "limit": { "context": 8192, "output": 8192 @@ -65128,21 +75184,15 @@ "supported": false }, "cost": { - "input": 2, - "output": 0 + "input": 0.12, + "output": 1.2 }, "type": "chat" }, { - "id": "jimeng-3.0-720p", - "name": "jimeng-3.0-720p", - "display_name": "jimeng-3.0-720p", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "qwen-3-235b-a22b-thinking-2507", + "name": "qwen-3-235b-a22b-thinking-2507", + "display_name": "qwen-3-235b-a22b-thinking-2507", "limit": { "context": 8192, "output": 8192 @@ -65152,19 +75202,18 @@ "supported": false }, "cost": { - "input": 2, - "output": 0 + "input": 0.28, + "output": 2.8 }, "type": "chat" }, { - "id": "jimeng-3.0-pro", - "name": "jimeng-3.0-pro", - "display_name": "jimeng-3.0-pro", + "id": "gemini-embedding-001", + "name": "gemini-embedding-001", + "display_name": "gemini-embedding-001", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { @@ -65176,23 +75225,23 @@ "supported": false }, "cost": { - "input": 2, - "output": 0 + "input": 0.15, + "output": 0.15 }, - "type": "chat" + "type": "embedding" }, { - "id": "kimi-for-coding-free", - "name": "kimi-for-coding-free", - "display_name": "kimi-for-coding-free", + "id": "gpt-oss-120b", + "name": "gpt-oss-120b", + "display_name": "gpt-oss-120b", "modalities": { "input": [ "text" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 131072, + "output": 131072 }, "tool_call": true, "reasoning": { @@ -65200,48 +75249,33 @@ "default": true }, "cost": { - "input": 0, - "output": 0, - "cache_read": 0 + "input": 0.18, + "output": 0.9 }, "type": "chat" }, { - "id": "o3-pro", - "name": "o3-pro", - "display_name": "o3-pro", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "DeepSeek-R1-Distill-Qwen-32B", + "name": "DeepSeek-R1-Distill-Qwen-32B", + "display_name": "DeepSeek-R1-Distill-Qwen-32B", "limit": { - "context": 200000, - "output": 200000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 20, - "output": 80, - "cache_read": 20 + "input": 0.28, + "output": 0.84 }, "type": "chat" }, { - "id": "wan2.2-i2v-plus", - "name": "wan2.2-i2v-plus", - "display_name": "wan2.2-i2v-plus", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "DeepSeek-R1-Distill-Qwen-7B", + "name": "DeepSeek-R1-Distill-Qwen-7B", + "display_name": "DeepSeek-R1-Distill-Qwen-7B", "limit": { "context": 8192, "output": 8192 @@ -65251,20 +75285,15 @@ "supported": false }, "cost": { - "input": 2, - "output": 0 + "input": 0.06, + "output": 0.12 }, "type": "chat" }, { - "id": "wan2.2-t2v-plus", - "name": "wan2.2-t2v-plus", - "display_name": "wan2.2-t2v-plus", - "modalities": { - "input": [ - "text" - ] - }, + "id": "QwQ-32B", + "name": "QwQ-32B", + "display_name": "QwQ-32B", "limit": { "context": 8192, "output": 8192 @@ -65274,19 +75303,20 @@ "supported": false }, "cost": { - "input": 2, - "output": 0 + "input": 0.28, + "output": 0.84 }, "type": "chat" }, { - "id": "wan2.5-i2v-preview", - "name": "wan2.5-i2v-preview", - "display_name": "wan2.5-i2v-preview", + "id": "Qwen2-VL-72B-Instruct", + "name": "Qwen2-VL-72B-Instruct", + "display_name": "Qwen2-VL-72B-Instruct", "modalities": { "input": [ "text", - "image" + "image", + "video" ] }, "limit": { @@ -65298,18 +75328,20 @@ "supported": false }, "cost": { - "input": 2, - "output": 0 + "input": 2.18, + "output": 6.54 }, "type": "chat" }, { - "id": "wan2.5-t2v-preview", - "name": "wan2.5-t2v-preview", - "display_name": "wan2.5-t2v-preview", + "id": "Qwen2-VL-7B-Instruct", + "name": "Qwen2-VL-7B-Instruct", + "display_name": "Qwen2-VL-7B-Instruct", "modalities": { "input": [ - "text" + "text", + "image", + "video" ] }, "limit": { @@ -65321,15 +75353,15 @@ "supported": false }, "cost": { - "input": 2, - "output": 0 + "input": 0.28, + "output": 0.7 }, "type": "chat" }, { - "id": "web-sora-2", - "name": "web-sora-2", - "display_name": "web-sora-2", + "id": "cc-kimi-for-coding", + "name": "cc-kimi-for-coding", + "display_name": "cc-kimi-for-coding", "limit": { "context": 8192, "output": 8192 @@ -65339,15 +75371,16 @@ "supported": false }, "cost": { - "input": 2, - "output": 2 + "input": 0.2, + "output": 0.2, + "cache_read": 0.02 }, "type": "chat" }, { - "id": "web-sora-2-pro", - "name": "web-sora-2-pro", - "display_name": "web-sora-2-pro", + "id": "Qwen/Qwen3-30B-A3B", + "name": "Qwen/Qwen3-30B-A3B", + "display_name": "Qwen/Qwen3-30B-A3B", "limit": { "context": 8192, "output": 8192 @@ -65357,15 +75390,15 @@ "supported": false }, "cost": { - "input": 2, - "output": 2 + "input": 1, + "output": 1 }, "type": "chat" }, { - "id": "cc-glm-4.6", - "name": "cc-glm-4.6", - "display_name": "cc-glm-4.6", + "id": "Qwen/Qwen3-32B", + "name": "Qwen/Qwen3-32B", + "display_name": "Qwen/Qwen3-32B", "limit": { "context": 8192, "output": 8192 @@ -65375,119 +75408,57 @@ "supported": false }, "cost": { - "input": 0.06, - "output": 0.22 + "input": 0.4, + "output": 0.8 }, "type": "chat" }, { - "id": "coding-glm-4.6", - "name": "coding-glm-4.6", - "display_name": "coding-glm-4.6", - "modalities": { - "input": [ - "text" - ] - }, + "id": "Qwen/Qwen3-14B", + "name": "Qwen/Qwen3-14B", + "display_name": "Qwen/Qwen3-14B", "limit": { "context": 8192, "output": 8192 }, - "tool_call": true, - "reasoning": { - "supported": true, - "default": true - }, - "cost": { - "input": 0.06, - "output": 0.22, - "cache_read": 0.010998 - }, - "type": "chat" - }, - { - "id": "coding-glm-4.6-free", - "name": "coding-glm-4.6-free", - "display_name": "coding-glm-4.6-free", - "modalities": { - "input": [ - "text" - ] - }, - "limit": { - "context": 200000, - "output": 200000 - }, - "tool_call": true, - "reasoning": { - "supported": true, - "default": true - }, - "cost": { - "input": 0, - "output": 0, - "cache_read": 0 - }, - "type": "chat" - }, - { - "id": "coding-minimax-m2", - "name": "coding-minimax-m2", - "display_name": "coding-minimax-m2", - "modalities": { - "input": [ - "text" - ] - }, - "limit": { - "context": 204800, - "output": 204800 - }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0, - "output": 0, - "cache_read": 0 + "input": 0.5, + "output": 0.5 }, "type": "chat" }, { - "id": "coding-minimax-m2-free", - "name": "coding-minimax-m2-free", - "display_name": "coding-minimax-m2-free", - "modalities": { - "input": [ - "text" - ] - }, + "id": "Qwen/Qwen3-8B", + "name": "Qwen/Qwen3-8B", + "display_name": "Qwen/Qwen3-8B", "limit": { - "context": 204800, - "output": 204800 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0, - "output": 0, - "cache_read": 0 + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "flux-2-flex", - "name": "flux-2-flex", - "display_name": "flux-2-flex", + "id": "gemini-2.0-pro-exp-02-05-search", + "name": "gemini-2.0-pro-exp-02-05-search", + "display_name": "gemini-2.0-pro-exp-02-05-search", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video" ] }, "limit": { @@ -65499,20 +75470,21 @@ "supported": false }, "cost": { - "input": 2, - "output": 0, - "cache_read": 0 + "input": 1.25, + "output": 5 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "flux-2-pro", - "name": "flux-2-pro", - "display_name": "flux-2-pro", + "id": "gemini-2.0-flash-search", + "name": "gemini-2.0-flash-search", + "display_name": "gemini-2.0-flash-search", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video" ] }, "limit": { @@ -65524,23 +75496,22 @@ "supported": false }, "cost": { - "input": 2, - "output": 0, - "cache_read": 0 + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "gemini-2.5-pro-search", - "name": "gemini-2.5-pro-search", - "display_name": "gemini-2.5-pro-search", + "id": "gemini-2.5-pro-preview-06-05", + "name": "gemini-2.5-pro-preview-06-05", + "display_name": "gemini-2.5-pro-preview-06-05", "modalities": { "input": [ "text", "image", "audio", - "video", - "pdf" + "video" ] }, "limit": { @@ -65555,355 +75526,297 @@ "cost": { "input": 1.25, "output": 10, - "cache_read": 0.31 + "cache_read": 0.125 }, "type": "chat" }, { - "id": "kimi-k2-thinking", - "name": "kimi-k2-thinking", - "display_name": "kimi-k2-thinking", - "modalities": { - "input": [ - "text" - ] - }, + "id": "Aihubmix-MAI-DS-R1", + "name": "Aihubmix-MAI-DS-R1", + "display_name": "Aihubmix-MAI-DS-R1", "limit": { - "context": 262144, - "output": 262144 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.548, - "output": 2.192, - "cache_read": 0.137 + "input": 0.6, + "output": 1.8 }, "type": "chat" }, { - "id": "claude-opus-4-0", - "name": "claude-opus-4-0", - "display_name": "claude-opus-4-0", + "id": "embedding-2", + "name": "embedding-2", + "display_name": "embedding-2", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { - "context": 200000, - "output": 200000 + "context": 8000, + "output": 8000 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 16.5, - "output": 82.5 + "input": 0.0686, + "output": 0.0686 }, - "type": "chat" + "type": "embedding" }, { - "id": "claude-sonnet-4-0", - "name": "claude-sonnet-4-0", - "display_name": "claude-sonnet-4-0", + "id": "embedding-3", + "name": "embedding-3", + "display_name": "embedding-3", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { - "context": 1000000, - "output": 1000000 + "context": 8000, + "output": 8000 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 3.3, - "output": 16.5, - "cache_read": 0.33 + "input": 0.0686, + "output": 0.0686 }, - "type": "chat" + "type": "embedding" }, { - "id": "gemini-2.5-flash", - "name": "gemini-2.5-flash", - "display_name": "gemini-2.5-flash", + "id": "Qwen/Qwen2.5-VL-72B-Instruct", + "name": "Qwen/Qwen2.5-VL-72B-Instruct", + "display_name": "Qwen/Qwen2.5-VL-72B-Instruct", "modalities": { "input": [ "text", "image", - "audio", "video" ] }, "limit": { - "context": 1048576, - "output": 1048576 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.3, - "output": 2.499, - "cache_read": 0.075 + "input": 0.5, + "output": 0.5, + "cache_read": 0 }, "type": "chat" }, { - "id": "gemini-2.5-flash-preview-09-2025", - "name": "gemini-2.5-flash-preview-09-2025", - "display_name": "gemini-2.5-flash-preview-09-2025", + "id": "o1", + "name": "o1", + "display_name": "o1", "modalities": { "input": [ - "text", - "image", - "audio", - "video" + "text" ] }, "limit": { - "context": 1048576, - "output": 1048576 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "cost": { - "input": 0.3, - "output": 2.499, - "cache_read": 0.075 + "input": 15, + "output": 60, + "cache_read": 7.5 }, "type": "chat" }, { - "id": "glm-4.5v", - "name": "glm-4.5v", - "display_name": "glm-4.5v", + "id": "o1-pro", + "name": "o1-pro", + "display_name": "o1-pro", "modalities": { "input": [ - "text", - "image", - "video" + "text" ] }, "limit": { - "context": 64000, - "output": 64000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "cost": { - "input": 0.274, - "output": 0.822, - "cache_read": 0.274 + "input": 170, + "output": 680, + "cache_read": 170 }, "type": "chat" }, { - "id": "gemini-2.5-flash-lite", - "name": "gemini-2.5-flash-lite", - "display_name": "gemini-2.5-flash-lite", + "id": "ByteDance-Seed/Seed-OSS-36B-Instruct", + "name": "ByteDance-Seed/Seed-OSS-36B-Instruct", + "display_name": "ByteDance-Seed/Seed-OSS-36B-Instruct", "modalities": { "input": [ "text", - "image", - "audio", - "video" + "image" ] }, "limit": { - "context": 1048576, - "output": 1048576 + "context": 256000, + "output": 256000 }, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "input": 0.2, + "output": 0.534 }, "type": "chat" }, { - "id": "gemini-2.5-flash-lite-preview-09-2025", - "name": "gemini-2.5-flash-lite-preview-09-2025", - "display_name": "gemini-2.5-flash-lite-preview-09-2025", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "doubao-seed-1-6-250615", + "name": "doubao-seed-1-6-250615", + "display_name": "doubao-seed-1-6-250615", "limit": { - "context": 1048576, - "output": 1048576 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "input": 0.18, + "output": 2.52, + "cache_read": 0.036 }, "type": "chat" }, { - "id": "gemini-2.5-flash-nothink", - "name": "gemini-2.5-flash-nothink", - "display_name": "gemini-2.5-flash-nothink", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "doubao-seed-1-6-flash-250615", + "name": "doubao-seed-1-6-flash-250615", + "display_name": "doubao-seed-1-6-flash-250615", "limit": { - "context": 1047576, - "output": 1047576 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.3, - "output": 2.499, - "cache_read": 0.075 + "input": 0.044, + "output": 0.44, + "cache_read": 0.0088 }, "type": "chat" }, { - "id": "gemini-2.5-flash-search", - "name": "gemini-2.5-flash-search", - "display_name": "gemini-2.5-flash-search", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "doubao-seed-1-6-thinking-250615", + "name": "doubao-seed-1-6-thinking-250615", + "display_name": "doubao-seed-1-6-thinking-250615", "limit": { - "context": 1048576, - "output": 1048576 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.3, - "output": 2.499, - "cache_read": 0.075 + "input": 0.18, + "output": 2.52, + "cache_read": 0.036 }, "type": "chat" }, { - "id": "gemini-2.5-flash-preview-05-20-nothink", - "name": "gemini-2.5-flash-preview-05-20-nothink", - "display_name": "gemini-2.5-flash-preview-05-20-nothink", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "doubao-seed-1-6-vision-250815", + "name": "doubao-seed-1-6-vision-250815", + "display_name": "doubao-seed-1-6-vision-250815", "limit": { - "context": 1048576, - "output": 1048576 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.3, - "output": 2.499, - "cache_read": 0.075 + "input": 0.10959, + "output": 1.0959, + "cache_read": 0.021918 }, "type": "chat" }, { - "id": "gemini-2.5-flash-preview-05-20-search", - "name": "gemini-2.5-flash-preview-05-20-search", - "display_name": "gemini-2.5-flash-preview-05-20-search", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "Doubao-1.5-thinking-pro", + "name": "Doubao-1.5-thinking-pro", + "display_name": "Doubao-1.5-thinking-pro", "limit": { - "context": 1048576, - "output": 1048576 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.3, - "output": 2.499, - "cache_read": 0.075 + "input": 0.62, + "output": 2.48, + "cache_read": 0.62 }, "type": "chat" }, { - "id": "veo-2.0-generate-001", - "name": "veo-2.0-generate-001", - "display_name": "veo-2.0-generate-001", + "id": "cc-minimax-m2", + "name": "cc-minimax-m2", + "display_name": "cc-minimax-m2", "modalities": { "input": [ - "video" + "text" ] }, "limit": { "context": 8192, "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 2, - "output": 2, - "cache_read": 0 + "input": 0.1, + "output": 0.1 }, "type": "chat" }, { - "id": "veo3.1", - "name": "veo3.1", - "display_name": "veo3.1", + "id": "deepseek-ai/DeepSeek-Prover-V2-671B", + "name": "deepseek-ai/DeepSeek-Prover-V2-671B", + "display_name": "deepseek-ai/DeepSeek-Prover-V2-671B", "limit": { "context": 8192, "output": 8192 @@ -65913,21 +75826,15 @@ "supported": false }, "cost": { - "input": 200, - "output": 200 + "input": 0.1, + "output": 0.1 }, "type": "chat" }, { - "id": "imagen-4.0", - "name": "imagen-4.0", - "display_name": "imagen-4.0", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "gemma-3-12b-it", + "name": "gemma-3-12b-it", + "display_name": "gemma-3-12b-it", "limit": { "context": 8192, "output": 8192 @@ -65937,22 +75844,16 @@ "supported": false }, "cost": { - "input": 2, - "output": 2, + "input": 0.2, + "output": 0.2, "cache_read": 0 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "imagen-4.0-fast-generate-001", - "name": "imagen-4.0-fast-generate-001", - "display_name": "imagen-4.0-fast-generate-001", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "gemma-3-27b-it", + "name": "gemma-3-27b-it", + "display_name": "gemma-3-27b-it", "limit": { "context": 8192, "output": 8192 @@ -65962,21 +75863,16 @@ "supported": false }, "cost": { - "input": 2, - "output": 2 + "input": 0.2, + "output": 0.2, + "cache_read": 0 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "imagen-4.0-fast-generate-preview-06-06", - "name": "imagen-4.0-fast-generate-preview-06-06", - "display_name": "imagen-4.0-fast-generate-preview-06-06", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "gemma-3-4b-it", + "name": "gemma-3-4b-it", + "display_name": "gemma-3-4b-it", "limit": { "context": 8192, "output": 8192 @@ -65986,21 +75882,16 @@ "supported": false }, "cost": { - "input": 2, - "output": 2 + "input": 0.2, + "output": 0.2, + "cache_read": 0 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "imagen-4.0-generate-001", - "name": "imagen-4.0-generate-001", - "display_name": "imagen-4.0-generate-001", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "gemma-3n-e4b-it", + "name": "gemma-3n-e4b-it", + "display_name": "gemma-3n-e4b-it", "limit": { "context": 8192, "output": 8192 @@ -66010,15 +75901,16 @@ "supported": false }, "cost": { - "input": 2, - "output": 2 + "input": 0.2, + "output": 0.2, + "cache_read": 0 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "imagen-4.0-ultra-generate-001", - "name": "imagen-4.0-ultra-generate-001", - "display_name": "imagen-4.0-ultra-generate-001", + "id": "gpt-4o-image-vip", + "name": "gpt-4o-image-vip", + "display_name": "gpt-4o-image-vip", "modalities": { "input": [ "text", @@ -66034,15 +75926,16 @@ "supported": false }, "cost": { - "input": 2, - "output": 2 + "input": 7, + "output": 7, + "cache_read": 0 }, "type": "imageGeneration" }, { - "id": "imagen-4.0-ultra", - "name": "imagen-4.0-ultra", - "display_name": "imagen-4.0-ultra", + "id": "gpt-4o-image", + "name": "gpt-4o-image", + "display_name": "gpt-4o-image", "modalities": { "input": [ "text", @@ -66058,22 +75951,16 @@ "supported": false }, "cost": { - "input": 2, - "output": 2, + "input": 3, + "output": 3, "cache_read": 0 }, "type": "imageGeneration" }, { - "id": "gpt-image-1", - "name": "gpt-image-1", - "display_name": "gpt-image-1", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "gemma-3-1b-it", + "name": "gemma-3-1b-it", + "display_name": "gemma-3-1b-it", "limit": { "context": 8192, "output": 8192 @@ -66083,20 +75970,19 @@ "supported": false }, "cost": { - "input": 5, - "output": 40, - "cache_read": 5 + "input": 0.2, + "output": 0.2, + "cache_read": 0 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "gpt-image-1-mini", - "name": "gpt-image-1-mini", - "display_name": "gpt-image-1-mini", + "id": "deepseek-r1-distill-llama-70b", + "name": "deepseek-r1-distill-llama-70b", + "display_name": "deepseek-r1-distill-llama-70b", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { @@ -66105,93 +75991,85 @@ }, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "cost": { - "input": 5, - "output": 40, - "cache_read": 5 + "input": 0.8, + "output": 1.6 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "o4-mini", - "name": "o4-mini", - "display_name": "o4-mini", + "id": "gpt-4o-mini-tts", + "name": "gpt-4o-mini-tts", + "display_name": "gpt-4o-mini-tts", "modalities": { "input": [ - "text", - "image" + "audio" ] }, "limit": { - "context": 200000, - "output": 200000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.275 - }, - "type": "chat" + "input": 15, + "output": 15 + } }, { - "id": "gemini-2.5-flash-image-preview", - "name": "gemini-2.5-flash-image-preview", - "display_name": "gemini-2.5-flash-image-preview", + "id": "gemini-2.0-flash-exp", + "name": "gemini-2.0-flash-exp", + "display_name": "gemini-2.0-flash-exp", "modalities": { "input": [ + "text", "image", - "text" + "audio", + "video" ] }, "limit": { - "context": 32800, - "output": 32800 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.3, - "output": 1.2, - "cache_read": 0.3 + "input": 0.02, + "output": 0.08 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "glm-4.5", - "name": "glm-4.5", - "display_name": "glm-4.5", - "modalities": { - "input": [ - "text" - ] - }, + "id": "tngtech/DeepSeek-R1T-Chimera", + "name": "tngtech/DeepSeek-R1T-Chimera", + "display_name": "tngtech/DeepSeek-R1T-Chimera", "limit": { - "context": 131072, - "output": 131072 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.4, - "output": 1.6 + "input": 0.02, + "output": 0.02 }, "type": "chat" }, { - "id": "gpt-4.1", - "name": "gpt-4.1", - "display_name": "gpt-4.1", + "id": "claude-3-5-sonnet", + "name": "claude-3-5-sonnet", + "display_name": "claude-3-5-sonnet", "modalities": { "input": [ "text", @@ -66199,237 +76077,238 @@ ] }, "limit": { - "context": 1047576, - "output": 1047576 + "context": 200000, + "output": 200000 }, "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 + "input": 3.3, + "output": 16.5 }, "type": "chat" }, { - "id": "grok-4", - "name": "grok-4", - "display_name": "grok-4", + "id": "o1-preview", + "name": "o1-preview", + "display_name": "o1-preview", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 256000, - "output": 256000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "cost": { - "input": 3.3, - "output": 16.5, - "cache_read": 0.825 + "input": 15, + "output": 60, + "cache_read": 7.5 }, "type": "chat" }, { - "id": "grok-4-fast-non-reasoning", - "name": "grok-4-fast-non-reasoning", - "display_name": "grok-4-fast-non-reasoning", + "id": "o1-mini", + "name": "o1-mini", + "display_name": "o1-mini", "limit": { - "context": 2000000, - "output": 2000000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05 + "input": 3, + "output": 12, + "cache_read": 1.5 }, "type": "chat" }, { - "id": "grok-4-fast-reasoning", - "name": "grok-4-fast-reasoning", - "display_name": "grok-4-fast-reasoning", + "id": "gemini-2.0-flash-thinking-exp-01-21", + "name": "gemini-2.0-flash-thinking-exp-01-21", + "display_name": "gemini-2.0-flash-thinking-exp-01-21", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { - "context": 2000000, - "output": 2000000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "cost": { - "input": 0.2, - "output": 0.5, - "cache_read": 0.05 + "input": 0.076, + "output": 0.304 }, "type": "chat" }, { - "id": "kimi-k2-0711", - "name": "kimi-k2-0711", - "display_name": "kimi-k2-0711", + "id": "gpt-4o-2024-11-20", + "name": "gpt-4o-2024-11-20", + "display_name": "gpt-4o-2024-11-20", "modalities": { "input": [ - "text" + "text", + "image" ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 128000, + "output": 128000 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.54, - "output": 2.16 + "input": 2.5, + "output": 10, + "cache_read": 1.25 }, "type": "chat" }, { - "id": "kimi-k2-turbo-preview", - "name": "kimi-k2-turbo-preview", - "display_name": "kimi-k2-turbo-preview", + "id": "gpt-4o", + "name": "gpt-4o", + "display_name": "gpt-4o", "modalities": { "input": [ - "text" + "text", + "image" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 128000, + "output": 128000 }, "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 1.2, - "output": 4.8, - "cache_read": 0.3 + "input": 2.5, + "output": 10, + "cache_read": 1.25 }, "type": "chat" }, { - "id": "qwen3-vl-235b-a22b-instruct", - "name": "qwen3-vl-235b-a22b-instruct", - "display_name": "qwen3-vl-235b-a22b-instruct", + "id": "chatgpt-4o-latest", + "name": "chatgpt-4o-latest", + "display_name": "chatgpt-4o-latest", "modalities": { "input": [ "text", - "image", - "video" + "image" ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.274, - "output": 1.096 + "input": 5, + "output": 15 }, "type": "chat" }, { - "id": "qwen3-vl-235b-a22b-thinking", - "name": "qwen3-vl-235b-a22b-thinking", - "display_name": "qwen3-vl-235b-a22b-thinking", + "id": "gpt-4o-mini", + "name": "gpt-4o-mini", + "display_name": "gpt-4o-mini", "modalities": { "input": [ "text", - "image", - "video" + "image" ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 128000, + "output": 128000 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.274, - "output": 2.74 + "input": 0.15, + "output": 0.6, + "cache_read": 0.075 }, "type": "chat" }, { - "id": "qwen3-vl-30b-a3b-instruct", - "name": "qwen3-vl-30b-a3b-instruct", - "display_name": "qwen3-vl-30b-a3b-instruct", - "modalities": { - "input": [ - "text", - "image", - "video" - ] - }, + "id": "AiHubmix-mistral-medium", + "name": "AiHubmix-mistral-medium", + "display_name": "AiHubmix-mistral-medium", "limit": { - "context": 128000, - "output": 128000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.1028, - "output": 0.4112 + "input": 0.4, + "output": 2 }, "type": "chat" }, { - "id": "qwen3-vl-30b-a3b-thinking", - "name": "qwen3-vl-30b-a3b-thinking", - "display_name": "qwen3-vl-30b-a3b-thinking", + "id": "gemini-2.0-pro-exp-02-05", + "name": "gemini-2.0-pro-exp-02-05", + "display_name": "gemini-2.0-pro-exp-02-05", "modalities": { "input": [ "text", "image", + "audio", "video" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.1028, - "output": 1.028 + "input": 1.25, + "output": 5 }, "type": "chat" }, { - "id": "veo-3.0-generate-preview", - "name": "veo-3.0-generate-preview", - "display_name": "veo-3.0-generate-preview", - "modalities": { - "input": [ - "text", - "image", - "video" - ] - }, + "id": "ernie-x1.1-preview", + "name": "ernie-x1.1-preview", + "display_name": "ernie-x1.1-preview", "limit": { "context": 8192, "output": 8192 @@ -66439,92 +76318,80 @@ "supported": false }, "cost": { - "input": 2, - "output": 2, - "cache_read": 0 + "input": 0.136, + "output": 0.544 }, "type": "chat" }, { - "id": "veo-3.1-fast-generate-preview", - "name": "veo-3.1-fast-generate-preview", - "display_name": "veo-3.1-fast-generate-preview", + "id": "minimax-m2", + "name": "minimax-m2", + "display_name": "minimax-m2", "modalities": { "input": [ - "text", - "image", - "video" + "text" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 204800, + "output": 204800 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 2, - "output": 0 + "input": 0.288, + "output": 1.152 }, "type": "chat" }, { - "id": "veo-3.1-generate-preview", - "name": "veo-3.1-generate-preview", - "display_name": "veo-3.1-generate-preview", + "id": "ERNIE-X1.1-Preview", + "name": "ERNIE-X1.1-Preview", + "display_name": "ERNIE-X1.1-Preview", "modalities": { "input": [ - "text", - "image", - "video" + "text" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 119000, + "output": 119000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "cost": { - "input": 2, - "output": 2, - "cache_read": 0 + "input": 0.136, + "output": 0.544 }, "type": "chat" }, { - "id": "flux-kontext-max", - "name": "flux-kontext-max", - "display_name": "flux-kontext-max", + "id": "Qwen/QwQ-32B", + "name": "Qwen/QwQ-32B", + "display_name": "Qwen/QwQ-32B", "limit": { "context": 8192, "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 2, - "output": 0, - "cache_read": 0 + "input": 0.14, + "output": 0.56 }, "type": "chat" }, { - "id": "aihubmix-router", - "name": "aihubmix-router", - "display_name": "aihubmix-router", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "chutesai/Mistral-Small-3.1-24B-Instruct-2503", + "name": "chutesai/Mistral-Small-3.1-24B-Instruct-2503", + "display_name": "chutesai/Mistral-Small-3.1-24B-Instruct-2503", "limit": { "context": 8192, "output": 8192 @@ -66534,41 +76401,33 @@ "supported": false }, "cost": { - "input": 0.4, - "output": 1.6, - "cache_read": 0.1 + "input": 0.2, + "output": 0.8 }, "type": "chat" }, { - "id": "gpt-4.1-mini", - "name": "gpt-4.1-mini", - "display_name": "gpt-4.1-mini", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "MiniMaxAI/MiniMax-M1-80k", + "name": "MiniMaxAI/MiniMax-M1-80k", + "display_name": "MiniMaxAI/MiniMax-M1-80k", "limit": { - "context": 1047576, - "output": 1047576 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.4, - "output": 1.6, - "cache_read": 0.1 + "input": 0.6, + "output": 2.4 }, "type": "chat" }, { - "id": "qwen3-vl-plus", - "name": "qwen3-vl-plus", - "display_name": "qwen3-vl-plus", + "id": "Qwen/Qwen2.5-VL-32B-Instruct", + "name": "Qwen/Qwen2.5-VL-32B-Instruct", + "display_name": "Qwen/Qwen2.5-VL-32B-Instruct", "modalities": { "input": [ "text", @@ -66577,24 +76436,23 @@ ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 8192, + "output": 8192 }, "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 0.137, - "output": 1.37, - "cache_read": 0.0274 + "input": 0.24, + "output": 0.24 }, "type": "chat" }, { - "id": "gpt-4.1-nano", - "name": "gpt-4.1-nano", - "display_name": "gpt-4.1-nano", + "id": "baidu/ERNIE-4.5-300B-A47B", + "name": "baidu/ERNIE-4.5-300B-A47B", + "display_name": "baidu/ERNIE-4.5-300B-A47B", "modalities": { "input": [ "text", @@ -66602,52 +76460,48 @@ ] }, "limit": { - "context": 1047576, - "output": 1047576 + "context": 8192, + "output": 8192 }, "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.025 + "input": 0.32, + "output": 1.28, + "cache_read": 0 }, "type": "chat" }, { - "id": "gemini-2.5-pro-preview-05-06", - "name": "gemini-2.5-pro-preview-05-06", - "display_name": "gemini-2.5-pro-preview-05-06", + "id": "bge-large-en", + "name": "bge-large-en", + "display_name": "bge-large-en", "modalities": { "input": [ "text", - "image", - "audio", - "video" + "image" ] }, "limit": { - "context": 1048576, - "output": 1048576 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 0.068, + "output": 0.068 }, - "type": "chat" + "type": "embedding" }, { - "id": "gemini-2.5-pro-preview-03-25", - "name": "gemini-2.5-pro-preview-03-25", - "display_name": "gemini-2.5-pro-preview-03-25", + "id": "bge-large-zh", + "name": "bge-large-zh", + "display_name": "bge-large-zh", "modalities": { "input": [ "text", @@ -66660,54 +76514,40 @@ }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 0.068, + "output": 0.068 }, - "type": "chat" + "type": "embedding" }, { - "id": "gemini-2.5-pro-preview-05-06-search", - "name": "gemini-2.5-pro-preview-05-06-search", - "display_name": "gemini-2.5-pro-preview-05-06-search", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "codestral-latest", + "name": "codestral-latest", + "display_name": "codestral-latest", "limit": { "context": 8192, "output": 8192 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 0.4, + "output": 1.2 }, "type": "chat" }, { - "id": "gemini-2.5-pro-preview-03-25-search", - "name": "gemini-2.5-pro-preview-03-25-search", - "display_name": "gemini-2.5-pro-preview-03-25-search", + "id": "ernie-4.5-0.3b", + "name": "ernie-4.5-0.3b", + "display_name": "ernie-4.5-0.3b", "modalities": { "input": [ "text", - "image", - "audio", - "video" + "image" ] }, "limit": { @@ -66716,20 +76556,18 @@ }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 0.0136, + "output": 0.0544 }, "type": "chat" }, { - "id": "qwen3-max-preview", - "name": "qwen3-max-preview", - "display_name": "qwen3-max-preview", + "id": "ernie-4.5-turbo-128k-preview", + "name": "ernie-4.5-turbo-128k-preview", + "display_name": "ernie-4.5-turbo-128k-preview", "modalities": { "input": [ "text", @@ -66745,41 +76583,39 @@ "supported": false }, "cost": { - "input": 0.822, - "output": 3.288, - "cache_read": 0.822 + "input": 0.108, + "output": 0.432 }, "type": "chat" }, { - "id": "qwen3-max", - "name": "qwen3-max", - "display_name": "qwen3-max", + "id": "ernie-x1-turbo", + "name": "ernie-x1-turbo", + "display_name": "ernie-x1-turbo", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 50500, + "output": 50500 }, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "cost": { - "input": 0.822, - "output": 3.288, - "cache_read": 0.822 + "input": 0.136, + "output": 0.544 }, "type": "chat" }, { - "id": "qwen3-next-80b-a3b-instruct", - "name": "qwen3-next-80b-a3b-instruct", - "display_name": "qwen3-next-80b-a3b-instruct", + "id": "gemini-2.0-flash-exp-search", + "name": "gemini-2.0-flash-exp-search", + "display_name": "gemini-2.0-flash-exp-search", "modalities": { "input": [ "text", @@ -66787,275 +76623,218 @@ ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 8192, + "output": 8192 }, "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 0.138, - "output": 0.552 + "input": 0.1, + "output": 0.4 }, "type": "chat" }, { - "id": "qwen3-next-80b-a3b-thinking", - "name": "qwen3-next-80b-a3b-thinking", - "display_name": "qwen3-next-80b-a3b-thinking", + "id": "kat-dev", + "name": "kat-dev", + "display_name": "kat-dev", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 128000, + "output": 128000 }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.138, - "output": 1.38 + "input": 0.137, + "output": 0.548 }, "type": "chat" }, { - "id": "qwen3-235b-a22b-instruct-2507", - "name": "qwen3-235b-a22b-instruct-2507", - "display_name": "qwen3-235b-a22b-instruct-2507", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "llama-3.3-70b", + "name": "llama-3.3-70b", + "display_name": "llama-3.3-70b", "limit": { - "context": 262144, - "output": 262144 + "context": 65536, + "output": 65536 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.28, - "output": 1.12 + "input": 0.6, + "output": 0.6 }, "type": "chat" }, { - "id": "qwen3-235b-a22b-thinking-2507", - "name": "qwen3-235b-a22b-thinking-2507", - "display_name": "qwen3-235b-a22b-thinking-2507", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "moonshotai/Kimi-Dev-72B", + "name": "moonshotai/Kimi-Dev-72B", + "display_name": "moonshotai/Kimi-Dev-72B", "limit": { - "context": 262144, - "output": 262144 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.28, - "output": 2.8 + "input": 0.32, + "output": 1.28, + "cache_read": 0 }, "type": "chat" }, { - "id": "qwen3-coder-30b-a3b-instruct", - "name": "qwen3-coder-30b-a3b-instruct", - "display_name": "qwen3-coder-30b-a3b-instruct", - "modalities": { - "input": [ - "text" - ] - }, + "id": "moonshotai/Moonlight-16B-A3B-Instruct", + "name": "moonshotai/Moonlight-16B-A3B-Instruct", + "display_name": "moonshotai/Moonlight-16B-A3B-Instruct", "limit": { - "context": 2000000, - "output": 2000000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { "input": 0.2, - "output": 0.8, - "cache_read": 0.2 + "output": 0.2, + "cache_read": 0 }, "type": "chat" }, { - "id": "qwen3-coder-480b-a35b-instruct", - "name": "qwen3-coder-480b-a35b-instruct", - "display_name": "qwen3-coder-480b-a35b-instruct", - "modalities": { - "input": [ - "text" - ] - }, + "id": "o1-global", + "name": "o1-global", + "display_name": "o1-global", "limit": { - "context": 262000, - "output": 262000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.82, - "output": 3.28, - "cache_read": 0.82 + "input": 15, + "output": 60, + "cache_read": 7.5 }, "type": "chat" }, { - "id": "qwen3-235b-a22b", - "name": "qwen3-235b-a22b", - "display_name": "qwen3-235b-a22b", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "qianfan-qi-vl", + "name": "qianfan-qi-vl", + "display_name": "qianfan-qi-vl", "limit": { - "context": 131100, - "output": 131100 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.28, - "output": 1.12 + "input": 0.2, + "output": 0.6 }, "type": "chat" }, { - "id": "qwen3-coder-flash", - "name": "qwen3-coder-flash", - "display_name": "qwen3-coder-flash", + "id": "qwen2.5-vl-72b-instruct", + "name": "qwen2.5-vl-72b-instruct", + "display_name": "qwen2.5-vl-72b-instruct", "modalities": { "input": [ - "text" + "text", + "image" ] }, "limit": { - "context": 256000, - "output": 256000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.136, - "output": 0.544, - "cache_read": 0.136 + "input": 2.4, + "output": 7.2 }, "type": "chat" }, { - "id": "qwen3-coder-plus", - "name": "qwen3-coder-plus", - "display_name": "qwen3-coder-plus", - "modalities": { - "input": [ - "text" - ] - }, + "id": "tencent/Hunyuan-A13B-Instruct", + "name": "tencent/Hunyuan-A13B-Instruct", + "display_name": "tencent/Hunyuan-A13B-Instruct", "limit": { - "context": 1048576, - "output": 1048576 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.54, - "output": 2.16, - "cache_read": 0.108 + "input": 0.14, + "output": 0.56 }, "type": "chat" }, { - "id": "qwen3-coder-plus-2025-07-22", - "name": "qwen3-coder-plus-2025-07-22", - "display_name": "qwen3-coder-plus-2025-07-22", - "modalities": { - "input": [ - "text" - ] - }, + "id": "unsloth/gemma-3-27b-it", + "name": "unsloth/gemma-3-27b-it", + "display_name": "unsloth/gemma-3-27b-it", "limit": { - "context": 128000, - "output": 128000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.54, - "output": 2.16, - "cache_read": 0.54 + "input": 0.22, + "output": 0.22, + "cache_read": 0 }, "type": "chat" }, { - "id": "gemini-2.5-pro-preview-06-05-search", - "name": "gemini-2.5-pro-preview-06-05-search", - "display_name": "gemini-2.5-pro-preview-06-05-search", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "qwen-qwq-32b", + "name": "qwen-qwq-32b", + "display_name": "qwen-qwq-32b", "limit": { "context": 8192, "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 0.4, + "output": 0.8 }, "type": "chat" }, { - "id": "imagen-4.0-ultra-generate-exp-05-20", - "name": "imagen-4.0-ultra-generate-exp-05-20", - "display_name": "imagen-4.0-ultra-generate-exp-05-20", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "unsloth/gemma-3-12b-it", + "name": "unsloth/gemma-3-12b-it", + "display_name": "unsloth/gemma-3-12b-it", "limit": { "context": 8192, "output": 8192 @@ -67065,45 +76844,16 @@ "supported": false }, "cost": { - "input": 2, - "output": 2, + "input": 0.2, + "output": 0.8, "cache_read": 0 }, - "type": "imageGeneration" - }, - { - "id": "ernie-5.0-thinking-preview", - "name": "ernie-5.0-thinking-preview", - "display_name": "ernie-5.0-thinking-preview", - "modalities": { - "input": [ - "text" - ] - }, - "limit": { - "context": 183000, - "output": 183000 - }, - "tool_call": true, - "reasoning": { - "supported": true, - "default": true - }, - "cost": { - "input": 0.822, - "output": 3.288 - }, "type": "chat" }, { - "id": "glm-4.5-x", - "name": "glm-4.5-x", - "display_name": "glm-4.5-x", - "modalities": { - "input": [ - "text" - ] - }, + "id": "gemini-exp-1206", + "name": "gemini-exp-1206", + "display_name": "gemini-exp-1206", "limit": { "context": 8192, "output": 8192 @@ -67113,21 +76863,19 @@ "supported": false }, "cost": { - "input": 2.2, - "output": 8.91, - "cache_read": 0.44 + "input": 1.25, + "output": 5 }, "type": "chat" }, { - "id": "gme-qwen2-vl-2b-instruct", - "name": "gme-qwen2-vl-2b-instruct", - "display_name": "gme-qwen2-vl-2b-instruct", + "id": "gpt-4o-zh", + "name": "gpt-4o-zh", + "display_name": "gpt-4o-zh", "modalities": { "input": [ "text", - "image", - "video" + "image" ] }, "limit": { @@ -67139,21 +76887,39 @@ "supported": false }, "cost": { - "input": 0.138, - "output": 0.138 + "input": 2.5, + "output": 10 }, - "type": "embedding" + "type": "chat" }, { - "id": "gte-rerank-v2", - "name": "gte-rerank-v2", - "display_name": "gte-rerank-v2", + "id": "claude-3-5-haiku", + "name": "claude-3-5-haiku", + "display_name": "claude-3-5-haiku", "modalities": { "input": [ "text", "image" ] }, + "limit": { + "context": 200000, + "output": 200000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "cost": { + "input": 1.1, + "output": 5.5 + }, + "type": "chat" + }, + { + "id": "qwen-max-0125", + "name": "qwen-max-0125", + "display_name": "qwen-max-0125", "limit": { "context": 8192, "output": 8192 @@ -67163,15 +76929,15 @@ "supported": false }, "cost": { - "input": 0.11, - "output": 0.11 + "input": 0.38, + "output": 1.52 }, - "type": "rerank" + "type": "chat" }, { - "id": "irag-1.0", - "name": "irag-1.0", - "display_name": "irag-1.0", + "id": "tencent/Hunyuan-MT-7B", + "name": "tencent/Hunyuan-MT-7B", + "display_name": "tencent/Hunyuan-MT-7B", "limit": { "context": 8192, "output": 8192 @@ -67181,16 +76947,15 @@ "supported": false }, "cost": { - "input": 2, - "output": 0, - "cache_read": 0 + "input": 0.2, + "output": 0.2 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "jina-deepsearch-v1", - "name": "jina-deepsearch-v1", - "display_name": "jina-deepsearch-v1", + "id": "BAAI/bge-large-en-v1.5", + "name": "BAAI/bge-large-en-v1.5", + "display_name": "BAAI/bge-large-en-v1.5", "modalities": { "input": [ "text", @@ -67198,24 +76963,23 @@ ] }, "limit": { - "context": 1000000, - "output": 1000000 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.05, - "output": 0.05 + "input": 0.034, + "output": 0.034 }, - "type": "chat" + "type": "embedding" }, { - "id": "jina-embeddings-v4", - "name": "jina-embeddings-v4", - "display_name": "jina-embeddings-v4", + "id": "BAAI/bge-large-zh-v1.5", + "name": "BAAI/bge-large-zh-v1.5", + "display_name": "BAAI/bge-large-zh-v1.5", "modalities": { "input": [ "text", @@ -67226,20 +76990,20 @@ "context": 8192, "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 0.05, - "output": 0.05 + "input": 0.034, + "output": 0.034 }, "type": "embedding" }, { - "id": "jina-reranker-v3", - "name": "jina-reranker-v3", - "display_name": "jina-reranker-v3", + "id": "BAAI/bge-reranker-v2-m3", + "name": "BAAI/bge-reranker-v2-m3", + "display_name": "BAAI/bge-reranker-v2-m3", "modalities": { "input": [ "text", @@ -67247,47 +77011,42 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.05, - "output": 0.05 + "input": 0.034, + "output": 0.034 }, "type": "rerank" }, { - "id": "llama-4-maverick", - "name": "llama-4-maverick", - "display_name": "llama-4-maverick", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "gemini-2.0-flash-lite-preview-02-05", + "name": "gemini-2.0-flash-lite-preview-02-05", + "display_name": "gemini-2.0-flash-lite-preview-02-05", "limit": { - "context": 1048576, - "output": 1048576 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.2, - "output": 0.2 + "input": 0.075, + "output": 0.3, + "cache_read": 0.075 }, "type": "chat" }, { - "id": "llama-4-scout", - "name": "llama-4-scout", - "display_name": "llama-4-scout", + "id": "V3", + "name": "V3", + "display_name": "V3", "modalities": { "input": [ "text", @@ -67295,23 +77054,42 @@ ] }, "limit": { - "context": 131000, - "output": 131000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.2, - "output": 0.2 + "input": 2, + "output": 2, + "cache_read": 0 + }, + "type": "imageGeneration" + }, + { + "id": "sonar-reasoning", + "name": "sonar-reasoning", + "display_name": "sonar-reasoning", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 1.6, + "output": 8 }, "type": "chat" }, { - "id": "qwen-image", - "name": "qwen-image", - "display_name": "qwen-image", + "id": "V_2", + "name": "V_2", + "display_name": "V_2", "modalities": { "input": [ "text", @@ -67328,15 +77106,15 @@ }, "cost": { "input": 2, - "output": 0, + "output": 2, "cache_read": 0 }, "type": "imageGeneration" }, { - "id": "qwen-image-edit", - "name": "qwen-image-edit", - "display_name": "qwen-image-edit", + "id": "V_2_TURBO", + "name": "V_2_TURBO", + "display_name": "V_2_TURBO", "modalities": { "input": [ "text", @@ -67353,15 +77131,15 @@ }, "cost": { "input": 2, - "output": 0, + "output": 2, "cache_read": 0 }, "type": "imageGeneration" }, { - "id": "qwen-image-plus", - "name": "qwen-image-plus", - "display_name": "qwen-image-plus", + "id": "V_2A", + "name": "V_2A", + "display_name": "V_2A", "modalities": { "input": [ "text", @@ -67378,64 +77156,69 @@ }, "cost": { "input": 2, - "output": 0, + "output": 2, "cache_read": 0 }, "type": "imageGeneration" }, { - "id": "qwen-mt-plus", - "name": "qwen-mt-plus", - "display_name": "qwen-mt-plus", + "id": "V_2A_TURBO", + "name": "V_2A_TURBO", + "display_name": "V_2A_TURBO", "modalities": { "input": [ - "text" + "text", + "image" ] }, "limit": { - "context": 16000, - "output": 16000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.492, - "output": 1.476 + "input": 2, + "output": 2, + "cache_read": 0 }, - "type": "chat" + "type": "imageGeneration" }, { - "id": "qwen-mt-turbo", - "name": "qwen-mt-turbo", - "display_name": "qwen-mt-turbo", + "id": "V_1", + "name": "V_1", + "display_name": "V_1", "modalities": { "input": [ - "text" + "text", + "image" ] }, "limit": { - "context": 16000, - "output": 16000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.192, - "output": 0.534912 + "input": 2, + "output": 2, + "cache_read": 0 }, - "type": "chat" + "type": "imageGeneration" }, { - "id": "qwen3-embedding-0.6b", - "name": "qwen3-embedding-0.6b", - "display_name": "qwen3-embedding-0.6b", + "id": "V_1_TURBO", + "name": "V_1_TURBO", + "display_name": "V_1_TURBO", "modalities": { "input": [ - "text" + "text", + "image" ] }, "limit": { @@ -67447,15 +77230,16 @@ "supported": false }, "cost": { - "input": 0.068, - "output": 0.068 + "input": 2, + "output": 2, + "cache_read": 0 }, - "type": "embedding" + "type": "imageGeneration" }, { - "id": "qwen3-embedding-4b", - "name": "qwen3-embedding-4b", - "display_name": "qwen3-embedding-4b", + "id": "doubao-embedding-large-text-240915", + "name": "doubao-embedding-large-text-240915", + "display_name": "doubao-embedding-large-text-240915", "modalities": { "input": [ "text" @@ -67470,20 +77254,15 @@ "supported": false }, "cost": { - "input": 0.068, - "output": 0.068 + "input": 0.1, + "output": 0.1 }, "type": "embedding" }, { - "id": "qwen3-embedding-8b", - "name": "qwen3-embedding-8b", - "display_name": "qwen3-embedding-8b", - "modalities": { - "input": [ - "text" - ] - }, + "id": "kimi-thinking-preview", + "name": "kimi-thinking-preview", + "display_name": "kimi-thinking-preview", "limit": { "context": 8192, "output": 8192 @@ -67493,45 +77272,58 @@ "supported": false }, "cost": { - "input": 0.068, - "output": 0.068 + "input": 30, + "output": 30 }, - "type": "embedding" + "type": "chat" }, { - "id": "qwen3-reranker-0.6b", - "name": "qwen3-reranker-0.6b", - "display_name": "qwen3-reranker-0.6b", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "gpt-4o-2024-08-06", + "name": "gpt-4o-2024-08-06", + "display_name": "gpt-4o-2024-08-06", "limit": { - "context": 16000, - "output": 16000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.11, - "output": 0.11 + "input": 2.5, + "output": 10, + "cache_read": 1.25 }, - "type": "rerank" + "type": "chat" }, { - "id": "qwen3-reranker-4b", - "name": "qwen3-reranker-4b", - "display_name": "qwen3-reranker-4b", + "id": "AiHubmix-Phi-4-reasoning", + "name": "AiHubmix-Phi-4-reasoning", + "display_name": "AiHubmix-Phi-4-reasoning", "modalities": { "input": [ - "text", - "image" + "text" ] }, + "limit": { + "context": 128000, + "output": 128000 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "cost": { + "input": 0.2, + "output": 0.2 + }, + "type": "chat" + }, + { + "id": "qwen-plus-2025-07-28", + "name": "qwen-plus-2025-07-28", + "display_name": "qwen-plus-2025-07-28", "limit": { "context": 8192, "output": 8192 @@ -67542,20 +77334,15 @@ }, "cost": { "input": 0.11, - "output": 0.11 + "output": 0.275, + "cache_read": 0.11 }, - "type": "rerank" + "type": "chat" }, { - "id": "qwen3-reranker-8b", - "name": "qwen3-reranker-8b", - "display_name": "qwen3-reranker-8b", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "qwen-plus-latest", + "name": "qwen-plus-latest", + "display_name": "qwen-plus-latest", "limit": { "context": 8192, "output": 8192 @@ -67566,14 +77353,15 @@ }, "cost": { "input": 0.11, - "output": 0.11 + "output": 0.275, + "cache_read": 0.11 }, - "type": "rerank" + "type": "chat" }, { - "id": "tao-8k", - "name": "tao-8k", - "display_name": "tao-8k", + "id": "sonar", + "name": "sonar", + "display_name": "sonar", "limit": { "context": 8192, "output": 8192 @@ -67583,21 +77371,15 @@ "supported": false }, "cost": { - "input": 0.068, - "output": 0.068 + "input": 1.6, + "output": 1.6 }, - "type": "embedding" + "type": "chat" }, { - "id": "bce-reranker-base", - "name": "bce-reranker-base", - "display_name": "bce-reranker-base", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "stepfun-ai/step3", + "name": "stepfun-ai/step3", + "display_name": "stepfun-ai/step3", "limit": { "context": 8192, "output": 8192 @@ -67607,19 +77389,18 @@ "supported": false }, "cost": { - "input": 0.068, - "output": 0.068 + "input": 1.1, + "output": 2.75 }, - "type": "rerank" + "type": "chat" }, { - "id": "codex-mini-latest", - "name": "codex-mini-latest", - "display_name": "codex-mini-latest", + "id": "text-embedding-v4", + "name": "text-embedding-v4", + "display_name": "text-embedding-v4", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { @@ -67631,22 +77412,15 @@ "supported": false }, "cost": { - "input": 1.5, - "output": 6, - "cache_read": 0.375 + "input": 0.08, + "output": 0.08 }, - "type": "chat" + "type": "embedding" }, { - "id": "doubao-seedream-4-0", - "name": "doubao-seedream-4-0", - "display_name": "doubao-seedream-4-0", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "qwen-turbo-latest", + "name": "qwen-turbo-latest", + "display_name": "qwen-turbo-latest", "limit": { "context": 8192, "output": 8192 @@ -67656,94 +77430,83 @@ "supported": false }, "cost": { - "input": 2, - "output": 0, + "input": 0.046, + "output": 0.92, "cache_read": 0 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "embedding-v1", - "name": "embedding-v1", - "display_name": "embedding-v1", + "id": "AiHubmix-Phi-4-mini-reasoning", + "name": "AiHubmix-Phi-4-mini-reasoning", + "display_name": "AiHubmix-Phi-4-mini-reasoning", "modalities": { "input": [ "text" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 128000, + "output": 128000 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.068, - "output": 0.068 + "input": 0.12, + "output": 0.12 }, - "type": "embedding" + "type": "chat" }, { - "id": "ernie-4.5-turbo-latest", - "name": "ernie-4.5-turbo-latest", - "display_name": "ernie-4.5-turbo-latest", + "id": "aihub-Phi-4-multimodal-instruct", + "name": "aihub-Phi-4-multimodal-instruct", + "display_name": "aihub-Phi-4-multimodal-instruct", "modalities": { "input": [ "text", - "image" + "image", + "audio" ] }, "limit": { - "context": 135000, - "output": 135000 + "context": 128000, + "output": 128000 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.11, - "output": 0.44 + "input": 0.12, + "output": 0.48 }, "type": "chat" }, { - "id": "ernie-irag-edit", - "name": "ernie-irag-edit", - "display_name": "ernie-irag-edit", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "qwen3-30b-a3b", + "name": "qwen3-30b-a3b", + "display_name": "qwen3-30b-a3b", "limit": { "context": 8192, "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 2, - "output": 0, + "input": 0.12, + "output": 1.2, "cache_read": 0 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "jina-clip-v2", - "name": "jina-clip-v2", - "display_name": "jina-clip-v2", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "qwen3-32b", + "name": "qwen3-32b", + "display_name": "qwen3-32b", "limit": { "context": 8192, "output": 8192 @@ -67753,21 +77516,16 @@ "supported": false }, "cost": { - "input": 0.05, - "output": 0.05 + "input": 0.32, + "output": 3.2, + "cache_read": 0 }, - "type": "embedding" + "type": "chat" }, { - "id": "jina-reranker-m0", - "name": "jina-reranker-m0", - "display_name": "jina-reranker-m0", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "grok-3", + "name": "grok-3", + "display_name": "grok-3", "limit": { "context": 8192, "output": 8192 @@ -67777,63 +77535,79 @@ "supported": false }, "cost": { - "input": 0.05, - "output": 0.05 + "input": 3, + "output": 15 }, - "type": "rerank" + "type": "chat" }, { - "id": "jina-colbert-v2", - "name": "jina-colbert-v2", - "display_name": "jina-colbert-v2", + "id": "aihub-Phi-4-mini-instruct", + "name": "aihub-Phi-4-mini-instruct", + "display_name": "aihub-Phi-4-mini-instruct", "modalities": { "input": [ "text" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 128000, + "output": 128000 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.05, - "output": 0.05 + "input": 0.12, + "output": 0.48 }, - "type": "embedding" + "type": "chat" }, { - "id": "gpt-4o-search-preview", - "name": "gpt-4o-search-preview", - "display_name": "gpt-4o-search-preview", + "id": "aihub-Phi-4", + "name": "aihub-Phi-4", + "display_name": "aihub-Phi-4", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 16400, + "output": 16400 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 + "input": 0.12, + "output": 0.48 }, "type": "chat" }, { - "id": "gpt-4o-mini-search-preview", - "name": "gpt-4o-mini-search-preview", - "display_name": "gpt-4o-mini-search-preview", + "id": "claude-3-opus-20240229", + "name": "claude-3-opus-20240229", + "display_name": "claude-3-opus-20240229", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 16.5, + "output": 82.5 + }, + "type": "chat" + }, + { + "id": "dall-e-3", + "name": "dall-e-3", + "display_name": "dall-e-3", "modalities": { "input": [ "text", @@ -67841,24 +77615,23 @@ ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.075 + "input": 40, + "output": 40 }, - "type": "chat" + "type": "imageGeneration" }, { - "id": "jina-embeddings-v3", - "name": "jina-embeddings-v3", - "display_name": "jina-embeddings-v3", + "id": "doubao-embedding-text-240715", + "name": "doubao-embedding-text-240715", + "display_name": "doubao-embedding-text-240715", "modalities": { "input": [ "text" @@ -67873,22 +77646,15 @@ "supported": false }, "cost": { - "input": 0.05, - "output": 0.05, - "cache_read": 0 + "input": 0.7, + "output": 0.7 }, "type": "embedding" }, { - "id": "gemini-2.0-flash-preview-image-generation", - "name": "gemini-2.0-flash-preview-image-generation", - "display_name": "gemini-2.0-flash-preview-image-generation", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "qwen3-14b", + "name": "qwen3-14b", + "display_name": "qwen3-14b", "limit": { "context": 8192, "output": 8192 @@ -67898,274 +77664,205 @@ "supported": false }, "cost": { - "input": 0.1, - "output": 0.4, + "input": 0.16, + "output": 1.6, "cache_read": 0 }, "type": "chat" }, { - "id": "mimo-v2-flash-free", - "name": "mimo-v2-flash-free", - "display_name": "mimo-v2-flash-free", - "modalities": { - "input": [ - "text" - ] - }, + "id": "grok-3-beta", + "name": "grok-3-beta", + "display_name": "grok-3-beta", "limit": { - "context": 256000, - "output": 256000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0, - "output": 0, + "input": 3, + "output": 15, "cache_read": 0 }, "type": "chat" }, { - "id": "claude-3-7-sonnet", - "name": "claude-3-7-sonnet", - "display_name": "claude-3-7-sonnet", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "grok-3-fast", + "name": "grok-3-fast", + "display_name": "grok-3-fast", "limit": { - "context": 200000, - "output": 200000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 3.3, - "output": 16.5 + "input": 5.5, + "output": 27.5, + "cache_read": 0 }, "type": "chat" }, { - "id": "ernie-4.5", - "name": "ernie-4.5", - "display_name": "ernie-4.5", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "qwen3-8b", + "name": "qwen3-8b", + "display_name": "qwen3-8b", "limit": { - "context": 160000, - "output": 160000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.068, - "output": 0.272 + "input": 0.08, + "output": 0.8, + "cache_read": 0 }, "type": "chat" }, { - "id": "ernie-4.5-turbo-vl", - "name": "ernie-4.5-turbo-vl", - "display_name": "ernie-4.5-turbo-vl", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "qwen3-4b", + "name": "qwen3-4b", + "display_name": "qwen3-4b", "limit": { - "context": 139000, - "output": 139000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.4, - "output": 1.2 + "input": 0.046, + "output": 0.46, + "cache_read": 0 }, "type": "chat" }, { - "id": "gemini-2.0-flash", - "name": "gemini-2.0-flash", - "display_name": "gemini-2.0-flash", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "deepseek-ai/DeepSeek-R1-Zero", + "name": "deepseek-ai/DeepSeek-R1-Zero", + "display_name": "deepseek-ai/DeepSeek-R1-Zero", "limit": { - "context": 1048576, - "output": 1048576 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.25 + "input": 2.2, + "output": 2.2 }, "type": "chat" }, { - "id": "o3-mini", - "name": "o3-mini", - "display_name": "o3-mini", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "grok-3-fast-beta", + "name": "grok-3-fast-beta", + "display_name": "grok-3-fast-beta", "limit": { - "context": 200000, - "output": 200000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.55 + "input": 5.5, + "output": 27.5, + "cache_read": 0 }, "type": "chat" }, { - "id": "doubao-seed-1-6", - "name": "doubao-seed-1-6", - "display_name": "doubao-seed-1-6", - "modalities": { - "input": [ - "text", - "image", - "video" - ] - }, + "id": "grok-3-mini", + "name": "grok-3-mini", + "display_name": "grok-3-mini", "limit": { - "context": 256000, - "output": 256000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.18, - "output": 1.8, - "cache_read": 0.036 + "input": 0.3, + "output": 0.501, + "cache_read": 0 }, "type": "chat" }, { - "id": "doubao-seed-1-6-flash", - "name": "doubao-seed-1-6-flash", - "display_name": "doubao-seed-1-6-flash", - "modalities": { - "input": [ - "text", - "image", - "video" - ] - }, + "id": "grok-3-mini-beta", + "name": "grok-3-mini-beta", + "display_name": "grok-3-mini-beta", "limit": { - "context": 256000, - "output": 256000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.044, - "output": 0.44, - "cache_read": 0.0088 + "input": 0.33, + "output": 0.5511, + "cache_read": 0 }, "type": "chat" }, { - "id": "doubao-seed-1-6-lite", - "name": "doubao-seed-1-6-lite", - "display_name": "doubao-seed-1-6-lite", - "modalities": { - "input": [ - "text", - "image", - "video" - ] - }, + "id": "qwen3-1.7b", + "name": "qwen3-1.7b", + "display_name": "qwen3-1.7b", "limit": { - "context": 256000, - "output": 256000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.082, - "output": 0.656, - "cache_read": 0.0164 + "input": 0.046, + "output": 0.46, + "cache_read": 0 }, "type": "chat" }, { - "id": "doubao-seed-1-6-thinking", - "name": "doubao-seed-1-6-thinking", - "display_name": "doubao-seed-1-6-thinking", - "modalities": { - "input": [ - "text", - "image", - "video" - ] - }, + "id": "qwen3-0.6b", + "name": "qwen3-0.6b", + "display_name": "qwen3-0.6b", "limit": { - "context": 256000, - "output": 256000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.18, - "output": 1.8, - "cache_read": 0.036 + "input": 0.046, + "output": 0.46, + "cache_read": 0 }, "type": "chat" }, { - "id": "qwen3-30b-a3b-instruct-2507", - "name": "qwen3-30b-a3b-instruct-2507", - "display_name": "qwen3-30b-a3b-instruct-2507", + "id": "qwen-3-32b", + "name": "qwen-3-32b", + "display_name": "qwen-3-32b", "limit": { "context": 8192, "output": 8192 @@ -68175,15 +77872,15 @@ "supported": false }, "cost": { - "input": 0.1028, - "output": 0.4112 + "input": 0.4, + "output": 1.6 }, "type": "chat" }, { - "id": "qwen3-30b-a3b-thinking-2507", - "name": "qwen3-30b-a3b-thinking-2507", - "display_name": "qwen3-30b-a3b-thinking-2507", + "id": "qwen-turbo-2025-04-28", + "name": "qwen-turbo-2025-04-28", + "display_name": "qwen-turbo-2025-04-28", "limit": { "context": 8192, "output": 8192 @@ -68193,20 +77890,16 @@ "supported": false }, "cost": { - "input": 0.12, - "output": 1.2 + "input": 0.046, + "output": 0.92, + "cache_read": 0 }, "type": "chat" }, { - "id": "gemini-embedding-001", - "name": "gemini-embedding-001", - "display_name": "gemini-embedding-001", - "modalities": { - "input": [ - "text" - ] - }, + "id": "grok-3-mini-fast-beta", + "name": "grok-3-mini-fast-beta", + "display_name": "grok-3-mini-fast-beta", "limit": { "context": 8192, "output": 8192 @@ -68216,39 +77909,39 @@ "supported": false }, "cost": { - "input": 0.15, - "output": 0.15 + "input": 0.33, + "output": 2.20011 }, - "type": "embedding" + "type": "chat" }, { - "id": "gpt-oss-120b", - "name": "gpt-oss-120b", - "display_name": "gpt-oss-120b", + "id": "command-a-03-2025", + "name": "command-a-03-2025", + "display_name": "command-a-03-2025", "modalities": { "input": [ "text" ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.18, - "output": 0.9 + "input": 2.5, + "output": 10, + "cache_read": 0 }, "type": "chat" }, { - "id": "qwen-3-235b-a22b-thinking-2507", - "name": "qwen-3-235b-a22b-thinking-2507", - "display_name": "qwen-3-235b-a22b-thinking-2507", + "id": "qwen-plus-2025-04-28", + "name": "qwen-plus-2025-04-28", + "display_name": "qwen-plus-2025-04-28", "limit": { "context": 8192, "output": 8192 @@ -68258,15 +77951,16 @@ "supported": false }, "cost": { - "input": 0.28, - "output": 2.8 + "input": 0.13, + "output": 2.6, + "cache_read": 0 }, "type": "chat" }, { - "id": "cc-kimi-for-coding", - "name": "cc-kimi-for-coding", - "display_name": "cc-kimi-for-coding", + "id": "THUDM/GLM-Z1-32B-0414", + "name": "THUDM/GLM-Z1-32B-0414", + "display_name": "THUDM/GLM-Z1-32B-0414", "limit": { "context": 8192, "output": 8192 @@ -68276,24 +77970,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2, - "cache_read": 0.02 + "input": 0.08, + "output": 0.08 }, "type": "chat" }, { - "id": "gemini-2.0-pro-exp-02-05-search", - "name": "gemini-2.0-pro-exp-02-05-search", - "display_name": "gemini-2.0-pro-exp-02-05-search", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "Pro/THUDM/GLM-4.1V-9B-Thinking", + "name": "Pro/THUDM/GLM-4.1V-9B-Thinking", + "display_name": "Pro/THUDM/GLM-4.1V-9B-Thinking", "limit": { "context": 8192, "output": 8192 @@ -68303,23 +77988,16 @@ "supported": false }, "cost": { - "input": 1.25, - "output": 5 + "input": 0.04, + "output": 0.16, + "cache_read": 0 }, "type": "chat" }, { - "id": "gemini-2.0-flash-search", - "name": "gemini-2.0-flash-search", - "display_name": "gemini-2.0-flash-search", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "THUDM/GLM-4.1V-9B-Thinking", + "name": "THUDM/GLM-4.1V-9B-Thinking", + "display_name": "THUDM/GLM-4.1V-9B-Thinking", "limit": { "context": 8192, "output": 8192 @@ -68330,139 +78008,123 @@ }, "cost": { "input": 0.1, - "output": 0.4, - "cache_read": 0.25 + "output": 0.1, + "cache_read": 0 }, "type": "chat" }, { - "id": "gemini-2.5-pro-preview-06-05", - "name": "gemini-2.5-pro-preview-06-05", - "display_name": "gemini-2.5-pro-preview-06-05", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "text-embedding-004", + "name": "text-embedding-004", + "display_name": "text-embedding-004", "limit": { - "context": 1048576, - "output": 1048576 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.31 + "input": 0.02, + "output": 0.02 }, "type": "chat" }, { - "id": "embedding-2", - "name": "embedding-2", - "display_name": "embedding-2", - "modalities": { - "input": [ - "text" - ] - }, + "id": "THUDM/GLM-4-32B-0414", + "name": "THUDM/GLM-4-32B-0414", + "display_name": "THUDM/GLM-4-32B-0414", "limit": { - "context": 8000, - "output": 8000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.0686, - "output": 0.0686 + "input": 0.08, + "output": 0.08 }, - "type": "embedding" + "type": "chat" }, { - "id": "embedding-3", - "name": "embedding-3", - "display_name": "embedding-3", - "modalities": { - "input": [ - "text" - ] - }, + "id": "THUDM/GLM-Z1-9B-0414", + "name": "THUDM/GLM-Z1-9B-0414", + "display_name": "THUDM/GLM-Z1-9B-0414", "limit": { - "context": 8000, - "output": 8000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.0686, - "output": 0.0686 + "input": 0.05, + "output": 0.05 }, - "type": "embedding" + "type": "chat" }, { - "id": "o1", - "name": "o1", - "display_name": "o1", - "modalities": { - "input": [ - "text" - ] - }, + "id": "THUDM/GLM-4-9B-0414", + "name": "THUDM/GLM-4-9B-0414", + "display_name": "THUDM/GLM-4-9B-0414", "limit": { "context": 8192, "output": 8192 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 15, - "output": 60, - "cache_read": 7.5 + "input": 0.05, + "output": 0.05 }, "type": "chat" }, { - "id": "o1-pro", - "name": "o1-pro", - "display_name": "o1-pro", - "modalities": { - "input": [ - "text" - ] + "id": "cc-doubao-seed-code-preview-latest", + "name": "cc-doubao-seed-code-preview-latest", + "display_name": "cc-doubao-seed-code-preview-latest", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.2, + "output": 0.2 }, + "type": "chat" + }, + { + "id": "doubao-seed-code-preview-latest", + "name": "doubao-seed-code-preview-latest", + "display_name": "doubao-seed-code-preview-latest", "limit": { "context": 8192, "output": 8192 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 170, - "output": 680, - "cache_read": 170 + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "doubao-seed-1-6-250615", - "name": "doubao-seed-1-6-250615", - "display_name": "doubao-seed-1-6-250615", + "id": "deepseek-ai/Janus-Pro-7B", + "name": "deepseek-ai/Janus-Pro-7B", + "display_name": "deepseek-ai/Janus-Pro-7B", "limit": { "context": 8192, "output": 8192 @@ -68472,16 +78134,15 @@ "supported": false }, "cost": { - "input": 0.18, - "output": 2.52, - "cache_read": 0.036 + "input": 2, + "output": 2 }, "type": "chat" }, { - "id": "doubao-seed-1-6-flash-250615", - "name": "doubao-seed-1-6-flash-250615", - "display_name": "doubao-seed-1-6-flash-250615", + "id": "qwen-3-235b-a22b-instruct-2507", + "name": "qwen-3-235b-a22b-instruct-2507", + "display_name": "qwen-3-235b-a22b-instruct-2507", "limit": { "context": 8192, "output": 8192 @@ -68491,16 +78152,15 @@ "supported": false }, "cost": { - "input": 0.044, - "output": 0.44, - "cache_read": 0.0088 + "input": 0.28, + "output": 1.4 }, "type": "chat" }, { - "id": "doubao-seed-1-6-thinking-250615", - "name": "doubao-seed-1-6-thinking-250615", - "display_name": "doubao-seed-1-6-thinking-250615", + "id": "glm-zero-preview", + "name": "glm-zero-preview", + "display_name": "glm-zero-preview", "limit": { "context": 8192, "output": 8192 @@ -68510,16 +78170,15 @@ "supported": false }, "cost": { - "input": 0.18, - "output": 2.52, - "cache_read": 0.036 + "input": 2, + "output": 2 }, "type": "chat" }, { - "id": "doubao-seed-1-6-vision-250815", - "name": "doubao-seed-1-6-vision-250815", - "display_name": "doubao-seed-1-6-vision-250815", + "id": "gemini-2.0-flash-thinking-exp-1219", + "name": "gemini-2.0-flash-thinking-exp-1219", + "display_name": "gemini-2.0-flash-thinking-exp-1219", "limit": { "context": 8192, "output": 8192 @@ -68529,39 +78188,38 @@ "supported": false }, "cost": { - "input": 0.10959, - "output": 1.0959, - "cache_read": 0.021918 + "input": 0.076, + "output": 0.304 }, "type": "chat" }, { - "id": "cc-minimax-m2", - "name": "cc-minimax-m2", - "display_name": "cc-minimax-m2", + "id": "glm-4.5-air", + "name": "glm-4.5-air", + "display_name": "glm-4.5-air", "modalities": { "input": [ "text" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 131072, + "output": 131072 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.1, - "output": 0.1 + "input": 0.14, + "output": 0.84 }, "type": "chat" }, { - "id": "gemma-3-12b-it", - "name": "gemma-3-12b-it", - "display_name": "gemma-3-12b-it", + "id": "gpt-4-32k", + "name": "gpt-4-32k", + "display_name": "gpt-4-32k", "limit": { "context": 8192, "output": 8192 @@ -68571,16 +78229,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2, - "cache_read": 0 + "input": 60, + "output": 120 }, "type": "chat" }, { - "id": "gemma-3-1b-it", - "name": "gemma-3-1b-it", - "display_name": "gemma-3-1b-it", + "id": "nvidia-llama-3.1-nemotron-70b-instruct", + "name": "nvidia-llama-3.1-nemotron-70b-instruct", + "display_name": "nvidia-llama-3.1-nemotron-70b-instruct", "limit": { "context": 8192, "output": 8192 @@ -68590,16 +78247,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2, - "cache_read": 0 + "input": 1.32, + "output": 1.32 }, "type": "chat" }, { - "id": "gemma-3-27b-it", - "name": "gemma-3-27b-it", - "display_name": "gemma-3-27b-it", + "id": "nvidia-llama-3.3-nemotron-super-49b-v1.5", + "name": "nvidia-llama-3.3-nemotron-super-49b-v1.5", + "display_name": "nvidia-llama-3.3-nemotron-super-49b-v1.5", "limit": { "context": 8192, "output": 8192 @@ -68609,16 +78265,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2, - "cache_read": 0 + "input": 0.11, + "output": 0.44 }, "type": "chat" }, { - "id": "gemma-3-4b-it", - "name": "gemma-3-4b-it", - "display_name": "gemma-3-4b-it", + "id": "nvidia-nemotron-3-nano-30b-a3b", + "name": "nvidia-nemotron-3-nano-30b-a3b", + "display_name": "nvidia-nemotron-3-nano-30b-a3b", "limit": { "context": 8192, "output": 8192 @@ -68628,16 +78283,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2, - "cache_read": 0 + "input": 0.066, + "output": 0.264 }, "type": "chat" }, { - "id": "gemma-3n-e4b-it", - "name": "gemma-3n-e4b-it", - "display_name": "gemma-3n-e4b-it", + "id": "nvidia-nemotron-nano-12b-v2-vl", + "name": "nvidia-nemotron-nano-12b-v2-vl", + "display_name": "nvidia-nemotron-nano-12b-v2-vl", "limit": { "context": 8192, "output": 8192 @@ -68647,22 +78301,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2, - "cache_read": 0 + "input": 0.22, + "output": 0.66 }, "type": "chat" }, { - "id": "gpt-4o-image-vip", - "name": "gpt-4o-image-vip", - "display_name": "gpt-4o-image-vip", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "nvidia-nemotron-nano-9b-v2", + "name": "nvidia-nemotron-nano-9b-v2", + "display_name": "nvidia-nemotron-nano-9b-v2", "limit": { "context": 8192, "output": 8192 @@ -68672,20 +78319,18 @@ "supported": false }, "cost": { - "input": 7, - "output": 7, - "cache_read": 0 + "input": 0.044, + "output": 0.176 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "gpt-4o-image", - "name": "gpt-4o-image", - "display_name": "gpt-4o-image", + "id": "coding-glm-4.5-air", + "name": "coding-glm-4.5-air", + "display_name": "coding-glm-4.5-air", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { @@ -68697,45 +78342,34 @@ "supported": false }, "cost": { - "input": 3, - "output": 3, - "cache_read": 0 + "input": 0.014, + "output": 0.084 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "deepseek-r1-distill-llama-70b", - "name": "deepseek-r1-distill-llama-70b", - "display_name": "deepseek-r1-distill-llama-70b", - "modalities": { - "input": [ - "text" - ] - }, + "id": "o1-preview-2024-09-12", + "name": "o1-preview-2024-09-12", + "display_name": "o1-preview-2024-09-12", "limit": { "context": 8192, "output": 8192 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.8, - "output": 1.6 + "input": 15, + "output": 60, + "cache_read": 7.5 }, "type": "chat" }, { - "id": "gpt-4o-mini-tts", - "name": "gpt-4o-mini-tts", - "display_name": "gpt-4o-mini-tts", - "modalities": { - "input": [ - "audio" - ] - }, + "id": "Qwen/QVQ-72B-Preview", + "name": "Qwen/QVQ-72B-Preview", + "display_name": "Qwen/QVQ-72B-Preview", "limit": { "context": 8192, "output": 8192 @@ -68745,22 +78379,15 @@ "supported": false }, "cost": { - "input": 15, - "output": 15 - } + "input": 1.2, + "output": 1.2 + }, + "type": "chat" }, { - "id": "gemini-2.0-flash-exp", - "name": "gemini-2.0-flash-exp", - "display_name": "gemini-2.0-flash-exp", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "Qwen/QwQ-32B-Preview", + "name": "Qwen/QwQ-32B-Preview", + "display_name": "Qwen/QwQ-32B-Preview", "limit": { "context": 8192, "output": 8192 @@ -68770,65 +78397,51 @@ "supported": false }, "cost": { - "input": 0.02, - "output": 0.08 + "input": 0.16, + "output": 0.16 }, "type": "chat" }, { - "id": "claude-3-5-sonnet", - "name": "claude-3-5-sonnet", - "display_name": "claude-3-5-sonnet", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "llama-3.1-sonar-huge-128k-online", + "name": "llama-3.1-sonar-huge-128k-online", + "display_name": "llama-3.1-sonar-huge-128k-online", "limit": { - "context": 200000, - "output": 200000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 3.3, - "output": 16.5 + "input": 5.6, + "output": 5.6 }, "type": "chat" }, { - "id": "o1-preview", - "name": "o1-preview", - "display_name": "o1-preview", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "llama-3.1-sonar-large-128k-online", + "name": "llama-3.1-sonar-large-128k-online", + "display_name": "llama-3.1-sonar-large-128k-online", "limit": { "context": 8192, "output": 8192 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 15, - "output": 60, - "cache_read": 7.5 + "input": 1.2, + "output": 1.2 }, "type": "chat" }, { - "id": "o1-mini", - "name": "o1-mini", - "display_name": "o1-mini", + "id": "aihubmix-Mistral-Large-2411", + "name": "aihubmix-Mistral-Large-2411", + "display_name": "aihubmix-Mistral-Large-2411", "limit": { "context": 8192, "output": 8192 @@ -68838,99 +78451,69 @@ "supported": false }, "cost": { - "input": 3, - "output": 12, - "cache_read": 1.5 + "input": 2, + "output": 6 }, "type": "chat" }, { - "id": "gemini-2.0-flash-thinking-exp-01-21", - "name": "gemini-2.0-flash-thinking-exp-01-21", - "display_name": "gemini-2.0-flash-thinking-exp-01-21", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "aihubmix-Mistral-large-2407", + "name": "aihubmix-Mistral-large-2407", + "display_name": "aihubmix-Mistral-large-2407", "limit": { "context": 8192, "output": 8192 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.076, - "output": 0.304 + "input": 3, + "output": 9 }, "type": "chat" }, { - "id": "gpt-4o-2024-11-20", - "name": "gpt-4o-2024-11-20", - "display_name": "gpt-4o-2024-11-20", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "grok-2-1212", + "name": "grok-2-1212", + "display_name": "grok-2-1212", "limit": { - "context": 128000, - "output": 128000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 + "input": 1.8, + "output": 9 }, "type": "chat" }, { - "id": "gpt-4o", - "name": "gpt-4o", - "display_name": "gpt-4o", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "llama-3.1-70b", + "name": "llama-3.1-70b", + "display_name": "llama-3.1-70b", "limit": { - "context": 128000, - "output": 128000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 + "input": 0.44, + "output": 0.44 }, "type": "chat" }, { - "id": "chatgpt-4o-latest", - "name": "chatgpt-4o-latest", - "display_name": "chatgpt-4o-latest", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "gemini-2.0-flash-thinking-exp", + "name": "gemini-2.0-flash-thinking-exp", + "display_name": "gemini-2.0-flash-thinking-exp", "limit": { "context": 8192, "output": 8192 @@ -68940,46 +78523,38 @@ "supported": false }, "cost": { - "input": 5, - "output": 15 + "input": 0.076, + "output": 0.304 }, "type": "chat" }, { - "id": "gpt-4o-mini", - "name": "gpt-4o-mini", - "display_name": "gpt-4o-mini", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "gpt-image-test", + "name": "gpt-image-test", + "display_name": "gpt-image-test", "limit": { - "context": 128000, - "output": 128000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.075 + "input": 5, + "output": 40, + "cache_read": 0 }, "type": "chat" }, { - "id": "gemini-2.0-pro-exp-02-05", - "name": "gemini-2.0-pro-exp-02-05", - "display_name": "gemini-2.0-pro-exp-02-05", + "id": "imagen-3.0-generate-002", + "name": "imagen-3.0-generate-002", + "display_name": "imagen-3.0-generate-002", "modalities": { "input": [ "text", - "image", - "audio", - "video" + "image" ] }, "limit": { @@ -68991,56 +78566,60 @@ "supported": false }, "cost": { - "input": 1.25, - "output": 5 + "input": 2, + "output": 2, + "cache_read": 0 }, - "type": "chat" + "type": "imageGeneration" }, { - "id": "minimax-m2", - "name": "minimax-m2", - "display_name": "minimax-m2", - "modalities": { - "input": [ - "text" - ] - }, + "id": "llama3.1-8b", + "name": "llama3.1-8b", + "display_name": "llama3.1-8b", "limit": { - "context": 204800, - "output": 204800 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.288, - "output": 1.152 + "input": 0.3, + "output": 0.6 }, "type": "chat" }, { - "id": "ernie-x1.1-preview", - "name": "ernie-x1.1-preview", - "display_name": "ernie-x1.1-preview", + "id": "o1-2024-12-17", + "name": "o1-2024-12-17", + "display_name": "o1-2024-12-17", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { "context": 8192, "output": 8192 }, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "cost": { - "input": 0.136, - "output": 0.544 + "input": 15, + "output": 60, + "cache_read": 7.5 }, "type": "chat" }, { - "id": "bge-large-en", - "name": "bge-large-en", - "display_name": "bge-large-en", + "id": "DESCRIBE", + "name": "DESCRIBE", + "display_name": "DESCRIBE", "modalities": { "input": [ "text", @@ -69051,20 +78630,21 @@ "context": 8192, "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.068, - "output": 0.068 + "input": 2, + "output": 2, + "cache_read": 0 }, - "type": "embedding" + "type": "imageGeneration" }, { - "id": "bge-large-zh", - "name": "bge-large-zh", - "display_name": "bge-large-zh", + "id": "UPSCALE", + "name": "UPSCALE", + "display_name": "UPSCALE", "modalities": { "input": [ "text", @@ -69075,20 +78655,21 @@ "context": 8192, "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.068, - "output": 0.068 + "input": 2, + "output": 2, + "cache_read": 0 }, - "type": "embedding" + "type": "imageGeneration" }, { - "id": "codestral-latest", - "name": "codestral-latest", - "display_name": "codestral-latest", + "id": "bai-qwen3-vl-235b-a22b-instruct", + "name": "bai-qwen3-vl-235b-a22b-instruct", + "display_name": "bai-qwen3-vl-235b-a22b-instruct", "limit": { "context": 8192, "output": 8192 @@ -69098,19 +78679,18 @@ "supported": false }, "cost": { - "input": 0.4, - "output": 1.2 + "input": 0.274, + "output": 1.096 }, "type": "chat" }, { - "id": "ernie-4.5-0.3b", - "name": "ernie-4.5-0.3b", - "display_name": "ernie-4.5-0.3b", + "id": "cc-MiniMax-M2", + "name": "cc-MiniMax-M2", + "display_name": "cc-MiniMax-M2", "modalities": { "input": [ - "text", - "image" + "text" ] }, "limit": { @@ -69122,63 +78702,56 @@ "supported": false }, "cost": { - "input": 0.0136, - "output": 0.0544 + "input": 0.1, + "output": 0.1 }, "type": "chat" }, { - "id": "ernie-4.5-turbo-128k-preview", - "name": "ernie-4.5-turbo-128k-preview", - "display_name": "ernie-4.5-turbo-128k-preview", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "cc-deepseek-v3", + "name": "cc-deepseek-v3", + "display_name": "cc-deepseek-v3", "limit": { "context": 8192, "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.108, - "output": 0.432 + "input": 0.3, + "output": 0.3 }, "type": "chat" }, { - "id": "ernie-x1-turbo", - "name": "ernie-x1-turbo", - "display_name": "ernie-x1-turbo", + "id": "cc-deepseek-v3.1", + "name": "cc-deepseek-v3.1", + "display_name": "cc-deepseek-v3.1", "modalities": { "input": [ "text" ] }, "limit": { - "context": 50500, - "output": 50500 + "context": 8192, + "output": 8192 }, "tool_call": true, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.136, - "output": 0.544 + "input": 0.56, + "output": 1.68 }, "type": "chat" }, { - "id": "gemini-2.0-flash-exp-search", - "name": "gemini-2.0-flash-exp-search", - "display_name": "gemini-2.0-flash-exp-search", + "id": "cc-ernie-4.5-300b-a47b", + "name": "cc-ernie-4.5-300b-a47b", + "display_name": "cc-ernie-4.5-300b-a47b", "modalities": { "input": [ "text", @@ -69194,56 +78767,81 @@ "supported": false }, "cost": { - "input": 0.1, - "output": 0.4 + "input": 0.32, + "output": 1.28, + "cache_read": 0 }, "type": "chat" }, { - "id": "kat-dev", - "name": "kat-dev", - "display_name": "kat-dev", + "id": "cc-kimi-dev-72b", + "name": "cc-kimi-dev-72b", + "display_name": "cc-kimi-dev-72b", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.32, + "output": 1.28, + "cache_read": 0 + }, + "type": "chat" + }, + { + "id": "cc-kimi-k2-instruct", + "name": "cc-kimi-k2-instruct", + "display_name": "cc-kimi-k2-instruct", "modalities": { "input": [ "text" ] }, "limit": { - "context": 128000, - "output": 128000 + "context": 8192, + "output": 8192 }, "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 0.137, - "output": 0.548 + "input": 1.1, + "output": 3.3 }, "type": "chat" }, { - "id": "llama-3.3-70b", - "name": "llama-3.3-70b", - "display_name": "llama-3.3-70b", + "id": "cc-kimi-k2-instruct-0905", + "name": "cc-kimi-k2-instruct-0905", + "display_name": "cc-kimi-k2-instruct-0905", + "modalities": { + "input": [ + "text" + ] + }, "limit": { - "context": 65536, - "output": 65536 + "context": 8192, + "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 0.6, - "output": 0.6 + "input": 1.1, + "output": 3.3 }, "type": "chat" }, { - "id": "o1-global", - "name": "o1-global", - "display_name": "o1-global", + "id": "cc-kimi-k2-thinking", + "name": "cc-kimi-k2-thinking", + "display_name": "cc-kimi-k2-thinking", "limit": { "context": 8192, "output": 8192 @@ -69253,16 +78851,15 @@ "supported": false }, "cost": { - "input": 15, - "output": 60, - "cache_read": 7.5 + "input": 0.548, + "output": 2.192 }, "type": "chat" }, { - "id": "qianfan-qi-vl", - "name": "qianfan-qi-vl", - "display_name": "qianfan-qi-vl", + "id": "computer-use-preview", + "name": "computer-use-preview", + "display_name": "computer-use-preview", "limit": { "context": 8192, "output": 8192 @@ -69272,21 +78869,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.6 + "input": 3, + "output": 12 }, "type": "chat" }, { - "id": "qwen2.5-vl-72b-instruct", - "name": "qwen2.5-vl-72b-instruct", - "display_name": "qwen2.5-vl-72b-instruct", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "crush-glm-4.6-free", + "name": "crush-glm-4.6-free", + "display_name": "crush-glm-4.6-free", "limit": { "context": 8192, "output": 8192 @@ -69296,15 +78887,15 @@ "supported": false }, "cost": { - "input": 2.4, - "output": 7.2 + "input": 0, + "output": 0 }, "type": "chat" }, { - "id": "unsloth/gemma-3-27b-it", - "name": "unsloth/gemma-3-27b-it", - "display_name": "unsloth/gemma-3-27b-it", + "id": "sf-kimi-k2-thinking", + "name": "sf-kimi-k2-thinking", + "display_name": "sf-kimi-k2-thinking", "limit": { "context": 8192, "output": 8192 @@ -69314,16 +78905,15 @@ "supported": false }, "cost": { - "input": 0.22, - "output": 0.22, - "cache_read": 0 + "input": 0.548, + "output": 2.192 }, "type": "chat" }, { - "id": "qwen-qwq-32b", - "name": "qwen-qwq-32b", - "display_name": "qwen-qwq-32b", + "id": "o1-mini-2024-09-12", + "name": "o1-mini-2024-09-12", + "display_name": "o1-mini-2024-09-12", "limit": { "context": 8192, "output": 8192 @@ -69333,15 +78923,16 @@ "supported": false }, "cost": { - "input": 0.4, - "output": 0.8 + "input": 3, + "output": 12, + "cache_read": 1.5 }, "type": "chat" }, { - "id": "unsloth/gemma-3-12b-it", - "name": "unsloth/gemma-3-12b-it", - "display_name": "unsloth/gemma-3-12b-it", + "id": "omni-moderation-latest", + "name": "omni-moderation-latest", + "display_name": "omni-moderation-latest", "limit": { "context": 8192, "output": 8192 @@ -69352,15 +78943,14 @@ }, "cost": { "input": 0.2, - "output": 0.8, - "cache_read": 0 + "output": 0.2 }, "type": "chat" }, { - "id": "gemini-exp-1206", - "name": "gemini-exp-1206", - "display_name": "gemini-exp-1206", + "id": "qwen-flash", + "name": "qwen-flash", + "display_name": "qwen-flash", "limit": { "context": 8192, "output": 8192 @@ -69370,21 +78960,16 @@ "supported": false }, "cost": { - "input": 1.25, - "output": 5 + "input": 0.02, + "output": 0.2, + "cache_read": 0.02 }, "type": "chat" }, { - "id": "gpt-4o-zh", - "name": "gpt-4o-zh", - "display_name": "gpt-4o-zh", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "qwen-flash-2025-07-28", + "name": "qwen-flash-2025-07-28", + "display_name": "qwen-flash-2025-07-28", "limit": { "context": 8192, "output": 8192 @@ -69394,39 +78979,34 @@ "supported": false }, "cost": { - "input": 2.5, - "output": 10 + "input": 0.02, + "output": 0.2, + "cache_read": 0.02 }, "type": "chat" }, { - "id": "claude-3-5-haiku", - "name": "claude-3-5-haiku", - "display_name": "claude-3-5-haiku", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "qwen-long", + "name": "qwen-long", + "display_name": "qwen-long", "limit": { - "context": 200000, - "output": 200000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 1.1, - "output": 5.5 + "input": 0.1, + "output": 0.4 }, "type": "chat" }, { - "id": "qwen-max-0125", - "name": "qwen-max-0125", - "display_name": "qwen-max-0125", + "id": "qwen-max", + "name": "qwen-max", + "display_name": "qwen-max", "limit": { "context": 8192, "output": 8192 @@ -69442,9 +79022,9 @@ "type": "chat" }, { - "id": "gemini-2.0-flash-lite-preview-02-05", - "name": "gemini-2.0-flash-lite-preview-02-05", - "display_name": "gemini-2.0-flash-lite-preview-02-05", + "id": "qwen-max-longcontext", + "name": "qwen-max-longcontext", + "display_name": "qwen-max-longcontext", "limit": { "context": 8192, "output": 8192 @@ -69454,16 +79034,15 @@ "supported": false }, "cost": { - "input": 0.075, - "output": 0.3, - "cache_read": 0.075 + "input": 7, + "output": 21 }, "type": "chat" }, { - "id": "sonar-reasoning", - "name": "sonar-reasoning", - "display_name": "sonar-reasoning", + "id": "qwen-plus", + "name": "qwen-plus", + "display_name": "qwen-plus", "limit": { "context": 8192, "output": 8192 @@ -69473,15 +79052,15 @@ "supported": false }, "cost": { - "input": 1.6, - "output": 8 + "input": 0.7, + "output": 2.1 }, "type": "chat" }, { - "id": "doubao-embedding-large-text-240915", - "name": "doubao-embedding-large-text-240915", - "display_name": "doubao-embedding-large-text-240915", + "id": "qwen-turbo", + "name": "qwen-turbo", + "display_name": "qwen-turbo", "modalities": { "input": [ "text" @@ -69496,15 +79075,20 @@ "supported": false }, "cost": { - "input": 0.1, - "output": 0.1 + "input": 0.36, + "output": 1.08 }, - "type": "embedding" + "type": "chat" }, { - "id": "google/gemma-3-27b-it", - "name": "google/gemma-3-27b-it", - "display_name": "google/gemma-3-27b-it", + "id": "qwen-turbo-2024-11-01", + "name": "qwen-turbo-2024-11-01", + "display_name": "qwen-turbo-2024-11-01", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -69514,16 +79098,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2, - "cache_read": 0 + "input": 0.36, + "output": 1.08 }, "type": "chat" }, { - "id": "kimi-thinking-preview", - "name": "kimi-thinking-preview", - "display_name": "kimi-thinking-preview", + "id": "qwen2.5-14b-instruct", + "name": "qwen2.5-14b-instruct", + "display_name": "qwen2.5-14b-instruct", "limit": { "context": 8192, "output": 8192 @@ -69533,15 +79116,15 @@ "supported": false }, "cost": { - "input": 30, - "output": 30 + "input": 0.4, + "output": 1.2 }, "type": "chat" }, { - "id": "gpt-4o-2024-08-06", - "name": "gpt-4o-2024-08-06", - "display_name": "gpt-4o-2024-08-06", + "id": "qwen2.5-32b-instruct", + "name": "qwen2.5-32b-instruct", + "display_name": "qwen2.5-32b-instruct", "limit": { "context": 8192, "output": 8192 @@ -69551,16 +79134,15 @@ "supported": false }, "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 + "input": 0.6, + "output": 1.2 }, "type": "chat" }, { - "id": "qwen-plus-2025-07-28", - "name": "qwen-plus-2025-07-28", - "display_name": "qwen-plus-2025-07-28", + "id": "qwen2.5-3b-instruct", + "name": "qwen2.5-3b-instruct", + "display_name": "qwen2.5-3b-instruct", "limit": { "context": 8192, "output": 8192 @@ -69570,16 +79152,15 @@ "supported": false }, "cost": { - "input": 0.11, - "output": 0.275, - "cache_read": 0.11 + "input": 0.4, + "output": 0.8 }, "type": "chat" }, { - "id": "qwen-plus-latest", - "name": "qwen-plus-latest", - "display_name": "qwen-plus-latest", + "id": "qwen2.5-72b-instruct", + "name": "qwen2.5-72b-instruct", + "display_name": "qwen2.5-72b-instruct", "limit": { "context": 8192, "output": 8192 @@ -69589,16 +79170,15 @@ "supported": false }, "cost": { - "input": 0.11, - "output": 0.275, - "cache_read": 0.11 + "input": 0.8, + "output": 2.4 }, "type": "chat" }, { - "id": "sonar", - "name": "sonar", - "display_name": "sonar", + "id": "qwen2.5-7b-instruct", + "name": "qwen2.5-7b-instruct", + "display_name": "qwen2.5-7b-instruct", "limit": { "context": 8192, "output": 8192 @@ -69608,15 +79188,15 @@ "supported": false }, "cost": { - "input": 1.6, - "output": 1.6 + "input": 0.4, + "output": 0.8 }, "type": "chat" }, { - "id": "stepfun-ai/step3", - "name": "stepfun-ai/step3", - "display_name": "stepfun-ai/step3", + "id": "qwen2.5-coder-1.5b-instruct", + "name": "qwen2.5-coder-1.5b-instruct", + "display_name": "qwen2.5-coder-1.5b-instruct", "limit": { "context": 8192, "output": 8192 @@ -69626,20 +79206,15 @@ "supported": false }, "cost": { - "input": 1.1, - "output": 2.75 + "input": 0.2, + "output": 0.4 }, "type": "chat" }, { - "id": "text-embedding-v4", - "name": "text-embedding-v4", - "display_name": "text-embedding-v4", - "modalities": { - "input": [ - "text" - ] - }, + "id": "qwen2.5-coder-7b-instruct", + "name": "qwen2.5-coder-7b-instruct", + "display_name": "qwen2.5-coder-7b-instruct", "limit": { "context": 8192, "output": 8192 @@ -69649,15 +79224,15 @@ "supported": false }, "cost": { - "input": 0.08, - "output": 0.08 + "input": 0.2, + "output": 0.4 }, - "type": "embedding" + "type": "chat" }, { - "id": "qwen-turbo-latest", - "name": "qwen-turbo-latest", - "display_name": "qwen-turbo-latest", + "id": "qwen2.5-math-1.5b-instruct", + "name": "qwen2.5-math-1.5b-instruct", + "display_name": "qwen2.5-math-1.5b-instruct", "limit": { "context": 8192, "output": 8192 @@ -69667,16 +79242,15 @@ "supported": false }, "cost": { - "input": 0.046, - "output": 0.92, - "cache_read": 0 + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "qwen3-30b-a3b", - "name": "qwen3-30b-a3b", - "display_name": "qwen3-30b-a3b", + "id": "qwen2.5-math-72b-instruct", + "name": "qwen2.5-math-72b-instruct", + "display_name": "qwen2.5-math-72b-instruct", "limit": { "context": 8192, "output": 8192 @@ -69686,16 +79260,15 @@ "supported": false }, "cost": { - "input": 0.12, - "output": 1.2, - "cache_read": 0 + "input": 0.8, + "output": 2.4 }, "type": "chat" }, { - "id": "qwen3-32b", - "name": "qwen3-32b", - "display_name": "qwen3-32b", + "id": "qwen2.5-math-7b-instruct", + "name": "qwen2.5-math-7b-instruct", + "display_name": "qwen2.5-math-7b-instruct", "limit": { "context": 8192, "output": 8192 @@ -69705,16 +79278,15 @@ "supported": false }, "cost": { - "input": 0.32, - "output": 3.2, - "cache_read": 0 + "input": 0.2, + "output": 0.4 }, "type": "chat" }, { - "id": "grok-3", - "name": "grok-3", - "display_name": "grok-3", + "id": "sonar-reasoning-pro", + "name": "sonar-reasoning-pro", + "display_name": "sonar-reasoning-pro", "limit": { "context": 8192, "output": 8192 @@ -69725,14 +79297,14 @@ }, "cost": { "input": 3, - "output": 15 + "output": 12 }, "type": "chat" }, { - "id": "claude-3-opus-20240229", - "name": "claude-3-opus-20240229", - "display_name": "claude-3-opus-20240229", + "id": "step-2-16k", + "name": "step-2-16k", + "display_name": "step-2-16k", "limit": { "context": 8192, "output": 8192 @@ -69742,44 +79314,15 @@ "supported": false }, "cost": { - "input": 16.5, - "output": 82.5 + "input": 2, + "output": 2 }, "type": "chat" }, { - "id": "dall-e-3", - "name": "dall-e-3", - "display_name": "dall-e-3", - "modalities": { - "input": [ - "text", - "image" - ] - }, - "limit": { - "context": 8192, - "output": 8192 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, - "cost": { - "input": 40, - "output": 40 - }, - "type": "imageGeneration" - }, - { - "id": "doubao-embedding-text-240715", - "name": "doubao-embedding-text-240715", - "display_name": "doubao-embedding-text-240715", - "modalities": { - "input": [ - "text" - ] - }, + "id": "text-ada-001", + "name": "text-ada-001", + "display_name": "text-ada-001", "limit": { "context": 8192, "output": 8192 @@ -69789,15 +79332,15 @@ "supported": false }, "cost": { - "input": 0.7, - "output": 0.7 + "input": 0.4, + "output": 0.4 }, - "type": "embedding" + "type": "chat" }, { - "id": "qwen3-14b", - "name": "qwen3-14b", - "display_name": "qwen3-14b", + "id": "text-babbage-001", + "name": "text-babbage-001", + "display_name": "text-babbage-001", "limit": { "context": 8192, "output": 8192 @@ -69807,16 +79350,15 @@ "supported": false }, "cost": { - "input": 0.16, - "output": 1.6, - "cache_read": 0 + "input": 0.5, + "output": 0.5 }, "type": "chat" }, { - "id": "grok-3-beta", - "name": "grok-3-beta", - "display_name": "grok-3-beta", + "id": "text-curie-001", + "name": "text-curie-001", + "display_name": "text-curie-001", "limit": { "context": 8192, "output": 8192 @@ -69826,16 +79368,15 @@ "supported": false }, "cost": { - "input": 3, - "output": 15, - "cache_read": 0 + "input": 2, + "output": 2 }, "type": "chat" }, { - "id": "grok-3-fast", - "name": "grok-3-fast", - "display_name": "grok-3-fast", + "id": "text-davinci-002", + "name": "text-davinci-002", + "display_name": "text-davinci-002", "limit": { "context": 8192, "output": 8192 @@ -69845,16 +79386,15 @@ "supported": false }, "cost": { - "input": 5.5, - "output": 27.5, - "cache_read": 0 + "input": 20, + "output": 20 }, "type": "chat" }, { - "id": "qwen3-8b", - "name": "qwen3-8b", - "display_name": "qwen3-8b", + "id": "text-davinci-003", + "name": "text-davinci-003", + "display_name": "text-davinci-003", "limit": { "context": 8192, "output": 8192 @@ -69864,16 +79404,15 @@ "supported": false }, "cost": { - "input": 0.08, - "output": 0.8, - "cache_read": 0 + "input": 20, + "output": 20 }, "type": "chat" }, { - "id": "qwen3-4b", - "name": "qwen3-4b", - "display_name": "qwen3-4b", + "id": "text-davinci-edit-001", + "name": "text-davinci-edit-001", + "display_name": "text-davinci-edit-001", "limit": { "context": 8192, "output": 8192 @@ -69883,16 +79422,20 @@ "supported": false }, "cost": { - "input": 0.046, - "output": 0.46, - "cache_read": 0 + "input": 20, + "output": 20 }, "type": "chat" }, { - "id": "grok-3-fast-beta", - "name": "grok-3-fast-beta", - "display_name": "grok-3-fast-beta", + "id": "text-embedding-3-large", + "name": "text-embedding-3-large", + "display_name": "text-embedding-3-large", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -69902,16 +79445,20 @@ "supported": false }, "cost": { - "input": 5.5, - "output": 27.5, - "cache_read": 0 + "input": 0.13, + "output": 0.13 }, - "type": "chat" + "type": "embedding" }, { - "id": "grok-3-mini", - "name": "grok-3-mini", - "display_name": "grok-3-mini", + "id": "text-embedding-3-small", + "name": "text-embedding-3-small", + "display_name": "text-embedding-3-small", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -69921,16 +79468,20 @@ "supported": false }, "cost": { - "input": 0.3, - "output": 0.501, - "cache_read": 0 + "input": 0.02, + "output": 0.02 }, - "type": "chat" + "type": "embedding" }, { - "id": "grok-3-mini-beta", - "name": "grok-3-mini-beta", - "display_name": "grok-3-mini-beta", + "id": "text-embedding-ada-002", + "name": "text-embedding-ada-002", + "display_name": "text-embedding-ada-002", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -69940,16 +79491,20 @@ "supported": false }, "cost": { - "input": 0.33, - "output": 0.5511, - "cache_read": 0 + "input": 0.1, + "output": 0.1 }, - "type": "chat" + "type": "embedding" }, { - "id": "qwen3-1.7b", - "name": "qwen3-1.7b", - "display_name": "qwen3-1.7b", + "id": "text-embedding-v1", + "name": "text-embedding-v1", + "display_name": "text-embedding-v1", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -69959,16 +79514,15 @@ "supported": false }, "cost": { - "input": 0.046, - "output": 0.46, - "cache_read": 0 + "input": 0.1, + "output": 0.1 }, - "type": "chat" + "type": "embedding" }, { - "id": "qwen3-0.6b", - "name": "qwen3-0.6b", - "display_name": "qwen3-0.6b", + "id": "text-moderation-007", + "name": "text-moderation-007", + "display_name": "text-moderation-007", "limit": { "context": 8192, "output": 8192 @@ -69978,16 +79532,15 @@ "supported": false }, "cost": { - "input": 0.046, - "output": 0.46, - "cache_read": 0 + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "qwen-3-32b", - "name": "qwen-3-32b", - "display_name": "qwen-3-32b", + "id": "text-moderation-latest", + "name": "text-moderation-latest", + "display_name": "text-moderation-latest", "limit": { "context": 8192, "output": 8192 @@ -69997,15 +79550,15 @@ "supported": false }, "cost": { - "input": 0.4, - "output": 1.6 + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "qwen-turbo-2025-04-28", - "name": "qwen-turbo-2025-04-28", - "display_name": "qwen-turbo-2025-04-28", + "id": "text-moderation-stable", + "name": "text-moderation-stable", + "display_name": "text-moderation-stable", "limit": { "context": 8192, "output": 8192 @@ -70015,16 +79568,15 @@ "supported": false }, "cost": { - "input": 0.046, - "output": 0.92, - "cache_read": 0 + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "grok-3-mini-fast-beta", - "name": "grok-3-mini-fast-beta", - "display_name": "grok-3-mini-fast-beta", + "id": "text-search-ada-doc-001", + "name": "text-search-ada-doc-001", + "display_name": "text-search-ada-doc-001", "limit": { "context": 8192, "output": 8192 @@ -70034,18 +79586,18 @@ "supported": false }, "cost": { - "input": 0.33, - "output": 2.20011 + "input": 20, + "output": 20 }, "type": "chat" }, { - "id": "command-a-03-2025", - "name": "command-a-03-2025", - "display_name": "command-a-03-2025", + "id": "tts-1", + "name": "tts-1", + "display_name": "tts-1", "modalities": { "input": [ - "text" + "audio" ] }, "limit": { @@ -70057,16 +79609,19 @@ "supported": false }, "cost": { - "input": 2.5, - "output": 10, - "cache_read": 0 - }, - "type": "chat" + "input": 15, + "output": 15 + } }, { - "id": "qwen-plus-2025-04-28", - "name": "qwen-plus-2025-04-28", - "display_name": "qwen-plus-2025-04-28", + "id": "tts-1-1106", + "name": "tts-1-1106", + "display_name": "tts-1-1106", + "modalities": { + "input": [ + "audio" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -70076,16 +79631,19 @@ "supported": false }, "cost": { - "input": 0.13, - "output": 2.6, - "cache_read": 0 - }, - "type": "chat" + "input": 15, + "output": 15 + } }, { - "id": "text-embedding-004", - "name": "text-embedding-004", - "display_name": "text-embedding-004", + "id": "tts-1-hd", + "name": "tts-1-hd", + "display_name": "tts-1-hd", + "modalities": { + "input": [ + "audio" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -70095,15 +79653,19 @@ "supported": false }, "cost": { - "input": 0.02, - "output": 0.02 - }, - "type": "chat" + "input": 30, + "output": 30 + } }, { - "id": "cc-doubao-seed-code-preview-latest", - "name": "cc-doubao-seed-code-preview-latest", - "display_name": "cc-doubao-seed-code-preview-latest", + "id": "tts-1-hd-1106", + "name": "tts-1-hd-1106", + "display_name": "tts-1-hd-1106", + "modalities": { + "input": [ + "audio" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -70113,15 +79675,22 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2 - }, - "type": "chat" + "input": 30, + "output": 30 + } }, { - "id": "doubao-seed-code-preview-latest", - "name": "doubao-seed-code-preview-latest", - "display_name": "doubao-seed-code-preview-latest", + "id": "veo-3", + "name": "veo-3", + "display_name": "veo-3", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -70131,15 +79700,24 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2 + "input": 2, + "output": 2, + "cache_read": 0 }, "type": "chat" }, { - "id": "glm-zero-preview", - "name": "glm-zero-preview", - "display_name": "glm-zero-preview", + "id": "veo3", + "name": "veo3", + "display_name": "veo3", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -70150,14 +79728,20 @@ }, "cost": { "input": 2, - "output": 2 + "output": 2, + "cache_read": 0 }, "type": "chat" }, { - "id": "qwen-3-235b-a22b-instruct-2507", - "name": "qwen-3-235b-a22b-instruct-2507", - "display_name": "qwen-3-235b-a22b-instruct-2507", + "id": "whisper-1", + "name": "whisper-1", + "display_name": "whisper-1", + "modalities": { + "input": [ + "audio" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -70167,15 +79751,20 @@ "supported": false }, "cost": { - "input": 0.28, - "output": 1.4 + "input": 100, + "output": 100 }, "type": "chat" }, { - "id": "gemini-2.0-flash-thinking-exp-1219", - "name": "gemini-2.0-flash-thinking-exp-1219", - "display_name": "gemini-2.0-flash-thinking-exp-1219", + "id": "whisper-large-v3", + "name": "whisper-large-v3", + "display_name": "whisper-large-v3", + "modalities": { + "input": [ + "audio" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -70185,38 +79774,38 @@ "supported": false }, "cost": { - "input": 0.076, - "output": 0.304 + "input": 30.834, + "output": 30.834 }, "type": "chat" }, { - "id": "glm-4.5-air", - "name": "glm-4.5-air", - "display_name": "glm-4.5-air", + "id": "whisper-large-v3-turbo", + "name": "whisper-large-v3-turbo", + "display_name": "whisper-large-v3-turbo", "modalities": { "input": [ - "text" + "audio" ] }, "limit": { - "context": 131072, - "output": 131072 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.14, - "output": 0.84 + "input": 5.556, + "output": 5.556 }, "type": "chat" }, { - "id": "gpt-4-32k", - "name": "gpt-4-32k", - "display_name": "gpt-4-32k", + "id": "yi-large", + "name": "yi-large", + "display_name": "yi-large", "limit": { "context": 8192, "output": 8192 @@ -70226,15 +79815,15 @@ "supported": false }, "cost": { - "input": 60, - "output": 120 + "input": 3, + "output": 3 }, "type": "chat" }, { - "id": "o1-preview-2024-09-12", - "name": "o1-preview-2024-09-12", - "display_name": "o1-preview-2024-09-12", + "id": "yi-large-rag", + "name": "yi-large-rag", + "display_name": "yi-large-rag", "limit": { "context": 8192, "output": 8192 @@ -70244,21 +79833,15 @@ "supported": false }, "cost": { - "input": 15, - "output": 60, - "cache_read": 7.5 + "input": 4, + "output": 4 }, "type": "chat" }, { - "id": "coding-glm-4.5-air", - "name": "coding-glm-4.5-air", - "display_name": "coding-glm-4.5-air", - "modalities": { - "input": [ - "text" - ] - }, + "id": "yi-large-turbo", + "name": "yi-large-turbo", + "display_name": "yi-large-turbo", "limit": { "context": 8192, "output": 8192 @@ -70268,15 +79851,15 @@ "supported": false }, "cost": { - "input": 0.014, - "output": 0.084 + "input": 1.8, + "output": 1.8 }, "type": "chat" }, { - "id": "llama-3.1-sonar-huge-128k-online", - "name": "llama-3.1-sonar-huge-128k-online", - "display_name": "llama-3.1-sonar-huge-128k-online", + "id": "yi-lightning", + "name": "yi-lightning", + "display_name": "yi-lightning", "limit": { "context": 8192, "output": 8192 @@ -70286,15 +79869,15 @@ "supported": false }, "cost": { - "input": 5.6, - "output": 5.6 + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "llama-3.1-sonar-large-128k-online", - "name": "llama-3.1-sonar-large-128k-online", - "display_name": "llama-3.1-sonar-large-128k-online", + "id": "yi-medium", + "name": "yi-medium", + "display_name": "yi-medium", "limit": { "context": 8192, "output": 8192 @@ -70304,15 +79887,15 @@ "supported": false }, "cost": { - "input": 1.2, - "output": 1.2 + "input": 0.4, + "output": 0.4 }, "type": "chat" }, { - "id": "grok-2-1212", - "name": "grok-2-1212", - "display_name": "grok-2-1212", + "id": "yi-vl-plus", + "name": "yi-vl-plus", + "display_name": "yi-vl-plus", "limit": { "context": 8192, "output": 8192 @@ -70322,15 +79905,15 @@ "supported": false }, "cost": { - "input": 1.8, - "output": 9 + "input": 0.000852, + "output": 0.000852 }, "type": "chat" }, { - "id": "llama-3.1-70b", - "name": "llama-3.1-70b", - "display_name": "llama-3.1-70b", + "id": "gemini-2.0-flash-001", + "name": "gemini-2.0-flash-001", + "display_name": "gemini-2.0-flash-001", "limit": { "context": 8192, "output": 8192 @@ -70340,15 +79923,16 @@ "supported": false }, "cost": { - "input": 0.6, - "output": 0.6 + "input": 0.1, + "output": 0.4, + "cache_read": 0.25 }, "type": "chat" }, { - "id": "gemini-2.0-flash-thinking-exp", - "name": "gemini-2.0-flash-thinking-exp", - "display_name": "gemini-2.0-flash-thinking-exp", + "id": "gemini-2.0-flash-exp-image-generation", + "name": "gemini-2.0-flash-exp-image-generation", + "display_name": "gemini-2.0-flash-exp-image-generation", "limit": { "context": 8192, "output": 8192 @@ -70358,18 +79942,21 @@ "supported": false }, "cost": { - "input": 0.076, - "output": 0.304 + "input": 0.1, + "output": 0.4 }, "type": "chat" }, { - "id": "glm-4.5-flash", - "name": "glm-4.5-flash", - "display_name": "glm-4.5-flash", + "id": "gemini-2.0-flash-lite", + "name": "gemini-2.0-flash-lite", + "display_name": "gemini-2.0-flash-lite", "modalities": { "input": [ - "text" + "text", + "image", + "audio", + "video" ] }, "limit": { @@ -70381,16 +79968,16 @@ "supported": false }, "cost": { - "input": 0, - "output": 0, - "cache_read": 0 + "input": 0.076, + "output": 0.304, + "cache_read": 0.076 }, "type": "chat" }, { - "id": "gpt-image-test", - "name": "gpt-image-test", - "display_name": "gpt-image-test", + "id": "gemini-2.0-flash-lite-001", + "name": "gemini-2.0-flash-lite-001", + "display_name": "gemini-2.0-flash-lite-001", "limit": { "context": 8192, "output": 8192 @@ -70400,41 +79987,48 @@ "supported": false }, "cost": { - "input": 5, - "output": 40, - "cache_read": 0 + "input": 0.076, + "output": 0.304, + "cache_read": 0.076 }, "type": "chat" }, { - "id": "imagen-3.0-generate-002", - "name": "imagen-3.0-generate-002", - "display_name": "imagen-3.0-generate-002", + "id": "gemini-2.5-pro-exp-03-25", + "name": "gemini-2.5-pro-exp-03-25", + "display_name": "gemini-2.5-pro-exp-03-25", "modalities": { "input": [ "text", - "image" + "image", + "audio", + "video" ] }, "limit": { "context": 8192, "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 2, - "output": 2, - "cache_read": 0 + "input": 1.25, + "output": 5, + "cache_read": 0.125 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "llama3-8b-8192", - "name": "llama3-8b-8192", - "display_name": "llama3-8b-8192", + "id": "gemini-embedding-exp-03-07", + "name": "gemini-embedding-exp-03-07", + "display_name": "gemini-embedding-exp-03-07", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -70444,15 +80038,15 @@ "supported": false }, "cost": { - "input": 0.06, - "output": 0.12 + "input": 0.02, + "output": 0.02 }, - "type": "chat" + "type": "embedding" }, { - "id": "llama3.1-8b", - "name": "llama3.1-8b", - "display_name": "llama3.1-8b", + "id": "gemini-exp-1114", + "name": "gemini-exp-1114", + "display_name": "gemini-exp-1114", "limit": { "context": 8192, "output": 8192 @@ -70462,41 +80056,33 @@ "supported": false }, "cost": { - "input": 0.3, - "output": 0.6 + "input": 1.25, + "output": 5 }, "type": "chat" }, { - "id": "o1-2024-12-17", - "name": "o1-2024-12-17", - "display_name": "o1-2024-12-17", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "gemini-exp-1121", + "name": "gemini-exp-1121", + "display_name": "gemini-exp-1121", "limit": { "context": 8192, "output": 8192 }, "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 15, - "output": 60, - "cache_read": 7.5 + "input": 1.25, + "output": 5 }, "type": "chat" }, { - "id": "sf-kimi-k2-thinking", - "name": "sf-kimi-k2-thinking", - "display_name": "sf-kimi-k2-thinking", + "id": "gemini-pro", + "name": "gemini-pro", + "display_name": "gemini-pro", "limit": { "context": 8192, "output": 8192 @@ -70506,15 +80092,15 @@ "supported": false }, "cost": { - "input": 0.548, - "output": 2.192 + "input": 0.2, + "output": 0.6 }, "type": "chat" }, { - "id": "bai-qwen3-vl-235b-a22b-instruct", - "name": "bai-qwen3-vl-235b-a22b-instruct", - "display_name": "bai-qwen3-vl-235b-a22b-instruct", + "id": "gemini-pro-vision", + "name": "gemini-pro-vision", + "display_name": "gemini-pro-vision", "limit": { "context": 8192, "output": 8192 @@ -70524,15 +80110,15 @@ "supported": false }, "cost": { - "input": 0.274, - "output": 1.096 + "input": 1, + "output": 1 }, "type": "chat" }, { - "id": "cc-deepseek-v3", - "name": "cc-deepseek-v3", - "display_name": "cc-deepseek-v3", + "id": "gemma-7b-it", + "name": "gemma-7b-it", + "display_name": "gemma-7b-it", "limit": { "context": 8192, "output": 8192 @@ -70542,63 +80128,51 @@ "supported": false }, "cost": { - "input": 0.3, - "output": 0.3 + "input": 0.1, + "output": 0.1 }, "type": "chat" }, { - "id": "cc-deepseek-v3.1", - "name": "cc-deepseek-v3.1", - "display_name": "cc-deepseek-v3.1", - "modalities": { - "input": [ - "text" - ] - }, + "id": "gemma2-9b-it", + "name": "gemma2-9b-it", + "display_name": "gemma2-9b-it", "limit": { "context": 8192, "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.56, - "output": 1.68 + "input": 0.4, + "output": 0.4 }, "type": "chat" }, { - "id": "cc-ernie-4.5-300b-a47b", - "name": "cc-ernie-4.5-300b-a47b", - "display_name": "cc-ernie-4.5-300b-a47b", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "glm-3-turbo", + "name": "glm-3-turbo", + "display_name": "glm-3-turbo", "limit": { "context": 8192, "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.32, - "output": 1.28, - "cache_read": 0 + "input": 0.71, + "output": 0.71 }, "type": "chat" }, { - "id": "cc-kimi-dev-72b", - "name": "cc-kimi-dev-72b", - "display_name": "cc-kimi-dev-72b", + "id": "glm-4", + "name": "glm-4", + "display_name": "glm-4", "limit": { "context": 8192, "output": 8192 @@ -70608,62 +80182,56 @@ "supported": false }, "cost": { - "input": 0.32, - "output": 1.28, - "cache_read": 0 + "input": 14.2, + "output": 14.2 }, "type": "chat" }, { - "id": "cc-kimi-k2-instruct", - "name": "cc-kimi-k2-instruct", - "display_name": "cc-kimi-k2-instruct", - "modalities": { - "input": [ - "text" - ] - }, + "id": "glm-4-flash", + "name": "glm-4-flash", + "display_name": "glm-4-flash", "limit": { "context": 8192, "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 1.1, - "output": 3.3 + "input": 0.1, + "output": 0.1 }, "type": "chat" }, { - "id": "cc-kimi-k2-instruct-0905", - "name": "cc-kimi-k2-instruct-0905", - "display_name": "cc-kimi-k2-instruct-0905", - "modalities": { - "input": [ - "text" - ] - }, + "id": "glm-4-plus", + "name": "glm-4-plus", + "display_name": "glm-4-plus", "limit": { "context": 8192, "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 1.1, - "output": 3.3 + "input": 8, + "output": 8 }, "type": "chat" }, { - "id": "cc-kimi-k2-thinking", - "name": "cc-kimi-k2-thinking", - "display_name": "cc-kimi-k2-thinking", + "id": "glm-4.5-airx", + "name": "glm-4.5-airx", + "display_name": "glm-4.5-airx", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -70673,15 +80241,16 @@ "supported": false }, "cost": { - "input": 0.548, - "output": 2.192 + "input": 1.1, + "output": 4.51, + "cache_read": 0.22 }, "type": "chat" }, { - "id": "computer-use-preview", - "name": "computer-use-preview", - "display_name": "computer-use-preview", + "id": "glm-4v", + "name": "glm-4v", + "display_name": "glm-4v", "limit": { "context": 8192, "output": 8192 @@ -70691,15 +80260,15 @@ "supported": false }, "cost": { - "input": 3, - "output": 12 + "input": 14.2, + "output": 14.2 }, "type": "chat" }, { - "id": "crush-glm-4.6-free", - "name": "crush-glm-4.6-free", - "display_name": "crush-glm-4.6-free", + "id": "glm-4v-plus", + "name": "glm-4v-plus", + "display_name": "glm-4v-plus", "limit": { "context": 8192, "output": 8192 @@ -70709,20 +80278,15 @@ "supported": false }, "cost": { - "input": 0, - "output": 0 + "input": 2, + "output": 2 }, "type": "chat" }, { - "id": "aihubmix-command-r-08-2024", - "name": "aihubmix-command-r-08-2024", - "display_name": "aihubmix-command-r-08-2024", - "modalities": { - "input": [ - "text" - ] - }, + "id": "google-gemma-3-12b-it", + "name": "google-gemma-3-12b-it", + "display_name": "google-gemma-3-12b-it", "limit": { "context": 8192, "output": 8192 @@ -70733,19 +80297,14 @@ }, "cost": { "input": 0.2, - "output": 0.8 + "output": 0.2 }, "type": "chat" }, { - "id": "aihubmix-command-r-plus", - "name": "aihubmix-command-r-plus", - "display_name": "aihubmix-command-r-plus", - "modalities": { - "input": [ - "text" - ] - }, + "id": "google-gemma-3-27b-it", + "name": "google-gemma-3-27b-it", + "display_name": "google-gemma-3-27b-it", "limit": { "context": 8192, "output": 8192 @@ -70755,20 +80314,16 @@ "supported": false }, "cost": { - "input": 3.84, - "output": 19.2 + "input": 0.2, + "output": 0.2, + "cache_read": 0 }, "type": "chat" }, { - "id": "aihubmix-command-r-plus-08-2024", - "name": "aihubmix-command-r-plus-08-2024", - "display_name": "aihubmix-command-r-plus-08-2024", - "modalities": { - "input": [ - "text" - ] - }, + "id": "google-gemma-3-4b-it", + "name": "google-gemma-3-4b-it", + "display_name": "google-gemma-3-4b-it", "limit": { "context": 8192, "output": 8192 @@ -70778,62 +80333,52 @@ "supported": false }, "cost": { - "input": 2.8, - "output": 11.2 + "input": 0.2, + "output": 0.2, + "cache_read": 0 }, "type": "chat" }, { - "id": "baidu-deepseek-v3.2", - "name": "baidu-deepseek-v3.2", - "display_name": "baidu-deepseek-v3.2", - "modalities": { - "input": [ - "text" - ] - }, + "id": "google/gemini-exp-1114", + "name": "google/gemini-exp-1114", + "display_name": "google/gemini-exp-1114", "limit": { "context": 8192, "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.274, - "output": 0.411 + "input": 1.25, + "output": 5 }, "type": "chat" }, { - "id": "baidu-deepseek-v3.2-exp", - "name": "baidu-deepseek-v3.2-exp", - "display_name": "baidu-deepseek-v3.2-exp", - "modalities": { - "input": [ - "text" - ] - }, + "id": "google/gemma-2-27b-it", + "name": "google/gemma-2-27b-it", + "display_name": "google/gemma-2-27b-it", "limit": { "context": 8192, "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.274, - "output": 0.411, - "cache_read": 0.0274 + "input": 0.8, + "output": 0.8 }, "type": "chat" }, { - "id": "chatglm_lite", - "name": "chatglm_lite", - "display_name": "chatglm_lite", + "id": "google/gemma-2-9b-it:free", + "name": "google/gemma-2-9b-it:free", + "display_name": "google/gemma-2-9b-it:free", "limit": { "context": 8192, "output": 8192 @@ -70843,15 +80388,15 @@ "supported": false }, "cost": { - "input": 0.2858, - "output": 0.2858 + "input": 0.02, + "output": 0.02 }, "type": "chat" }, { - "id": "chatglm_pro", - "name": "chatglm_pro", - "display_name": "chatglm_pro", + "id": "gpt-3.5-turbo", + "name": "gpt-3.5-turbo", + "display_name": "gpt-3.5-turbo", "limit": { "context": 8192, "output": 8192 @@ -70861,15 +80406,15 @@ "supported": false }, "cost": { - "input": 1.4286, - "output": 1.4286 + "input": 0.5, + "output": 1.5 }, "type": "chat" }, { - "id": "chatglm_std", - "name": "chatglm_std", - "display_name": "chatglm_std", + "id": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125", + "display_name": "gpt-3.5-turbo-0125", "limit": { "context": 8192, "output": 8192 @@ -70879,15 +80424,15 @@ "supported": false }, "cost": { - "input": 0.7144, - "output": 0.7144 + "input": 0.5, + "output": 1.5 }, "type": "chat" }, { - "id": "chatglm_turbo", - "name": "chatglm_turbo", - "display_name": "chatglm_turbo", + "id": "gpt-3.5-turbo-0301", + "name": "gpt-3.5-turbo-0301", + "display_name": "gpt-3.5-turbo-0301", "limit": { "context": 8192, "output": 8192 @@ -70897,15 +80442,15 @@ "supported": false }, "cost": { - "input": 0.7144, - "output": 0.7144 + "input": 1.5, + "output": 1.5 }, "type": "chat" }, { - "id": "claude-2", - "name": "claude-2", - "display_name": "claude-2", + "id": "gpt-3.5-turbo-0613", + "name": "gpt-3.5-turbo-0613", + "display_name": "gpt-3.5-turbo-0613", "limit": { "context": 8192, "output": 8192 @@ -70915,15 +80460,15 @@ "supported": false }, "cost": { - "input": 8.8, - "output": 8.8 + "input": 1.5, + "output": 2 }, "type": "chat" }, { - "id": "claude-2.0", - "name": "claude-2.0", - "display_name": "claude-2.0", + "id": "gpt-3.5-turbo-1106", + "name": "gpt-3.5-turbo-1106", + "display_name": "gpt-3.5-turbo-1106", "limit": { "context": 8192, "output": 8192 @@ -70933,15 +80478,15 @@ "supported": false }, "cost": { - "input": 8.8, - "output": 39.6 + "input": 1, + "output": 2 }, "type": "chat" }, { - "id": "claude-2.1", - "name": "claude-2.1", - "display_name": "claude-2.1", + "id": "gpt-3.5-turbo-16k", + "name": "gpt-3.5-turbo-16k", + "display_name": "gpt-3.5-turbo-16k", "limit": { "context": 8192, "output": 8192 @@ -70951,45 +80496,33 @@ "supported": false }, "cost": { - "input": 8.8, - "output": 39.6 + "input": 3, + "output": 4 }, "type": "chat" }, { - "id": "claude-3-5-sonnet-20240620", - "name": "claude-3-5-sonnet-20240620", - "display_name": "claude-3-5-sonnet-20240620", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "gpt-3.5-turbo-16k-0613", + "name": "gpt-3.5-turbo-16k-0613", + "display_name": "gpt-3.5-turbo-16k-0613", "limit": { - "context": 200000, - "output": 200000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 3.3, - "output": 16.5 + "input": 3, + "output": 4 }, "type": "chat" }, { - "id": "claude-3-haiku-20240229", - "name": "claude-3-haiku-20240229", - "display_name": "claude-3-haiku-20240229", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "gpt-3.5-turbo-instruct", + "name": "gpt-3.5-turbo-instruct", + "display_name": "gpt-3.5-turbo-instruct", "limit": { "context": 8192, "output": 8192 @@ -70999,21 +80532,15 @@ "supported": false }, "cost": { - "input": 0.275, - "output": 0.275 + "input": 1.5, + "output": 2 }, "type": "chat" }, { - "id": "claude-3-haiku-20240307", - "name": "claude-3-haiku-20240307", - "display_name": "claude-3-haiku-20240307", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "gpt-4", + "name": "gpt-4", + "display_name": "gpt-4", "limit": { "context": 8192, "output": 8192 @@ -71023,21 +80550,15 @@ "supported": false }, "cost": { - "input": 0.275, - "output": 1.375 + "input": 30, + "output": 60 }, "type": "chat" }, { - "id": "claude-3-sonnet-20240229", - "name": "claude-3-sonnet-20240229", - "display_name": "claude-3-sonnet-20240229", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "gpt-4-0125-preview", + "name": "gpt-4-0125-preview", + "display_name": "gpt-4-0125-preview", "limit": { "context": 8192, "output": 8192 @@ -71047,15 +80568,15 @@ "supported": false }, "cost": { - "input": 3.3, - "output": 16.5 + "input": 10, + "output": 30 }, "type": "chat" }, { - "id": "claude-instant-1", - "name": "claude-instant-1", - "display_name": "claude-instant-1", + "id": "gpt-4-0314", + "name": "gpt-4-0314", + "display_name": "gpt-4-0314", "limit": { "context": 8192, "output": 8192 @@ -71065,15 +80586,15 @@ "supported": false }, "cost": { - "input": 1.793, - "output": 1.793 + "input": 30, + "output": 60 }, "type": "chat" }, { - "id": "claude-instant-1.2", - "name": "claude-instant-1.2", - "display_name": "claude-instant-1.2", + "id": "gpt-4-0613", + "name": "gpt-4-0613", + "display_name": "gpt-4-0613", "limit": { "context": 8192, "output": 8192 @@ -71083,15 +80604,15 @@ "supported": false }, "cost": { - "input": 0.88, - "output": 3.96 + "input": 30, + "output": 60 }, "type": "chat" }, { - "id": "code-davinci-edit-001", - "name": "code-davinci-edit-001", - "display_name": "code-davinci-edit-001", + "id": "gpt-4-1106-preview", + "name": "gpt-4-1106-preview", + "display_name": "gpt-4-1106-preview", "limit": { "context": 8192, "output": 8192 @@ -71101,15 +80622,15 @@ "supported": false }, "cost": { - "input": 20, - "output": 20 + "input": 10, + "output": 30 }, "type": "chat" }, { - "id": "cogview-3", - "name": "cogview-3", - "display_name": "cogview-3", + "id": "gpt-4-32k-0314", + "name": "gpt-4-32k-0314", + "display_name": "gpt-4-32k-0314", "limit": { "context": 8192, "output": 8192 @@ -71119,15 +80640,15 @@ "supported": false }, "cost": { - "input": 35.5, - "output": 35.5 + "input": 60, + "output": 120 }, "type": "chat" }, { - "id": "cogview-3-plus", - "name": "cogview-3-plus", - "display_name": "cogview-3-plus", + "id": "gpt-4-32k-0613", + "name": "gpt-4-32k-0613", + "display_name": "gpt-4-32k-0613", "limit": { "context": 8192, "output": 8192 @@ -71137,20 +80658,15 @@ "supported": false }, "cost": { - "input": 10, - "output": 10 + "input": 60, + "output": 120 }, "type": "chat" }, { - "id": "command", - "name": "command", - "display_name": "command", - "modalities": { - "input": [ - "text" - ] - }, + "id": "gpt-4-turbo", + "name": "gpt-4-turbo", + "display_name": "gpt-4-turbo", "limit": { "context": 8192, "output": 8192 @@ -71160,15 +80676,15 @@ "supported": false }, "cost": { - "input": 1, - "output": 2 + "input": 10, + "output": 30 }, "type": "chat" }, { - "id": "command-light", - "name": "command-light", - "display_name": "command-light", + "id": "gpt-4-turbo-2024-04-09", + "name": "gpt-4-turbo-2024-04-09", + "display_name": "gpt-4-turbo-2024-04-09", "limit": { "context": 8192, "output": 8192 @@ -71178,15 +80694,15 @@ "supported": false }, "cost": { - "input": 1, - "output": 2 + "input": 10, + "output": 30 }, "type": "chat" }, { - "id": "command-light-nightly", - "name": "command-light-nightly", - "display_name": "command-light-nightly", + "id": "gpt-4-turbo-preview", + "name": "gpt-4-turbo-preview", + "display_name": "gpt-4-turbo-preview", "limit": { "context": 8192, "output": 8192 @@ -71196,15 +80712,15 @@ "supported": false }, "cost": { - "input": 1, - "output": 2 + "input": 10, + "output": 30 }, "type": "chat" }, { - "id": "command-nightly", - "name": "command-nightly", - "display_name": "command-nightly", + "id": "gpt-4-vision-preview", + "name": "gpt-4-vision-preview", + "display_name": "gpt-4-vision-preview", "limit": { "context": 8192, "output": 8192 @@ -71214,41 +80730,38 @@ "supported": false }, "cost": { - "input": 1, - "output": 2 + "input": 10, + "output": 30 }, "type": "chat" }, { - "id": "command-r", - "name": "command-r", - "display_name": "command-r", - "modalities": { - "input": [ - "text" - ] - }, + "id": "gpt-4o-2024-05-13", + "name": "gpt-4o-2024-05-13", + "display_name": "gpt-4o-2024-05-13", "limit": { - "context": 8192, - "output": 8192 + "context": 128000, + "output": 128000 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.64, - "output": 1.92 + "input": 5, + "output": 15, + "cache_read": 5 }, "type": "chat" }, { - "id": "command-r-08-2024", - "name": "command-r-08-2024", - "display_name": "command-r-08-2024", + "id": "gpt-4o-mini-2024-07-18", + "name": "gpt-4o-mini-2024-07-18", + "display_name": "gpt-4o-mini-2024-07-18", "modalities": { "input": [ - "text" + "text", + "image" ] }, "limit": { @@ -71260,41 +80773,44 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.8 + "input": 0.15, + "output": 0.6, + "cache_read": 0.075 }, "type": "chat" }, { - "id": "command-r-plus", - "name": "command-r-plus", - "display_name": "command-r-plus", + "id": "gpt-oss-20b", + "name": "gpt-oss-20b", + "display_name": "gpt-oss-20b", "modalities": { "input": [ "text" ] }, "limit": { - "context": 8192, - "output": 8192 + "context": 128000, + "output": 128000 }, - "tool_call": false, + "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "cost": { - "input": 3.84, - "output": 19.2 + "input": 0.11, + "output": 0.55 }, "type": "chat" }, { - "id": "command-r-plus-08-2024", - "name": "command-r-plus-08-2024", - "display_name": "command-r-plus-08-2024", + "id": "grok-2-vision-1212", + "name": "grok-2-vision-1212", + "display_name": "grok-2-vision-1212", "modalities": { "input": [ - "text" + "text", + "image" ] }, "limit": { @@ -71306,15 +80822,15 @@ "supported": false }, "cost": { - "input": 2.8, - "output": 11.2 + "input": 1.8, + "output": 9 }, "type": "chat" }, { - "id": "dall-e-2", - "name": "dall-e-2", - "display_name": "dall-e-2", + "id": "grok-vision-beta", + "name": "grok-vision-beta", + "display_name": "grok-vision-beta", "modalities": { "input": [ "text", @@ -71330,15 +80846,15 @@ "supported": false }, "cost": { - "input": 16, - "output": 16 + "input": 5.6, + "output": 16.8 }, - "type": "imageGeneration" + "type": "chat" }, { - "id": "davinci", - "name": "davinci", - "display_name": "davinci", + "id": "groq-llama-3.1-8b-instant", + "name": "groq-llama-3.1-8b-instant", + "display_name": "groq-llama-3.1-8b-instant", "limit": { "context": 8192, "output": 8192 @@ -71348,15 +80864,15 @@ "supported": false }, "cost": { - "input": 20, - "output": 20 + "input": 0.055, + "output": 0.088 }, "type": "chat" }, { - "id": "davinci-002", - "name": "davinci-002", - "display_name": "davinci-002", + "id": "groq-llama-3.3-70b-versatile", + "name": "groq-llama-3.3-70b-versatile", + "display_name": "groq-llama-3.3-70b-versatile", "limit": { "context": 8192, "output": 8192 @@ -71366,15 +80882,15 @@ "supported": false }, "cost": { - "input": 2, - "output": 2 + "input": 0.649, + "output": 0.869011 }, "type": "chat" }, { - "id": "deepinfra-llama-3.1-8b-instant", - "name": "deepinfra-llama-3.1-8b-instant", - "display_name": "deepinfra-llama-3.1-8b-instant", + "id": "groq-llama-4-maverick-17b-128e-instruct", + "name": "groq-llama-4-maverick-17b-128e-instruct", + "display_name": "groq-llama-4-maverick-17b-128e-instruct", "limit": { "context": 8192, "output": 8192 @@ -71384,15 +80900,15 @@ "supported": false }, "cost": { - "input": 0.033, - "output": 0.054978 + "input": 0.22, + "output": 0.66 }, "type": "chat" }, { - "id": "deepinfra-llama-3.3-70b-instant-turbo", - "name": "deepinfra-llama-3.3-70b-instant-turbo", - "display_name": "deepinfra-llama-3.3-70b-instant-turbo", + "id": "groq-llama-4-scout-17b-16e-instruct", + "name": "groq-llama-4-scout-17b-16e-instruct", + "display_name": "groq-llama-4-scout-17b-16e-instruct", "limit": { "context": 8192, "output": 8192 @@ -71402,15 +80918,21 @@ "supported": false }, "cost": { - "input": 0.11, - "output": 0.352 + "input": 0.122, + "output": 0.366 }, "type": "chat" }, { - "id": "deepinfra-llama-4-maverick-17b-128e-instruct", - "name": "deepinfra-llama-4-maverick-17b-128e-instruct", - "display_name": "deepinfra-llama-4-maverick-17b-128e-instruct", + "id": "imagen-4.0-generate-preview-05-20", + "name": "imagen-4.0-generate-preview-05-20", + "display_name": "imagen-4.0-generate-preview-05-20", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -71420,15 +80942,21 @@ "supported": false }, "cost": { - "input": 1.65, - "output": 6.6 + "input": 2, + "output": 2, + "cache_read": 0 }, - "type": "chat" + "type": "imageGeneration" }, { - "id": "deepinfra-llama-4-scout-17b-16e-instruct", - "name": "deepinfra-llama-4-scout-17b-16e-instruct", - "display_name": "deepinfra-llama-4-scout-17b-16e-instruct", + "id": "jina-embeddings-v2-base-code", + "name": "jina-embeddings-v2-base-code", + "display_name": "jina-embeddings-v2-base-code", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -71438,16 +80966,15 @@ "supported": false }, "cost": { - "input": 0.088, - "output": 0.33, - "cache_read": 0 + "input": 0.05, + "output": 0.05 }, - "type": "chat" + "type": "embedding" }, { - "id": "deepseek-ai/deepseek-llm-67b-chat", - "name": "deepseek-ai/deepseek-llm-67b-chat", - "display_name": "deepseek-ai/deepseek-llm-67b-chat", + "id": "learnlm-1.5-pro-experimental", + "name": "learnlm-1.5-pro-experimental", + "display_name": "learnlm-1.5-pro-experimental", "limit": { "context": 8192, "output": 8192 @@ -71457,15 +80984,15 @@ "supported": false }, "cost": { - "input": 0.16, - "output": 0.16 + "input": 1.25, + "output": 5 }, "type": "chat" }, { - "id": "deepseek-ai/deepseek-vl2", - "name": "deepseek-ai/deepseek-vl2", - "display_name": "deepseek-ai/deepseek-vl2", + "id": "llama-3.1-405b-instruct", + "name": "llama-3.1-405b-instruct", + "display_name": "llama-3.1-405b-instruct", "limit": { "context": 8192, "output": 8192 @@ -71475,15 +81002,15 @@ "supported": false }, "cost": { - "input": 0.16, - "output": 0.16 + "input": 4, + "output": 4 }, "type": "chat" }, { - "id": "deepseek-v3", - "name": "deepseek-v3", - "display_name": "deepseek-v3", + "id": "llama-3.1-405b-reasoning", + "name": "llama-3.1-405b-reasoning", + "display_name": "llama-3.1-405b-reasoning", "limit": { "context": 8192, "output": 8192 @@ -71493,21 +81020,15 @@ "supported": false }, "cost": { - "input": 0.272, - "output": 1.088, - "cache_read": 0 + "input": 4, + "output": 4 }, "type": "chat" }, { - "id": "distil-whisper-large-v3-en", - "name": "distil-whisper-large-v3-en", - "display_name": "distil-whisper-large-v3-en", - "modalities": { - "input": [ - "audio" - ] - }, + "id": "llama-3.1-70b-versatile", + "name": "llama-3.1-70b-versatile", + "display_name": "llama-3.1-70b-versatile", "limit": { "context": 8192, "output": 8192 @@ -71517,15 +81038,15 @@ "supported": false }, "cost": { - "input": 5.556, - "output": 5.556 + "input": 0.6, + "output": 0.6 }, "type": "chat" }, { - "id": "doubao-1-5-thinking-vision-pro-250428", - "name": "doubao-1-5-thinking-vision-pro-250428", - "display_name": "doubao-1-5-thinking-vision-pro-250428", + "id": "llama-3.1-8b-instant", + "name": "llama-3.1-8b-instant", + "display_name": "llama-3.1-8b-instant", "limit": { "context": 8192, "output": 8192 @@ -71535,35 +81056,33 @@ "supported": false }, "cost": { - "input": 2, - "output": 2, - "cache_read": 2 + "input": 0.3, + "output": 0.6 }, "type": "chat" }, { - "id": "doubao-seed-1-8-251215", - "name": "doubao-seed-1-8-251215", - "display_name": "doubao-seed-1-8-251215", + "id": "llama-3.1-sonar-small-128k-online", + "name": "llama-3.1-sonar-small-128k-online", + "display_name": "llama-3.1-sonar-small-128k-online", "limit": { - "context": 256000, - "output": 256000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, - "cost": { - "input": 0.10959, - "output": 0.273975, - "cache_read": 0.021918 + "cost": { + "input": 0.3, + "output": 0.3 }, "type": "chat" }, { - "id": "gemini-2.0-flash-001", - "name": "gemini-2.0-flash-001", - "display_name": "gemini-2.0-flash-001", + "id": "llama-3.2-11b-vision-preview", + "name": "llama-3.2-11b-vision-preview", + "display_name": "llama-3.2-11b-vision-preview", "limit": { "context": 8192, "output": 8192 @@ -71573,16 +81092,15 @@ "supported": false }, "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.25 + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "gemini-2.0-flash-exp-image-generation", - "name": "gemini-2.0-flash-exp-image-generation", - "display_name": "gemini-2.0-flash-exp-image-generation", + "id": "llama-3.2-1b-preview", + "name": "llama-3.2-1b-preview", + "display_name": "llama-3.2-1b-preview", "limit": { "context": 8192, "output": 8192 @@ -71592,23 +81110,15 @@ "supported": false }, "cost": { - "input": 0.1, - "output": 0.4 + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "gemini-2.0-flash-lite", - "name": "gemini-2.0-flash-lite", - "display_name": "gemini-2.0-flash-lite", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "llama-3.2-3b-preview", + "name": "llama-3.2-3b-preview", + "display_name": "llama-3.2-3b-preview", "limit": { "context": 8192, "output": 8192 @@ -71618,16 +81128,15 @@ "supported": false }, "cost": { - "input": 0.076, - "output": 0.304, - "cache_read": 0.076 + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "gemini-2.0-flash-lite-001", - "name": "gemini-2.0-flash-lite-001", - "display_name": "gemini-2.0-flash-lite-001", + "id": "llama-3.2-90b-vision-preview", + "name": "llama-3.2-90b-vision-preview", + "display_name": "llama-3.2-90b-vision-preview", "limit": { "context": 8192, "output": 8192 @@ -71637,48 +81146,33 @@ "supported": false }, "cost": { - "input": 0.076, - "output": 0.304, - "cache_read": 0.076 + "input": 2.4, + "output": 2.4 }, "type": "chat" }, { - "id": "gemini-2.5-pro-exp-03-25", - "name": "gemini-2.5-pro-exp-03-25", - "display_name": "gemini-2.5-pro-exp-03-25", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "llama2-70b-4096", + "name": "llama2-70b-4096", + "display_name": "llama2-70b-4096", "limit": { "context": 8192, "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 1.25, - "output": 5, - "cache_read": 0.31 + "input": 0.5, + "output": 0.5 }, "type": "chat" }, { - "id": "gemini-embedding-exp-03-07", - "name": "gemini-embedding-exp-03-07", - "display_name": "gemini-embedding-exp-03-07", - "modalities": { - "input": [ - "text" - ] - }, + "id": "llama2-70b-40960", + "name": "llama2-70b-40960", + "display_name": "llama2-70b-40960", "limit": { "context": 8192, "output": 8192 @@ -71688,15 +81182,15 @@ "supported": false }, "cost": { - "input": 0.02, - "output": 0.02 + "input": 0.5, + "output": 0.5 }, - "type": "embedding" + "type": "chat" }, { - "id": "gemini-exp-1114", - "name": "gemini-exp-1114", - "display_name": "gemini-exp-1114", + "id": "llama2-7b-2048", + "name": "llama2-7b-2048", + "display_name": "llama2-7b-2048", "limit": { "context": 8192, "output": 8192 @@ -71706,15 +81200,15 @@ "supported": false }, "cost": { - "input": 1.25, - "output": 5 + "input": 0.1, + "output": 0.1 }, "type": "chat" }, { - "id": "gemini-exp-1121", - "name": "gemini-exp-1121", - "display_name": "gemini-exp-1121", + "id": "llama3-70b-8192", + "name": "llama3-70b-8192", + "display_name": "llama3-70b-8192", "limit": { "context": 8192, "output": 8192 @@ -71724,15 +81218,15 @@ "supported": false }, "cost": { - "input": 1.25, - "output": 5 + "input": 0.7, + "output": 0.937288 }, "type": "chat" }, { - "id": "gemini-pro", - "name": "gemini-pro", - "display_name": "gemini-pro", + "id": "llama3-8b-8192", + "name": "llama3-8b-8192", + "display_name": "llama3-8b-8192", "limit": { "context": 8192, "output": 8192 @@ -71742,15 +81236,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.6 + "input": 0.06, + "output": 0.12 }, "type": "chat" }, { - "id": "gemini-pro-vision", - "name": "gemini-pro-vision", - "display_name": "gemini-pro-vision", + "id": "llama3-groq-70b-8192-tool-use-preview", + "name": "llama3-groq-70b-8192-tool-use-preview", + "display_name": "llama3-groq-70b-8192-tool-use-preview", "limit": { "context": 8192, "output": 8192 @@ -71760,15 +81254,15 @@ "supported": false }, "cost": { - "input": 1, - "output": 1 + "input": 0.00089, + "output": 0.00089 }, "type": "chat" }, { - "id": "gemma-7b-it", - "name": "gemma-7b-it", - "display_name": "gemma-7b-it", + "id": "llama3-groq-8b-8192-tool-use-preview", + "name": "llama3-groq-8b-8192-tool-use-preview", + "display_name": "llama3-groq-8b-8192-tool-use-preview", "limit": { "context": 8192, "output": 8192 @@ -71778,15 +81272,15 @@ "supported": false }, "cost": { - "input": 0.1, - "output": 0.1 + "input": 0.00019, + "output": 0.00019 }, "type": "chat" }, { - "id": "gemma2-9b-it", - "name": "gemma2-9b-it", - "display_name": "gemma2-9b-it", + "id": "meta-llama/Llama-3.2-90B-Vision-Instruct", + "name": "meta-llama/Llama-3.2-90B-Vision-Instruct", + "display_name": "meta-llama/Llama-3.2-90B-Vision-Instruct", "limit": { "context": 8192, "output": 8192 @@ -71796,15 +81290,15 @@ "supported": false }, "cost": { - "input": 0.4, - "output": 0.4 + "input": 0.5, + "output": 0.5 }, "type": "chat" }, { - "id": "glm-3-turbo", - "name": "glm-3-turbo", - "display_name": "glm-3-turbo", + "id": "meta-llama/llama-3.1-405b-instruct:free", + "name": "meta-llama/llama-3.1-405b-instruct:free", + "display_name": "meta-llama/llama-3.1-405b-instruct:free", "limit": { "context": 8192, "output": 8192 @@ -71814,15 +81308,15 @@ "supported": false }, "cost": { - "input": 0.71, - "output": 0.71 + "input": 0.02, + "output": 0.02 }, "type": "chat" }, { - "id": "glm-4", - "name": "glm-4", - "display_name": "glm-4", + "id": "meta-llama/llama-3.1-70b-instruct:free", + "name": "meta-llama/llama-3.1-70b-instruct:free", + "display_name": "meta-llama/llama-3.1-70b-instruct:free", "limit": { "context": 8192, "output": 8192 @@ -71832,15 +81326,15 @@ "supported": false }, "cost": { - "input": 14.2, - "output": 14.2 + "input": 0.02, + "output": 0.02 }, "type": "chat" }, { - "id": "glm-4-flash", - "name": "glm-4-flash", - "display_name": "glm-4-flash", + "id": "meta-llama/llama-3.1-8b-instruct:free", + "name": "meta-llama/llama-3.1-8b-instruct:free", + "display_name": "meta-llama/llama-3.1-8b-instruct:free", "limit": { "context": 8192, "output": 8192 @@ -71850,15 +81344,15 @@ "supported": false }, "cost": { - "input": 0.1, - "output": 0.1 + "input": 0.02, + "output": 0.02 }, "type": "chat" }, { - "id": "glm-4-plus", - "name": "glm-4-plus", - "display_name": "glm-4-plus", + "id": "meta-llama/llama-3.2-11b-vision-instruct:free", + "name": "meta-llama/llama-3.2-11b-vision-instruct:free", + "display_name": "meta-llama/llama-3.2-11b-vision-instruct:free", "limit": { "context": 8192, "output": 8192 @@ -71868,20 +81362,15 @@ "supported": false }, "cost": { - "input": 8, - "output": 8 + "input": 0.02, + "output": 0.02 }, "type": "chat" }, { - "id": "glm-4.5-airx", - "name": "glm-4.5-airx", - "display_name": "glm-4.5-airx", - "modalities": { - "input": [ - "text" - ] - }, + "id": "meta-llama/llama-3.2-3b-instruct:free", + "name": "meta-llama/llama-3.2-3b-instruct:free", + "display_name": "meta-llama/llama-3.2-3b-instruct:free", "limit": { "context": 8192, "output": 8192 @@ -71891,16 +81380,15 @@ "supported": false }, "cost": { - "input": 1.1, - "output": 4.51, - "cache_read": 0.22 + "input": 0.02, + "output": 0.02 }, "type": "chat" }, { - "id": "glm-4v", - "name": "glm-4v", - "display_name": "glm-4v", + "id": "meta/llama-3.1-405b-instruct", + "name": "meta/llama-3.1-405b-instruct", + "display_name": "meta/llama-3.1-405b-instruct", "limit": { "context": 8192, "output": 8192 @@ -71910,15 +81398,15 @@ "supported": false }, "cost": { - "input": 14.2, - "output": 14.2 + "input": 5, + "output": 5 }, "type": "chat" }, { - "id": "glm-4v-plus", - "name": "glm-4v-plus", - "display_name": "glm-4v-plus", + "id": "meta/llama3-8B-chat", + "name": "meta/llama3-8B-chat", + "display_name": "meta/llama3-8B-chat", "limit": { "context": 8192, "output": 8192 @@ -71928,15 +81416,15 @@ "supported": false }, "cost": { - "input": 2, - "output": 2 + "input": 0.3, + "output": 0.3 }, "type": "chat" }, { - "id": "google/gemini-exp-1114", - "name": "google/gemini-exp-1114", - "display_name": "google/gemini-exp-1114", + "id": "mistralai/mistral-7b-instruct:free", + "name": "mistralai/mistral-7b-instruct:free", + "display_name": "mistralai/mistral-7b-instruct:free", "limit": { "context": 8192, "output": 8192 @@ -71946,15 +81434,15 @@ "supported": false }, "cost": { - "input": 1.25, - "output": 5 + "input": 0.002, + "output": 0.002 }, "type": "chat" }, { - "id": "google/gemma-2-27b-it", - "name": "google/gemma-2-27b-it", - "display_name": "google/gemma-2-27b-it", + "id": "moonshot-v1-128k", + "name": "moonshot-v1-128k", + "display_name": "moonshot-v1-128k", "limit": { "context": 8192, "output": 8192 @@ -71964,15 +81452,15 @@ "supported": false }, "cost": { - "input": 0.8, - "output": 0.8 + "input": 10, + "output": 10 }, "type": "chat" }, { - "id": "google/gemma-2-9b-it:free", - "name": "google/gemma-2-9b-it:free", - "display_name": "google/gemma-2-9b-it:free", + "id": "moonshot-v1-128k-vision-preview", + "name": "moonshot-v1-128k-vision-preview", + "display_name": "moonshot-v1-128k-vision-preview", "limit": { "context": 8192, "output": 8192 @@ -71982,15 +81470,15 @@ "supported": false }, "cost": { - "input": 0.02, - "output": 0.02 + "input": 10, + "output": 10 }, "type": "chat" }, { - "id": "gpt-3.5-turbo", - "name": "gpt-3.5-turbo", - "display_name": "gpt-3.5-turbo", + "id": "moonshot-v1-32k", + "name": "moonshot-v1-32k", + "display_name": "moonshot-v1-32k", "limit": { "context": 8192, "output": 8192 @@ -72000,15 +81488,15 @@ "supported": false }, "cost": { - "input": 0.5, - "output": 1.5 + "input": 4, + "output": 4 }, "type": "chat" }, { - "id": "gpt-3.5-turbo-0125", - "name": "gpt-3.5-turbo-0125", - "display_name": "gpt-3.5-turbo-0125", + "id": "moonshot-v1-32k-vision-preview", + "name": "moonshot-v1-32k-vision-preview", + "display_name": "moonshot-v1-32k-vision-preview", "limit": { "context": 8192, "output": 8192 @@ -72018,15 +81506,15 @@ "supported": false }, "cost": { - "input": 0.5, - "output": 1.5 + "input": 4, + "output": 4 }, "type": "chat" }, { - "id": "gpt-3.5-turbo-0301", - "name": "gpt-3.5-turbo-0301", - "display_name": "gpt-3.5-turbo-0301", + "id": "moonshot-v1-8k", + "name": "moonshot-v1-8k", + "display_name": "moonshot-v1-8k", "limit": { "context": 8192, "output": 8192 @@ -72036,15 +81524,15 @@ "supported": false }, "cost": { - "input": 1.5, - "output": 1.5 + "input": 2, + "output": 2 }, "type": "chat" }, { - "id": "gpt-3.5-turbo-0613", - "name": "gpt-3.5-turbo-0613", - "display_name": "gpt-3.5-turbo-0613", + "id": "moonshot-v1-8k-vision-preview", + "name": "moonshot-v1-8k-vision-preview", + "display_name": "moonshot-v1-8k-vision-preview", "limit": { "context": 8192, "output": 8192 @@ -72054,15 +81542,15 @@ "supported": false }, "cost": { - "input": 1.5, + "input": 2, "output": 2 }, "type": "chat" }, { - "id": "gpt-3.5-turbo-1106", - "name": "gpt-3.5-turbo-1106", - "display_name": "gpt-3.5-turbo-1106", + "id": "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1", + "name": "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1", + "display_name": "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1", "limit": { "context": 8192, "output": 8192 @@ -72072,15 +81560,16 @@ "supported": false }, "cost": { - "input": 1, - "output": 2 + "input": 0.5, + "output": 0.5, + "cache_read": 0 }, "type": "chat" }, { - "id": "gpt-3.5-turbo-16k", - "name": "gpt-3.5-turbo-16k", - "display_name": "gpt-3.5-turbo-16k", + "id": "Baichuan3-Turbo", + "name": "Baichuan3-Turbo", + "display_name": "Baichuan3-Turbo", "limit": { "context": 8192, "output": 8192 @@ -72090,15 +81579,15 @@ "supported": false }, "cost": { - "input": 3, - "output": 4 + "input": 1.9, + "output": 1.9 }, "type": "chat" }, { - "id": "gpt-3.5-turbo-16k-0613", - "name": "gpt-3.5-turbo-16k-0613", - "display_name": "gpt-3.5-turbo-16k-0613", + "id": "Baichuan3-Turbo-128k", + "name": "Baichuan3-Turbo-128k", + "display_name": "Baichuan3-Turbo-128k", "limit": { "context": 8192, "output": 8192 @@ -72108,15 +81597,15 @@ "supported": false }, "cost": { - "input": 3, - "output": 4 + "input": 3.8, + "output": 3.8 }, "type": "chat" }, { - "id": "gpt-3.5-turbo-instruct", - "name": "gpt-3.5-turbo-instruct", - "display_name": "gpt-3.5-turbo-instruct", + "id": "Baichuan4", + "name": "Baichuan4", + "display_name": "Baichuan4", "limit": { "context": 8192, "output": 8192 @@ -72126,15 +81615,15 @@ "supported": false }, "cost": { - "input": 1.5, - "output": 2 + "input": 16, + "output": 16 }, "type": "chat" }, { - "id": "gpt-4", - "name": "gpt-4", - "display_name": "gpt-4", + "id": "Baichuan4-Air", + "name": "Baichuan4-Air", + "display_name": "Baichuan4-Air", "limit": { "context": 8192, "output": 8192 @@ -72144,15 +81633,15 @@ "supported": false }, "cost": { - "input": 30, - "output": 60 + "input": 0.16, + "output": 0.16 }, "type": "chat" }, { - "id": "gpt-4-0125-preview", - "name": "gpt-4-0125-preview", - "display_name": "gpt-4-0125-preview", + "id": "Baichuan4-Turbo", + "name": "Baichuan4-Turbo", + "display_name": "Baichuan4-Turbo", "limit": { "context": 8192, "output": 8192 @@ -72162,15 +81651,15 @@ "supported": false }, "cost": { - "input": 10, - "output": 30 + "input": 2.4, + "output": 2.4 }, "type": "chat" }, { - "id": "gpt-4-0314", - "name": "gpt-4-0314", - "display_name": "gpt-4-0314", + "id": "DeepSeek-v3", + "name": "DeepSeek-v3", + "display_name": "DeepSeek-v3", "limit": { "context": 8192, "output": 8192 @@ -72180,15 +81669,15 @@ "supported": false }, "cost": { - "input": 30, - "output": 60 + "input": 0.272, + "output": 1.088 }, "type": "chat" }, { - "id": "gpt-4-0613", - "name": "gpt-4-0613", - "display_name": "gpt-4-0613", + "id": "Doubao-1.5-lite-32k", + "name": "Doubao-1.5-lite-32k", + "display_name": "Doubao-1.5-lite-32k", "limit": { "context": 8192, "output": 8192 @@ -72198,15 +81687,16 @@ "supported": false }, "cost": { - "input": 30, - "output": 60 + "input": 0.05, + "output": 0.1, + "cache_read": 0.01 }, "type": "chat" }, { - "id": "gpt-4-1106-preview", - "name": "gpt-4-1106-preview", - "display_name": "gpt-4-1106-preview", + "id": "Doubao-1.5-pro-256k", + "name": "Doubao-1.5-pro-256k", + "display_name": "Doubao-1.5-pro-256k", "limit": { "context": 8192, "output": 8192 @@ -72216,15 +81706,16 @@ "supported": false }, "cost": { - "input": 10, - "output": 30 + "input": 0.8, + "output": 1.44, + "cache_read": 0.8 }, "type": "chat" }, { - "id": "gpt-4-32k-0314", - "name": "gpt-4-32k-0314", - "display_name": "gpt-4-32k-0314", + "id": "Doubao-1.5-pro-32k", + "name": "Doubao-1.5-pro-32k", + "display_name": "Doubao-1.5-pro-32k", "limit": { "context": 8192, "output": 8192 @@ -72234,15 +81725,16 @@ "supported": false }, "cost": { - "input": 60, - "output": 120 + "input": 0.134, + "output": 0.335, + "cache_read": 0.0268 }, "type": "chat" }, { - "id": "gpt-4-32k-0613", - "name": "gpt-4-32k-0613", - "display_name": "gpt-4-32k-0613", + "id": "Doubao-1.5-vision-pro-32k", + "name": "Doubao-1.5-vision-pro-32k", + "display_name": "Doubao-1.5-vision-pro-32k", "limit": { "context": 8192, "output": 8192 @@ -72252,15 +81744,15 @@ "supported": false }, "cost": { - "input": 60, - "output": 120 + "input": 0.46, + "output": 1.38 }, "type": "chat" }, { - "id": "gpt-4-turbo", - "name": "gpt-4-turbo", - "display_name": "gpt-4-turbo", + "id": "Doubao-lite-128k", + "name": "Doubao-lite-128k", + "display_name": "Doubao-lite-128k", "limit": { "context": 8192, "output": 8192 @@ -72270,15 +81762,16 @@ "supported": false }, "cost": { - "input": 10, - "output": 30 + "input": 0.14, + "output": 0.28, + "cache_read": 0.14 }, "type": "chat" }, { - "id": "gpt-4-turbo-2024-04-09", - "name": "gpt-4-turbo-2024-04-09", - "display_name": "gpt-4-turbo-2024-04-09", + "id": "Doubao-lite-32k", + "name": "Doubao-lite-32k", + "display_name": "Doubao-lite-32k", "limit": { "context": 8192, "output": 8192 @@ -72288,15 +81781,16 @@ "supported": false }, "cost": { - "input": 10, - "output": 30 + "input": 0.06, + "output": 0.12, + "cache_read": 0.012 }, "type": "chat" }, { - "id": "gpt-4-turbo-preview", - "name": "gpt-4-turbo-preview", - "display_name": "gpt-4-turbo-preview", + "id": "Doubao-lite-4k", + "name": "Doubao-lite-4k", + "display_name": "Doubao-lite-4k", "limit": { "context": 8192, "output": 8192 @@ -72306,15 +81800,16 @@ "supported": false }, "cost": { - "input": 10, - "output": 30 + "input": 0.06, + "output": 0.12, + "cache_read": 0.06 }, "type": "chat" }, { - "id": "gpt-4-vision-preview", - "name": "gpt-4-vision-preview", - "display_name": "gpt-4-vision-preview", + "id": "Doubao-pro-128k", + "name": "Doubao-pro-128k", + "display_name": "Doubao-pro-128k", "limit": { "context": 8192, "output": 8192 @@ -72324,40 +81819,34 @@ "supported": false }, "cost": { - "input": 10, - "output": 30 + "input": 0.8, + "output": 1.44 }, "type": "chat" }, { - "id": "gpt-4o-2024-05-13", - "name": "gpt-4o-2024-05-13", - "display_name": "gpt-4o-2024-05-13", + "id": "Doubao-pro-256k", + "name": "Doubao-pro-256k", + "display_name": "Doubao-pro-256k", "limit": { - "context": 128000, - "output": 128000 + "context": 8192, + "output": 8192 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 5, - "output": 15, - "cache_read": 5 + "input": 0.8, + "output": 1.44, + "cache_read": 0.8 }, "type": "chat" }, { - "id": "gpt-4o-mini-2024-07-18", - "name": "gpt-4o-mini-2024-07-18", - "display_name": "gpt-4o-mini-2024-07-18", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "Doubao-pro-32k", + "name": "Doubao-pro-32k", + "display_name": "Doubao-pro-32k", "limit": { "context": 8192, "output": 8192 @@ -72367,46 +81856,34 @@ "supported": false }, "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.075 + "input": 0.14, + "output": 0.35, + "cache_read": 0.028 }, "type": "chat" }, { - "id": "gpt-oss-20b", - "name": "gpt-oss-20b", - "display_name": "gpt-oss-20b", - "modalities": { - "input": [ - "text" - ] - }, + "id": "Doubao-pro-4k", + "name": "Doubao-pro-4k", + "display_name": "Doubao-pro-4k", "limit": { - "context": 128000, - "output": 128000 + "context": 8192, + "output": 8192 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, "cost": { - "input": 0.11, - "output": 0.55 + "input": 0.14, + "output": 0.35 }, "type": "chat" }, { - "id": "grok-2-vision-1212", - "name": "grok-2-vision-1212", - "display_name": "grok-2-vision-1212", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "GPT-OSS-20B", + "name": "GPT-OSS-20B", + "display_name": "GPT-OSS-20B", "limit": { "context": 8192, "output": 8192 @@ -72416,21 +81893,15 @@ "supported": false }, "cost": { - "input": 1.8, - "output": 9 + "input": 0.11, + "output": 0.55 }, "type": "chat" }, { - "id": "grok-vision-beta", - "name": "grok-vision-beta", - "display_name": "grok-vision-beta", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "Gryphe/MythoMax-L2-13b", + "name": "Gryphe/MythoMax-L2-13b", + "display_name": "Gryphe/MythoMax-L2-13b", "limit": { "context": 8192, "output": 8192 @@ -72440,15 +81911,20 @@ "supported": false }, "cost": { - "input": 5.6, - "output": 16.8 + "input": 0.4, + "output": 0.4 }, "type": "chat" }, { - "id": "groq-llama-3.1-8b-instant", - "name": "groq-llama-3.1-8b-instant", - "display_name": "groq-llama-3.1-8b-instant", + "id": "MiniMax-Text-01", + "name": "MiniMax-Text-01", + "display_name": "MiniMax-Text-01", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -72458,15 +81934,15 @@ "supported": false }, "cost": { - "input": 0.055, - "output": 0.088 + "input": 0.14, + "output": 1.12 }, "type": "chat" }, { - "id": "groq-llama-3.3-70b-versatile", - "name": "groq-llama-3.3-70b-versatile", - "display_name": "groq-llama-3.3-70b-versatile", + "id": "Mistral-large-2407", + "name": "Mistral-large-2407", + "display_name": "Mistral-large-2407", "limit": { "context": 8192, "output": 8192 @@ -72476,15 +81952,15 @@ "supported": false }, "cost": { - "input": 0.649, - "output": 0.869011 + "input": 3, + "output": 9 }, "type": "chat" }, { - "id": "groq-llama-4-maverick-17b-128e-instruct", - "name": "groq-llama-4-maverick-17b-128e-instruct", - "display_name": "groq-llama-4-maverick-17b-128e-instruct", + "id": "Qwen/Qwen2-1.5B-Instruct", + "name": "Qwen/Qwen2-1.5B-Instruct", + "display_name": "Qwen/Qwen2-1.5B-Instruct", "limit": { "context": 8192, "output": 8192 @@ -72494,15 +81970,15 @@ "supported": false }, "cost": { - "input": 0.22, - "output": 0.66 + "input": 0.2, + "output": 0.2 }, "type": "chat" }, { - "id": "groq-llama-4-scout-17b-16e-instruct", - "name": "groq-llama-4-scout-17b-16e-instruct", - "display_name": "groq-llama-4-scout-17b-16e-instruct", + "id": "Qwen/Qwen2-57B-A14B-Instruct", + "name": "Qwen/Qwen2-57B-A14B-Instruct", + "display_name": "Qwen/Qwen2-57B-A14B-Instruct", "limit": { "context": 8192, "output": 8192 @@ -72512,21 +81988,15 @@ "supported": false }, "cost": { - "input": 0.122, - "output": 0.366 + "input": 0.24, + "output": 0.24 }, "type": "chat" }, { - "id": "imagen-4.0-generate-preview-05-20", - "name": "imagen-4.0-generate-preview-05-20", - "display_name": "imagen-4.0-generate-preview-05-20", - "modalities": { - "input": [ - "text", - "image" - ] - }, + "id": "Qwen/Qwen2-72B-Instruct", + "name": "Qwen/Qwen2-72B-Instruct", + "display_name": "Qwen/Qwen2-72B-Instruct", "limit": { "context": 8192, "output": 8192 @@ -72536,21 +82006,15 @@ "supported": false }, "cost": { - "input": 2, - "output": 2, - "cache_read": 0 - }, - "type": "imageGeneration" - }, - { - "id": "jina-embeddings-v2-base-code", - "name": "jina-embeddings-v2-base-code", - "display_name": "jina-embeddings-v2-base-code", - "modalities": { - "input": [ - "text" - ] + "input": 0.8, + "output": 0.8 }, + "type": "chat" + }, + { + "id": "Qwen/Qwen2-7B-Instruct", + "name": "Qwen/Qwen2-7B-Instruct", + "display_name": "Qwen/Qwen2-7B-Instruct", "limit": { "context": 8192, "output": 8192 @@ -72560,15 +82024,15 @@ "supported": false }, "cost": { - "input": 0.05, - "output": 0.05 + "input": 0.08, + "output": 0.08 }, - "type": "embedding" + "type": "chat" }, { - "id": "learnlm-1.5-pro-experimental", - "name": "learnlm-1.5-pro-experimental", - "display_name": "learnlm-1.5-pro-experimental", + "id": "Qwen/Qwen2.5-32B-Instruct", + "name": "Qwen/Qwen2.5-32B-Instruct", + "display_name": "Qwen/Qwen2.5-32B-Instruct", "limit": { "context": 8192, "output": 8192 @@ -72578,15 +82042,15 @@ "supported": false }, "cost": { - "input": 1.25, - "output": 5 + "input": 0.6, + "output": 0.6 }, "type": "chat" }, { - "id": "llama-3.1-405b-instruct", - "name": "llama-3.1-405b-instruct", - "display_name": "llama-3.1-405b-instruct", + "id": "Qwen/Qwen2.5-72B-Instruct", + "name": "Qwen/Qwen2.5-72B-Instruct", + "display_name": "Qwen/Qwen2.5-72B-Instruct", "limit": { "context": 8192, "output": 8192 @@ -72596,15 +82060,15 @@ "supported": false }, "cost": { - "input": 4, - "output": 4 + "input": 0.8, + "output": 0.8 }, "type": "chat" }, { - "id": "llama-3.1-405b-reasoning", - "name": "llama-3.1-405b-reasoning", - "display_name": "llama-3.1-405b-reasoning", + "id": "Qwen/Qwen2.5-72B-Instruct-128K", + "name": "Qwen/Qwen2.5-72B-Instruct-128K", + "display_name": "Qwen/Qwen2.5-72B-Instruct-128K", "limit": { "context": 8192, "output": 8192 @@ -72614,15 +82078,15 @@ "supported": false }, "cost": { - "input": 4, - "output": 4 + "input": 0.8, + "output": 0.8 }, "type": "chat" }, { - "id": "llama-3.1-70b-versatile", - "name": "llama-3.1-70b-versatile", - "display_name": "llama-3.1-70b-versatile", + "id": "Qwen/Qwen2.5-7B-Instruct", + "name": "Qwen/Qwen2.5-7B-Instruct", + "display_name": "Qwen/Qwen2.5-7B-Instruct", "limit": { "context": 8192, "output": 8192 @@ -72632,15 +82096,15 @@ "supported": false }, "cost": { - "input": 0.6, - "output": 0.6 + "input": 0.4, + "output": 0.4 }, "type": "chat" }, { - "id": "llama-3.1-8b-instant", - "name": "llama-3.1-8b-instant", - "display_name": "llama-3.1-8b-instant", + "id": "Qwen/Qwen2.5-Coder-32B-Instruct", + "name": "Qwen/Qwen2.5-Coder-32B-Instruct", + "display_name": "Qwen/Qwen2.5-Coder-32B-Instruct", "limit": { "context": 8192, "output": 8192 @@ -72650,15 +82114,15 @@ "supported": false }, "cost": { - "input": 0.3, - "output": 0.6 + "input": 0.16, + "output": 0.16 }, "type": "chat" }, { - "id": "llama-3.1-sonar-small-128k-online", - "name": "llama-3.1-sonar-small-128k-online", - "display_name": "llama-3.1-sonar-small-128k-online", + "id": "Qwen3-235B-A22B-Thinking-2507", + "name": "Qwen3-235B-A22B-Thinking-2507", + "display_name": "Qwen3-235B-A22B-Thinking-2507", "limit": { "context": 8192, "output": 8192 @@ -72668,15 +82132,21 @@ "supported": false }, "cost": { - "input": 0.3, - "output": 0.3 + "input": 0.28, + "output": 2.8 }, "type": "chat" }, { - "id": "llama-3.2-11b-vision-preview", - "name": "llama-3.2-11b-vision-preview", - "display_name": "llama-3.2-11b-vision-preview", + "id": "Stable-Diffusion-3-5-Large", + "name": "Stable-Diffusion-3-5-Large", + "display_name": "Stable-Diffusion-3-5-Large", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -72686,15 +82156,16 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2 + "input": 4, + "output": 4, + "cache_read": 0 }, - "type": "chat" + "type": "imageGeneration" }, { - "id": "llama-3.2-1b-preview", - "name": "llama-3.2-1b-preview", - "display_name": "llama-3.2-1b-preview", + "id": "WizardLM/WizardCoder-Python-34B-V1.0", + "name": "WizardLM/WizardCoder-Python-34B-V1.0", + "display_name": "WizardLM/WizardCoder-Python-34B-V1.0", "limit": { "context": 8192, "output": 8192 @@ -72704,15 +82175,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2 + "input": 0.9, + "output": 0.9 }, "type": "chat" }, { - "id": "llama-3.2-3b-preview", - "name": "llama-3.2-3b-preview", - "display_name": "llama-3.2-3b-preview", + "id": "ahm-Phi-3-5-MoE-instruct", + "name": "ahm-Phi-3-5-MoE-instruct", + "display_name": "ahm-Phi-3-5-MoE-instruct", "limit": { "context": 8192, "output": 8192 @@ -72722,15 +82193,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2 + "input": 0.4, + "output": 1.6 }, "type": "chat" }, { - "id": "llama-3.2-90b-vision-preview", - "name": "llama-3.2-90b-vision-preview", - "display_name": "llama-3.2-90b-vision-preview", + "id": "ahm-Phi-3-5-mini-instruct", + "name": "ahm-Phi-3-5-mini-instruct", + "display_name": "ahm-Phi-3-5-mini-instruct", "limit": { "context": 8192, "output": 8192 @@ -72740,15 +82211,21 @@ "supported": false }, "cost": { - "input": 2.4, - "output": 2.4 + "input": 1, + "output": 3 }, "type": "chat" }, { - "id": "llama2-70b-4096", - "name": "llama2-70b-4096", - "display_name": "llama2-70b-4096", + "id": "ahm-Phi-3-5-vision-instruct", + "name": "ahm-Phi-3-5-vision-instruct", + "display_name": "ahm-Phi-3-5-vision-instruct", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -72758,15 +82235,15 @@ "supported": false }, "cost": { - "input": 0.5, - "output": 0.5 + "input": 0.4, + "output": 1.6 }, "type": "chat" }, { - "id": "llama2-70b-40960", - "name": "llama2-70b-40960", - "display_name": "llama2-70b-40960", + "id": "ahm-Phi-3-medium-128k", + "name": "ahm-Phi-3-medium-128k", + "display_name": "ahm-Phi-3-medium-128k", "limit": { "context": 8192, "output": 8192 @@ -72776,15 +82253,15 @@ "supported": false }, "cost": { - "input": 0.5, - "output": 0.5 + "input": 6, + "output": 18 }, "type": "chat" }, { - "id": "llama2-7b-2048", - "name": "llama2-7b-2048", - "display_name": "llama2-7b-2048", + "id": "ahm-Phi-3-medium-4k", + "name": "ahm-Phi-3-medium-4k", + "display_name": "ahm-Phi-3-medium-4k", "limit": { "context": 8192, "output": 8192 @@ -72794,15 +82271,15 @@ "supported": false }, "cost": { - "input": 0.1, - "output": 0.1 + "input": 1, + "output": 3 }, "type": "chat" }, { - "id": "llama3-70b-8192", - "name": "llama3-70b-8192", - "display_name": "llama3-70b-8192", + "id": "ahm-Phi-3-small-128k", + "name": "ahm-Phi-3-small-128k", + "display_name": "ahm-Phi-3-small-128k", "limit": { "context": 8192, "output": 8192 @@ -72812,15 +82289,15 @@ "supported": false }, "cost": { - "input": 0.7, - "output": 0.937288 + "input": 1, + "output": 3 }, "type": "chat" }, { - "id": "llama3-groq-70b-8192-tool-use-preview", - "name": "llama3-groq-70b-8192-tool-use-preview", - "display_name": "llama3-groq-70b-8192-tool-use-preview", + "id": "aihubmix-Codestral-2501", + "name": "aihubmix-Codestral-2501", + "display_name": "aihubmix-Codestral-2501", "limit": { "context": 8192, "output": 8192 @@ -72830,15 +82307,20 @@ "supported": false }, "cost": { - "input": 0.00089, - "output": 0.00089 + "input": 0.4, + "output": 1.2 }, "type": "chat" }, { - "id": "llama3-groq-8b-8192-tool-use-preview", - "name": "llama3-groq-8b-8192-tool-use-preview", - "display_name": "llama3-groq-8b-8192-tool-use-preview", + "id": "aihubmix-Cohere-command-r", + "name": "aihubmix-Cohere-command-r", + "display_name": "aihubmix-Cohere-command-r", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -72848,15 +82330,15 @@ "supported": false }, "cost": { - "input": 0.00019, - "output": 0.00019 + "input": 0.64, + "output": 1.92 }, "type": "chat" }, { - "id": "meta-llama/llama-3.1-405b-instruct:free", - "name": "meta-llama/llama-3.1-405b-instruct:free", - "display_name": "meta-llama/llama-3.1-405b-instruct:free", + "id": "aihubmix-Jamba-1-5-Large", + "name": "aihubmix-Jamba-1-5-Large", + "display_name": "aihubmix-Jamba-1-5-Large", "limit": { "context": 8192, "output": 8192 @@ -72866,15 +82348,15 @@ "supported": false }, "cost": { - "input": 0.02, - "output": 0.02 + "input": 2.2, + "output": 8.8 }, "type": "chat" }, { - "id": "meta-llama/llama-3.1-70b-instruct:free", - "name": "meta-llama/llama-3.1-70b-instruct:free", - "display_name": "meta-llama/llama-3.1-70b-instruct:free", + "id": "aihubmix-Llama-3-1-405B-Instruct", + "name": "aihubmix-Llama-3-1-405B-Instruct", + "display_name": "aihubmix-Llama-3-1-405B-Instruct", "limit": { "context": 8192, "output": 8192 @@ -72884,15 +82366,15 @@ "supported": false }, "cost": { - "input": 0.02, - "output": 0.02 + "input": 5, + "output": 15 }, "type": "chat" }, { - "id": "meta-llama/llama-3.1-8b-instruct:free", - "name": "meta-llama/llama-3.1-8b-instruct:free", - "display_name": "meta-llama/llama-3.1-8b-instruct:free", + "id": "aihubmix-Llama-3-1-70B-Instruct", + "name": "aihubmix-Llama-3-1-70B-Instruct", + "display_name": "aihubmix-Llama-3-1-70B-Instruct", "limit": { "context": 8192, "output": 8192 @@ -72902,15 +82384,15 @@ "supported": false }, "cost": { - "input": 0.02, - "output": 0.02 + "input": 0.6, + "output": 0.78 }, "type": "chat" }, { - "id": "meta-llama/llama-3.2-11b-vision-instruct:free", - "name": "meta-llama/llama-3.2-11b-vision-instruct:free", - "display_name": "meta-llama/llama-3.2-11b-vision-instruct:free", + "id": "aihubmix-Llama-3-1-8B-Instruct", + "name": "aihubmix-Llama-3-1-8B-Instruct", + "display_name": "aihubmix-Llama-3-1-8B-Instruct", "limit": { "context": 8192, "output": 8192 @@ -72920,15 +82402,15 @@ "supported": false }, "cost": { - "input": 0.02, - "output": 0.02 + "input": 0.3, + "output": 0.6 }, "type": "chat" }, { - "id": "meta-llama/llama-3.2-3b-instruct:free", - "name": "meta-llama/llama-3.2-3b-instruct:free", - "display_name": "meta-llama/llama-3.2-3b-instruct:free", + "id": "aihubmix-Llama-3-2-11B-Vision", + "name": "aihubmix-Llama-3-2-11B-Vision", + "display_name": "aihubmix-Llama-3-2-11B-Vision", "limit": { "context": 8192, "output": 8192 @@ -72938,15 +82420,15 @@ "supported": false }, "cost": { - "input": 0.02, - "output": 0.02 + "input": 0.4, + "output": 0.4 }, "type": "chat" }, { - "id": "meta/llama-3.1-405b-instruct", - "name": "meta/llama-3.1-405b-instruct", - "display_name": "meta/llama-3.1-405b-instruct", + "id": "aihubmix-Llama-3-2-90B-Vision", + "name": "aihubmix-Llama-3-2-90B-Vision", + "display_name": "aihubmix-Llama-3-2-90B-Vision", "limit": { "context": 8192, "output": 8192 @@ -72956,15 +82438,15 @@ "supported": false }, "cost": { - "input": 5, - "output": 5 + "input": 2.4, + "output": 2.4 }, "type": "chat" }, { - "id": "mistralai/mistral-7b-instruct:free", - "name": "mistralai/mistral-7b-instruct:free", - "display_name": "mistralai/mistral-7b-instruct:free", + "id": "aihubmix-Llama-3-70B-Instruct", + "name": "aihubmix-Llama-3-70B-Instruct", + "display_name": "aihubmix-Llama-3-70B-Instruct", "limit": { "context": 8192, "output": 8192 @@ -72974,15 +82456,15 @@ "supported": false }, "cost": { - "input": 0.002, - "output": 0.002 + "input": 0.7, + "output": 0.7 }, "type": "chat" }, { - "id": "moonshot-v1-128k", - "name": "moonshot-v1-128k", - "display_name": "moonshot-v1-128k", + "id": "aihubmix-Mistral-large", + "name": "aihubmix-Mistral-large", + "display_name": "aihubmix-Mistral-large", "limit": { "context": 8192, "output": 8192 @@ -72992,15 +82474,20 @@ "supported": false }, "cost": { - "input": 10, - "output": 10 + "input": 4, + "output": 12 }, "type": "chat" }, { - "id": "moonshot-v1-128k-vision-preview", - "name": "moonshot-v1-128k-vision-preview", - "display_name": "moonshot-v1-128k-vision-preview", + "id": "aihubmix-command-r-08-2024", + "name": "aihubmix-command-r-08-2024", + "display_name": "aihubmix-command-r-08-2024", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -73010,15 +82497,20 @@ "supported": false }, "cost": { - "input": 10, - "output": 10 + "input": 0.2, + "output": 0.8 }, "type": "chat" }, { - "id": "moonshot-v1-32k", - "name": "moonshot-v1-32k", - "display_name": "moonshot-v1-32k", + "id": "aihubmix-command-r-plus", + "name": "aihubmix-command-r-plus", + "display_name": "aihubmix-command-r-plus", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -73028,15 +82520,20 @@ "supported": false }, "cost": { - "input": 4, - "output": 4 + "input": 3.84, + "output": 19.2 }, "type": "chat" }, { - "id": "moonshot-v1-32k-vision-preview", - "name": "moonshot-v1-32k-vision-preview", - "display_name": "moonshot-v1-32k-vision-preview", + "id": "aihubmix-command-r-plus-08-2024", + "name": "aihubmix-command-r-plus-08-2024", + "display_name": "aihubmix-command-r-plus-08-2024", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -73046,51 +82543,62 @@ "supported": false }, "cost": { - "input": 4, - "output": 4 + "input": 2.8, + "output": 11.2 }, "type": "chat" }, { - "id": "moonshot-v1-8k", - "name": "moonshot-v1-8k", - "display_name": "moonshot-v1-8k", + "id": "baidu-deepseek-v3.2", + "name": "baidu-deepseek-v3.2", + "display_name": "baidu-deepseek-v3.2", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 2, - "output": 2 + "input": 0.274, + "output": 0.411 }, "type": "chat" }, { - "id": "moonshot-v1-8k-vision-preview", - "name": "moonshot-v1-8k-vision-preview", - "display_name": "moonshot-v1-8k-vision-preview", + "id": "baidu-deepseek-v3.2-exp", + "name": "baidu-deepseek-v3.2-exp", + "display_name": "baidu-deepseek-v3.2-exp", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, "cost": { - "input": 2, - "output": 2 + "input": 0.274, + "output": 0.411, + "cache_read": 0.0274 }, "type": "chat" }, { - "id": "nvidia/llama-3.1-nemotron-70b-instruct", - "name": "nvidia/llama-3.1-nemotron-70b-instruct", - "display_name": "nvidia/llama-3.1-nemotron-70b-instruct", + "id": "cerebras-llama-3.3-70b", + "name": "cerebras-llama-3.3-70b", + "display_name": "cerebras-llama-3.3-70b", "limit": { "context": 8192, "output": 8192 @@ -73106,9 +82614,9 @@ "type": "chat" }, { - "id": "o1-mini-2024-09-12", - "name": "o1-mini-2024-09-12", - "display_name": "o1-mini-2024-09-12", + "id": "chatglm_lite", + "name": "chatglm_lite", + "display_name": "chatglm_lite", "limit": { "context": 8192, "output": 8192 @@ -73118,16 +82626,15 @@ "supported": false }, "cost": { - "input": 3, - "output": 12, - "cache_read": 1.5 + "input": 0.2858, + "output": 0.2858 }, "type": "chat" }, { - "id": "omni-moderation-latest", - "name": "omni-moderation-latest", - "display_name": "omni-moderation-latest", + "id": "chatglm_pro", + "name": "chatglm_pro", + "display_name": "chatglm_pro", "limit": { "context": 8192, "output": 8192 @@ -73137,15 +82644,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2 + "input": 1.4286, + "output": 1.4286 }, "type": "chat" }, { - "id": "qwen-flash", - "name": "qwen-flash", - "display_name": "qwen-flash", + "id": "chatglm_std", + "name": "chatglm_std", + "display_name": "chatglm_std", "limit": { "context": 8192, "output": 8192 @@ -73155,16 +82662,15 @@ "supported": false }, "cost": { - "input": 0.02, - "output": 0.2, - "cache_read": 0.02 + "input": 0.7144, + "output": 0.7144 }, "type": "chat" }, { - "id": "qwen-flash-2025-07-28", - "name": "qwen-flash-2025-07-28", - "display_name": "qwen-flash-2025-07-28", + "id": "chatglm_turbo", + "name": "chatglm_turbo", + "display_name": "chatglm_turbo", "limit": { "context": 8192, "output": 8192 @@ -73174,16 +82680,15 @@ "supported": false }, "cost": { - "input": 0.02, - "output": 0.2, - "cache_read": 0.02 + "input": 0.7144, + "output": 0.7144 }, "type": "chat" }, { - "id": "qwen-long", - "name": "qwen-long", - "display_name": "qwen-long", + "id": "claude-2", + "name": "claude-2", + "display_name": "claude-2", "limit": { "context": 8192, "output": 8192 @@ -73193,15 +82698,15 @@ "supported": false }, "cost": { - "input": 0.1, - "output": 0.4 + "input": 8.8, + "output": 8.8 }, "type": "chat" }, { - "id": "qwen-max", - "name": "qwen-max", - "display_name": "qwen-max", + "id": "claude-2.0", + "name": "claude-2.0", + "display_name": "claude-2.0", "limit": { "context": 8192, "output": 8192 @@ -73211,15 +82716,15 @@ "supported": false }, "cost": { - "input": 0.38, - "output": 1.52 + "input": 8.8, + "output": 39.6 }, "type": "chat" }, { - "id": "qwen-max-longcontext", - "name": "qwen-max-longcontext", - "display_name": "qwen-max-longcontext", + "id": "claude-2.1", + "name": "claude-2.1", + "display_name": "claude-2.1", "limit": { "context": 8192, "output": 8192 @@ -73229,36 +82734,43 @@ "supported": false }, "cost": { - "input": 7, - "output": 21 + "input": 8.8, + "output": 39.6 }, "type": "chat" }, { - "id": "qwen-plus", - "name": "qwen-plus", - "display_name": "qwen-plus", + "id": "claude-3-5-sonnet-20240620", + "name": "claude-3-5-sonnet-20240620", + "display_name": "claude-3-5-sonnet-20240620", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { - "context": 8192, - "output": 8192 + "context": 200000, + "output": 200000 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 0.7, - "output": 2.1 + "input": 3.3, + "output": 16.5 }, "type": "chat" }, { - "id": "qwen-turbo", - "name": "qwen-turbo", - "display_name": "qwen-turbo", + "id": "claude-3-haiku-20240229", + "name": "claude-3-haiku-20240229", + "display_name": "claude-3-haiku-20240229", "modalities": { "input": [ - "text" + "text", + "image" ] }, "limit": { @@ -73270,18 +82782,19 @@ "supported": false }, "cost": { - "input": 0.36, - "output": 1.08 + "input": 0.275, + "output": 0.275 }, "type": "chat" }, { - "id": "qwen-turbo-2024-11-01", - "name": "qwen-turbo-2024-11-01", - "display_name": "qwen-turbo-2024-11-01", + "id": "claude-3-haiku-20240307", + "name": "claude-3-haiku-20240307", + "display_name": "claude-3-haiku-20240307", "modalities": { "input": [ - "text" + "text", + "image" ] }, "limit": { @@ -73293,15 +82806,21 @@ "supported": false }, "cost": { - "input": 0.36, - "output": 1.08 + "input": 0.275, + "output": 1.375 }, "type": "chat" }, { - "id": "qwen2.5-14b-instruct", - "name": "qwen2.5-14b-instruct", - "display_name": "qwen2.5-14b-instruct", + "id": "claude-3-sonnet-20240229", + "name": "claude-3-sonnet-20240229", + "display_name": "claude-3-sonnet-20240229", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -73311,15 +82830,15 @@ "supported": false }, "cost": { - "input": 0.4, - "output": 1.2 + "input": 3.3, + "output": 16.5 }, "type": "chat" }, { - "id": "qwen2.5-32b-instruct", - "name": "qwen2.5-32b-instruct", - "display_name": "qwen2.5-32b-instruct", + "id": "claude-instant-1", + "name": "claude-instant-1", + "display_name": "claude-instant-1", "limit": { "context": 8192, "output": 8192 @@ -73329,15 +82848,15 @@ "supported": false }, "cost": { - "input": 0.6, - "output": 1.2 + "input": 1.793, + "output": 1.793 }, "type": "chat" }, { - "id": "qwen2.5-3b-instruct", - "name": "qwen2.5-3b-instruct", - "display_name": "qwen2.5-3b-instruct", + "id": "claude-instant-1.2", + "name": "claude-instant-1.2", + "display_name": "claude-instant-1.2", "limit": { "context": 8192, "output": 8192 @@ -73347,15 +82866,15 @@ "supported": false }, "cost": { - "input": 0.4, - "output": 0.8 + "input": 0.88, + "output": 3.96 }, "type": "chat" }, { - "id": "qwen2.5-72b-instruct", - "name": "qwen2.5-72b-instruct", - "display_name": "qwen2.5-72b-instruct", + "id": "code-davinci-edit-001", + "name": "code-davinci-edit-001", + "display_name": "code-davinci-edit-001", "limit": { "context": 8192, "output": 8192 @@ -73365,15 +82884,15 @@ "supported": false }, "cost": { - "input": 0.8, - "output": 2.4 + "input": 20, + "output": 20 }, "type": "chat" }, { - "id": "qwen2.5-7b-instruct", - "name": "qwen2.5-7b-instruct", - "display_name": "qwen2.5-7b-instruct", + "id": "cogview-3", + "name": "cogview-3", + "display_name": "cogview-3", "limit": { "context": 8192, "output": 8192 @@ -73383,15 +82902,15 @@ "supported": false }, "cost": { - "input": 0.4, - "output": 0.8 + "input": 35.5, + "output": 35.5 }, "type": "chat" }, { - "id": "qwen2.5-coder-1.5b-instruct", - "name": "qwen2.5-coder-1.5b-instruct", - "display_name": "qwen2.5-coder-1.5b-instruct", + "id": "cogview-3-plus", + "name": "cogview-3-plus", + "display_name": "cogview-3-plus", "limit": { "context": 8192, "output": 8192 @@ -73401,15 +82920,20 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.4 + "input": 10, + "output": 10 }, "type": "chat" }, { - "id": "qwen2.5-coder-7b-instruct", - "name": "qwen2.5-coder-7b-instruct", - "display_name": "qwen2.5-coder-7b-instruct", + "id": "command", + "name": "command", + "display_name": "command", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -73419,15 +82943,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.4 + "input": 1, + "output": 2 }, "type": "chat" }, { - "id": "qwen2.5-math-1.5b-instruct", - "name": "qwen2.5-math-1.5b-instruct", - "display_name": "qwen2.5-math-1.5b-instruct", + "id": "command-light", + "name": "command-light", + "display_name": "command-light", "limit": { "context": 8192, "output": 8192 @@ -73437,15 +82961,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2 + "input": 1, + "output": 2 }, "type": "chat" }, { - "id": "qwen2.5-math-72b-instruct", - "name": "qwen2.5-math-72b-instruct", - "display_name": "qwen2.5-math-72b-instruct", + "id": "command-light-nightly", + "name": "command-light-nightly", + "display_name": "command-light-nightly", "limit": { "context": 8192, "output": 8192 @@ -73455,15 +82979,15 @@ "supported": false }, "cost": { - "input": 0.8, - "output": 2.4 + "input": 1, + "output": 2 }, "type": "chat" }, { - "id": "qwen2.5-math-7b-instruct", - "name": "qwen2.5-math-7b-instruct", - "display_name": "qwen2.5-math-7b-instruct", + "id": "command-nightly", + "name": "command-nightly", + "display_name": "command-nightly", "limit": { "context": 8192, "output": 8192 @@ -73473,15 +82997,20 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.4 + "input": 1, + "output": 2 }, "type": "chat" }, { - "id": "sonar-reasoning-pro", - "name": "sonar-reasoning-pro", - "display_name": "sonar-reasoning-pro", + "id": "command-r", + "name": "command-r", + "display_name": "command-r", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -73491,15 +83020,20 @@ "supported": false }, "cost": { - "input": 3, - "output": 12 + "input": 0.64, + "output": 1.92 }, "type": "chat" }, { - "id": "step-2-16k", - "name": "step-2-16k", - "display_name": "step-2-16k", + "id": "command-r-08-2024", + "name": "command-r-08-2024", + "display_name": "command-r-08-2024", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -73509,15 +83043,20 @@ "supported": false }, "cost": { - "input": 2, - "output": 2 + "input": 0.2, + "output": 0.8 }, "type": "chat" }, { - "id": "text-ada-001", - "name": "text-ada-001", - "display_name": "text-ada-001", + "id": "command-r-plus", + "name": "command-r-plus", + "display_name": "command-r-plus", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -73527,15 +83066,20 @@ "supported": false }, "cost": { - "input": 0.4, - "output": 0.4 + "input": 3.84, + "output": 19.2 }, "type": "chat" }, { - "id": "text-babbage-001", - "name": "text-babbage-001", - "display_name": "text-babbage-001", + "id": "command-r-plus-08-2024", + "name": "command-r-plus-08-2024", + "display_name": "command-r-plus-08-2024", + "modalities": { + "input": [ + "text" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -73545,15 +83089,21 @@ "supported": false }, "cost": { - "input": 0.5, - "output": 0.5 + "input": 2.8, + "output": 11.2 }, "type": "chat" }, { - "id": "text-curie-001", - "name": "text-curie-001", - "display_name": "text-curie-001", + "id": "dall-e-2", + "name": "dall-e-2", + "display_name": "dall-e-2", + "modalities": { + "input": [ + "text", + "image" + ] + }, "limit": { "context": 8192, "output": 8192 @@ -73563,15 +83113,15 @@ "supported": false }, "cost": { - "input": 2, - "output": 2 + "input": 16, + "output": 16 }, - "type": "chat" + "type": "imageGeneration" }, { - "id": "text-davinci-002", - "name": "text-davinci-002", - "display_name": "text-davinci-002", + "id": "davinci", + "name": "davinci", + "display_name": "davinci", "limit": { "context": 8192, "output": 8192 @@ -73587,9 +83137,9 @@ "type": "chat" }, { - "id": "text-davinci-003", - "name": "text-davinci-003", - "display_name": "text-davinci-003", + "id": "davinci-002", + "name": "davinci-002", + "display_name": "davinci-002", "limit": { "context": 8192, "output": 8192 @@ -73599,15 +83149,15 @@ "supported": false }, "cost": { - "input": 20, - "output": 20 + "input": 2, + "output": 2 }, "type": "chat" }, { - "id": "text-davinci-edit-001", - "name": "text-davinci-edit-001", - "display_name": "text-davinci-edit-001", + "id": "deepinfra-llama-3.1-8b-instant", + "name": "deepinfra-llama-3.1-8b-instant", + "display_name": "deepinfra-llama-3.1-8b-instant", "limit": { "context": 8192, "output": 8192 @@ -73617,20 +83167,15 @@ "supported": false }, "cost": { - "input": 20, - "output": 20 + "input": 0.033, + "output": 0.054978 }, "type": "chat" }, { - "id": "text-embedding-3-large", - "name": "text-embedding-3-large", - "display_name": "text-embedding-3-large", - "modalities": { - "input": [ - "text" - ] - }, + "id": "deepinfra-llama-3.3-70b-instant-turbo", + "name": "deepinfra-llama-3.3-70b-instant-turbo", + "display_name": "deepinfra-llama-3.3-70b-instant-turbo", "limit": { "context": 8192, "output": 8192 @@ -73640,20 +83185,15 @@ "supported": false }, "cost": { - "input": 0.13, - "output": 0.13 + "input": 0.11, + "output": 0.352 }, - "type": "embedding" + "type": "chat" }, { - "id": "text-embedding-3-small", - "name": "text-embedding-3-small", - "display_name": "text-embedding-3-small", - "modalities": { - "input": [ - "text" - ] - }, + "id": "deepinfra-llama-4-maverick-17b-128e-instruct", + "name": "deepinfra-llama-4-maverick-17b-128e-instruct", + "display_name": "deepinfra-llama-4-maverick-17b-128e-instruct", "limit": { "context": 8192, "output": 8192 @@ -73663,20 +83203,15 @@ "supported": false }, "cost": { - "input": 0.02, - "output": 0.02 + "input": 1.65, + "output": 6.6 }, - "type": "embedding" + "type": "chat" }, { - "id": "text-embedding-ada-002", - "name": "text-embedding-ada-002", - "display_name": "text-embedding-ada-002", - "modalities": { - "input": [ - "text" - ] - }, + "id": "deepinfra-llama-4-scout-17b-16e-instruct", + "name": "deepinfra-llama-4-scout-17b-16e-instruct", + "display_name": "deepinfra-llama-4-scout-17b-16e-instruct", "limit": { "context": 8192, "output": 8192 @@ -73686,20 +83221,16 @@ "supported": false }, "cost": { - "input": 0.1, - "output": 0.1 + "input": 0.088, + "output": 0.33, + "cache_read": 0 }, - "type": "embedding" + "type": "chat" }, { - "id": "text-embedding-v1", - "name": "text-embedding-v1", - "display_name": "text-embedding-v1", - "modalities": { - "input": [ - "text" - ] - }, + "id": "deepseek-ai/DeepSeek-Coder-V2-Instruct", + "name": "deepseek-ai/DeepSeek-Coder-V2-Instruct", + "display_name": "deepseek-ai/DeepSeek-Coder-V2-Instruct", "limit": { "context": 8192, "output": 8192 @@ -73709,15 +83240,15 @@ "supported": false }, "cost": { - "input": 0.1, - "output": 0.1 + "input": 0.16, + "output": 0.32 }, - "type": "embedding" + "type": "chat" }, { - "id": "text-moderation-007", - "name": "text-moderation-007", - "display_name": "text-moderation-007", + "id": "deepseek-ai/DeepSeek-R1-Distill-Llama-70B", + "name": "deepseek-ai/DeepSeek-R1-Distill-Llama-70B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Llama-70B", "limit": { "context": 8192, "output": 8192 @@ -73727,15 +83258,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2 + "input": 0.6, + "output": 0.6 }, "type": "chat" }, { - "id": "text-moderation-latest", - "name": "text-moderation-latest", - "display_name": "text-moderation-latest", + "id": "deepseek-ai/DeepSeek-R1-Distill-Llama-8B", + "name": "deepseek-ai/DeepSeek-R1-Distill-Llama-8B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Llama-8B", "limit": { "context": 8192, "output": 8192 @@ -73745,15 +83276,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2 + "input": 0.01, + "output": 0.01 }, "type": "chat" }, { - "id": "text-moderation-stable", - "name": "text-moderation-stable", - "display_name": "text-moderation-stable", + "id": "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B", "limit": { "context": 8192, "output": 8192 @@ -73763,15 +83294,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2 + "input": 0.01, + "output": 0.01 }, "type": "chat" }, { - "id": "text-search-ada-doc-001", - "name": "text-search-ada-doc-001", - "display_name": "text-search-ada-doc-001", + "id": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", "limit": { "context": 8192, "output": 8192 @@ -73781,20 +83312,15 @@ "supported": false }, "cost": { - "input": 20, - "output": 20 + "input": 0.1, + "output": 0.1 }, "type": "chat" }, { - "id": "tts-1", - "name": "tts-1", - "display_name": "tts-1", - "modalities": { - "input": [ - "audio" - ] - }, + "id": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", "limit": { "context": 8192, "output": 8192 @@ -73804,19 +83330,15 @@ "supported": false }, "cost": { - "input": 15, - "output": 15 - } + "input": 0.2, + "output": 0.2 + }, + "type": "chat" }, { - "id": "tts-1-1106", - "name": "tts-1-1106", - "display_name": "tts-1-1106", - "modalities": { - "input": [ - "audio" - ] - }, + "id": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", "limit": { "context": 8192, "output": 8192 @@ -73826,19 +83348,15 @@ "supported": false }, "cost": { - "input": 15, - "output": 15 - } + "input": 0.01, + "output": 0.01 + }, + "type": "chat" }, { - "id": "tts-1-hd", - "name": "tts-1-hd", - "display_name": "tts-1-hd", - "modalities": { - "input": [ - "audio" - ] - }, + "id": "deepseek-ai/DeepSeek-V2-Chat", + "name": "deepseek-ai/DeepSeek-V2-Chat", + "display_name": "deepseek-ai/DeepSeek-V2-Chat", "limit": { "context": 8192, "output": 8192 @@ -73848,19 +83366,15 @@ "supported": false }, "cost": { - "input": 30, - "output": 30 - } + "input": 0.16, + "output": 0.32 + }, + "type": "chat" }, { - "id": "tts-1-hd-1106", - "name": "tts-1-hd-1106", - "display_name": "tts-1-hd-1106", - "modalities": { - "input": [ - "audio" - ] - }, + "id": "deepseek-ai/DeepSeek-V2.5", + "name": "deepseek-ai/DeepSeek-V2.5", + "display_name": "deepseek-ai/DeepSeek-V2.5", "limit": { "context": 8192, "output": 8192 @@ -73870,22 +83384,15 @@ "supported": false }, "cost": { - "input": 30, - "output": 30 - } + "input": 0.16, + "output": 0.32 + }, + "type": "chat" }, { - "id": "veo-3", - "name": "veo-3", - "display_name": "veo-3", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "deepseek-ai/deepseek-llm-67b-chat", + "name": "deepseek-ai/deepseek-llm-67b-chat", + "display_name": "deepseek-ai/deepseek-llm-67b-chat", "limit": { "context": 8192, "output": 8192 @@ -73895,24 +83402,15 @@ "supported": false }, "cost": { - "input": 2, - "output": 2, - "cache_read": 0 + "input": 0.16, + "output": 0.16 }, "type": "chat" }, { - "id": "veo3", - "name": "veo3", - "display_name": "veo3", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, + "id": "deepseek-ai/deepseek-vl2", + "name": "deepseek-ai/deepseek-vl2", + "display_name": "deepseek-ai/deepseek-vl2", "limit": { "context": 8192, "output": 8192 @@ -73922,21 +83420,15 @@ "supported": false }, "cost": { - "input": 2, - "output": 2, - "cache_read": 0 + "input": 0.16, + "output": 0.16 }, "type": "chat" }, { - "id": "whisper-1", - "name": "whisper-1", - "display_name": "whisper-1", - "modalities": { - "input": [ - "audio" - ] - }, + "id": "deepseek-v3", + "name": "deepseek-v3", + "display_name": "deepseek-v3", "limit": { "context": 8192, "output": 8192 @@ -73946,15 +83438,16 @@ "supported": false }, "cost": { - "input": 100, - "output": 100 + "input": 0.272, + "output": 1.088, + "cache_read": 0 }, "type": "chat" }, { - "id": "whisper-large-v3", - "name": "whisper-large-v3", - "display_name": "whisper-large-v3", + "id": "distil-whisper-large-v3-en", + "name": "distil-whisper-large-v3-en", + "display_name": "distil-whisper-large-v3-en", "modalities": { "input": [ "audio" @@ -73969,20 +83462,15 @@ "supported": false }, "cost": { - "input": 30.834, - "output": 30.834 + "input": 5.556, + "output": 5.556 }, "type": "chat" }, { - "id": "whisper-large-v3-turbo", - "name": "whisper-large-v3-turbo", - "display_name": "whisper-large-v3-turbo", - "modalities": { - "input": [ - "audio" - ] - }, + "id": "doubao-1-5-thinking-vision-pro-250428", + "name": "doubao-1-5-thinking-vision-pro-250428", + "display_name": "doubao-1-5-thinking-vision-pro-250428", "limit": { "context": 8192, "output": 8192 @@ -73992,33 +83480,35 @@ "supported": false }, "cost": { - "input": 5.556, - "output": 5.556 + "input": 2, + "output": 2, + "cache_read": 2 }, "type": "chat" }, { - "id": "yi-large", - "name": "yi-large", - "display_name": "yi-large", + "id": "doubao-seed-1-8-251215", + "name": "doubao-seed-1-8-251215", + "display_name": "doubao-seed-1-8-251215", "limit": { - "context": 8192, - "output": 8192 + "context": 256000, + "output": 256000 }, "tool_call": false, "reasoning": { "supported": false }, "cost": { - "input": 3, - "output": 3 + "input": 0.10959, + "output": 0.273975, + "cache_read": 0.021918 }, "type": "chat" }, { - "id": "yi-large-rag", - "name": "yi-large-rag", - "display_name": "yi-large-rag", + "id": "aistudio_gemini-2.0-flash", + "name": "aistudio_gemini-2.0-flash", + "display_name": "aistudio_gemini-2.0-flash", "limit": { "context": 8192, "output": 8192 @@ -74028,15 +83518,16 @@ "supported": false }, "cost": { - "input": 4, - "output": 4 + "input": 0.1, + "output": 0.4, + "cache_read": 0.25 }, "type": "chat" }, { - "id": "yi-large-turbo", - "name": "yi-large-turbo", - "display_name": "yi-large-turbo", + "id": "aistudio_gpt-4.1-mini", + "name": "aistudio_gpt-4.1-mini", + "display_name": "aistudio_gpt-4.1-mini", "limit": { "context": 8192, "output": 8192 @@ -74046,15 +83537,16 @@ "supported": false }, "cost": { - "input": 1.8, - "output": 1.8 + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 }, "type": "chat" }, { - "id": "yi-lightning", - "name": "yi-lightning", - "display_name": "yi-lightning", + "id": "deepseek-r1-distill-qianfan-llama-8b", + "name": "deepseek-r1-distill-qianfan-llama-8b", + "display_name": "deepseek-r1-distill-qianfan-llama-8b", "limit": { "context": 8192, "output": 8192 @@ -74064,15 +83556,15 @@ "supported": false }, "cost": { - "input": 0.2, - "output": 0.2 + "input": 0.137, + "output": 0.548 }, "type": "chat" }, { - "id": "yi-medium", - "name": "yi-medium", - "display_name": "yi-medium", + "id": "doubao-1-5-pro-256k-250115", + "name": "doubao-1-5-pro-256k-250115", + "display_name": "doubao-1-5-pro-256k-250115", "limit": { "context": 8192, "output": 8192 @@ -74082,15 +83574,15 @@ "supported": false }, "cost": { - "input": 0.4, - "output": 0.4 + "input": 0.684, + "output": 1.2312 }, "type": "chat" }, { - "id": "yi-vl-plus", - "name": "yi-vl-plus", - "display_name": "yi-vl-plus", + "id": "doubao-1-5-pro-32k-250115", + "name": "doubao-1-5-pro-32k-250115", + "display_name": "doubao-1-5-pro-32k-250115", "limit": { "context": 8192, "output": 8192 @@ -74100,8 +83592,8 @@ "supported": false }, "cost": { - "input": 0.000852, - "output": 0.000852 + "input": 0.108, + "output": 0.27 }, "type": "chat" }, @@ -74270,98 +83762,6 @@ "output": 0.685 }, "type": "chat" - }, - { - "id": "aistudio_gemini-2.0-flash", - "name": "aistudio_gemini-2.0-flash", - "display_name": "aistudio_gemini-2.0-flash", - "limit": { - "context": 8192, - "output": 8192 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, - "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.25 - }, - "type": "chat" - }, - { - "id": "aistudio_gpt-4.1-mini", - "name": "aistudio_gpt-4.1-mini", - "display_name": "aistudio_gpt-4.1-mini", - "limit": { - "context": 8192, - "output": 8192 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, - "cost": { - "input": 0.4, - "output": 1.6, - "cache_read": 0.1 - }, - "type": "chat" - }, - { - "id": "deepseek-r1-distill-qianfan-llama-8b", - "name": "deepseek-r1-distill-qianfan-llama-8b", - "display_name": "deepseek-r1-distill-qianfan-llama-8b", - "limit": { - "context": 8192, - "output": 8192 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, - "cost": { - "input": 0.137, - "output": 0.548 - }, - "type": "chat" - }, - { - "id": "doubao-1-5-pro-256k-250115", - "name": "doubao-1-5-pro-256k-250115", - "display_name": "doubao-1-5-pro-256k-250115", - "limit": { - "context": 8192, - "output": 8192 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, - "cost": { - "input": 0.684, - "output": 1.2312 - }, - "type": "chat" - }, - { - "id": "doubao-1-5-pro-32k-250115", - "name": "doubao-1-5-pro-32k-250115", - "display_name": "doubao-1-5-pro-32k-250115", - "limit": { - "context": 8192, - "output": 8192 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, - "cost": { - "input": 0.108, - "output": 0.27 - }, - "type": "chat" } ] }, @@ -75059,7 +84459,7 @@ }, "limit": { "context": 200000, - "output": 32000 + "output": 200000 }, "tool_call": true, "reasoning": { @@ -75422,6 +84822,56 @@ }, "type": "imageGeneration" }, + { + "id": "bytedance-seed/seed-1.6", + "name": "ByteDance Seed: Seed 1.6", + "display_name": "ByteDance Seed: Seed 1.6", + "modalities": { + "input": [ + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 32768 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "imageGeneration" + }, + { + "id": "bytedance-seed/seed-1.6-flash", + "name": "ByteDance Seed: Seed 1.6 Flash", + "display_name": "ByteDance Seed: Seed 1.6 Flash", + "modalities": { + "input": [ + "image", + "text", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 16384 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "imageGeneration" + }, { "id": "bytedance/ui-tars-1.5-7b", "name": "ByteDance: UI-TARS 7B", @@ -75706,7 +85156,7 @@ ] }, "limit": { - "context": 8192, + "context": 32768, "output": 7168 }, "tool_call": true, @@ -77022,8 +86472,8 @@ ] }, "limit": { - "context": 130815, - "output": 130815 + "context": 10000, + "output": 10000 }, "tool_call": true, "reasoning": { @@ -77592,6 +87042,30 @@ }, "type": "chat" }, + { + "id": "minimax/minimax-m2.1", + "name": "MiniMax: MiniMax M2.1", + "display_name": "MiniMax: MiniMax M2.1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 204800, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, { "id": "mistralai/codestral-2508", "name": "Mistral: Codestral 2508", @@ -78512,7 +87986,7 @@ }, "limit": { "context": 262144, - "output": 16384 + "output": 65535 }, "tool_call": true, "reasoning": { @@ -80609,7 +90083,7 @@ }, "limit": { "context": 32768, - "output": 32768 + "output": 16384 }, "tool_call": true, "reasoning": { @@ -80996,7 +90470,8 @@ }, "tool_call": true, "reasoning": { - "supported": false + "supported": true, + "default": true }, "type": "chat" }, @@ -81023,29 +90498,6 @@ }, "type": "chat" }, - { - "id": "qwen/qwen3-235b-a22b:free", - "name": "Qwen: Qwen3 235B A22B (free)", - "display_name": "Qwen: Qwen3 235B A22B (free)", - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "limit": { - "context": 131072, - "output": 131072 - }, - "tool_call": true, - "reasoning": { - "supported": true, - "default": true - }, - "type": "chat" - }, { "id": "qwen/qwen3-30b-a3b", "name": "Qwen: Qwen3 30B A3B", @@ -81219,8 +90671,8 @@ ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 160000, + "output": 32768 }, "tool_call": true, "reasoning": { @@ -82042,7 +91494,7 @@ }, "limit": { "context": 163840, - "output": 163840 + "output": 65536 }, "tool_call": true, "reasoning": { @@ -82296,7 +91748,7 @@ }, "limit": { "context": 262144, - "output": 262144 + "output": 65536 }, "tool_call": true, "reasoning": { @@ -82342,7 +91794,7 @@ }, "limit": { "context": 131072, - "output": 131072 + "output": 65536 }, "temperature": true, "tool_call": true, @@ -82498,6 +91950,30 @@ "default": true }, "type": "imageGeneration" + }, + { + "id": "z-ai/glm-4.7", + "name": "Z.AI: GLM 4.7", + "display_name": "Z.AI: GLM 4.7", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 202752, + "output": 65535 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" } ] }, @@ -82713,6 +92189,29 @@ }, "type": "chat" }, + { + "id": "claude-opus-4-5-20251101-dd", + "name": "claude-opus-4-5-20251101-dd", + "display_name": "claude-opus-4-5-20251101-dd", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 65536 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, { "id": "claude-sonnet-4-20250514", "name": "claude-sonnet-4-20250514", @@ -82736,6 +92235,29 @@ }, "type": "chat" }, + { + "id": "claude-sonnet-4-20250514-dd", + "name": "claude-sonnet-4-20250514-dd", + "display_name": "claude-sonnet-4-20250514-dd", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, { "id": "claude-sonnet-4-5-20250929", "name": "claude-sonnet-4-5-20250929", @@ -82759,6 +92281,29 @@ }, "type": "chat" }, + { + "id": "claude-sonnet-4-5-20250929-dd", + "name": "claude-sonnet-4-5-20250929-dd", + "display_name": "claude-sonnet-4-5-20250929-dd", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 20000, + "output": 20000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, { "id": "deepseek/deepseek-r1-0528", "name": "DeepSeek R1 0528", @@ -83313,6 +92858,29 @@ }, "type": "chat" }, + { + "id": "zai-org/glm-4.7", + "name": "GLM-4.7", + "display_name": "GLM-4.7", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 204800, + "output": 131072 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, { "id": "gpt-4.1", "name": "gpt-4.1", @@ -84009,6 +93577,28 @@ }, "type": "chat" }, + { + "id": "Sao10K/L3-8B-Stheno-v3.2", + "name": "L3 8B Stheno V3.2", + "display_name": "L3 8B Stheno V3.2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, { "id": "sao10k/l31-70b-euryale-v2.2", "name": "L31 70B Euryale V2.2", @@ -84166,6 +93756,29 @@ }, "type": "chat" }, + { + "id": "minimax/minimax-m2.1", + "name": "Minimax M2.1", + "display_name": "Minimax M2.1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 204800, + "output": 131072 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, { "id": "mistralai/mistral-7b-instruct", "name": "Mistral 7B Instruct", @@ -84232,6 +93845,29 @@ }, "type": "chat" }, + { + "id": "nova-2-Lite", + "name": "nova-2-Lite", + "display_name": "nova-2-Lite", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 1000000 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, { "id": "o1", "name": "o1", @@ -84687,6 +94323,29 @@ "supported": false }, "type": "chat" + }, + { + "id": "xiaomimimo/mimo-v2-flash", + "name": "XiaomiMiMo/MiMo-V2-Flash", + "display_name": "XiaomiMiMo/MiMo-V2-Flash", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 131072 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" } ] } diff --git a/scripts/fetch-provider-db.mjs b/scripts/fetch-provider-db.mjs index 1b2f9bfc6..7b1a3ac4e 100644 --- a/scripts/fetch-provider-db.mjs +++ b/scripts/fetch-provider-db.mjs @@ -18,11 +18,11 @@ async function ensureDir(dir) { } const PROVIDER_ID_REGEX = /^[a-z0-9][a-z0-9-_]*$/ -const MODEL_ID_REGEX = /^[a-z0-9][a-z0-9\-_.:/]*$/ +const MODEL_ID_REGEX = /^[a-zA-Z0-9][a-zA-Z0-9\-_.:/]*$/ const isValidLowercaseProviderId = (id) => typeof id === 'string' && id === id.toLowerCase() && PROVIDER_ID_REGEX.test(id) -const isValidLowercaseModelId = (id) => - typeof id === 'string' && id === id.toLowerCase() && MODEL_ID_REGEX.test(id) +const isValidModelId = (id) => + typeof id === 'string' && MODEL_ID_REGEX.test(id) function sanitizeAggregateJson(json) { if (!json || typeof json !== 'object') return null @@ -39,7 +39,7 @@ function sanitizeAggregateJson(json) { for (const m of models) { if (!m || typeof m !== 'object') continue const mid = m.id - if (!isValidLowercaseModelId(mid)) continue + if (!isValidModelId(mid)) continue const rlimit = m.limit let limit if (rlimit && typeof rlimit === 'object') { diff --git a/scripts/rebrand.js b/scripts/rebrand.js index 797ce4984..1e1731c31 100644 --- a/scripts/rebrand.js +++ b/scripts/rebrand.js @@ -122,34 +122,6 @@ function updateElectronBuilder(config) { } } -// 更新 electron-builder-macx64.yml -function updateElectronBuilderMacX64(config) { - const builderPath = path.join(PROJECT_ROOT, 'electron-builder-macx64.yml') - - if (!fs.existsSync(builderPath)) { - return // 文件不存在则跳过 - } - - try { - let content = fs.readFileSync(builderPath, 'utf8') - - // 替换 appId - content = content.replace(/appId: .+/, `appId: ${config.app.appId}`) - - // 替换 productName - content = content.replace(/productName: .+/, `productName: ${config.app.productName}`) - - // 替换 publish URL - if (config.update && config.update.baseUrl) { - content = content.replace(/url: https:\/\/cdn\.deepchatai\.cn\/upgrade\//, `url: ${config.update.baseUrl}`) - } - - fs.writeFileSync(builderPath, content, 'utf8') - success('已更新 electron-builder-macx64.yml') - } catch (err) { - error(`更新 electron-builder-macx64.yml 失败: ${err.message}`) - } -} // 更新主进程中的 app user model ID function updateMainIndex(config) { @@ -480,7 +452,6 @@ function main() { // 执行替换 updatePackageJson(config) updateElectronBuilder(config) - updateElectronBuilderMacX64(config) updateMainIndex(config) updateUpgradePresenter(config) updateI18nFiles(config) diff --git a/src/main/contextMenuHelper.ts b/src/main/contextMenuHelper.ts index af92959f0..0d6e3138e 100644 --- a/src/main/contextMenuHelper.ts +++ b/src/main/contextMenuHelper.ts @@ -243,6 +243,19 @@ export default function contextMenu(options: ContextMenuOptions): () => void { // 添加分隔符 menuItems.push({ type: 'separator' }) + menuItems.push({ + id: 'newThreadFromSelection', + label: options.labels?.newThreadFromSelection || 'New Thread from Selection', + click: () => { + options.webContents.send( + 'context-menu-new-thread', + params.selectionText, + params.x, + params.y + ) + } + }) + // 添加翻译选项 menuItems.push({ id: 'translate', diff --git a/src/main/events.ts b/src/main/events.ts index 8b04a4e1f..a479df41f 100644 --- a/src/main/events.ts +++ b/src/main/events.ts @@ -58,6 +58,7 @@ export const CONVERSATION_EVENTS = { ACTIVATED: 'conversation:activated', // 替代 conversation-activated DEACTIVATED: 'conversation:deactivated', // 替代 active-conversation-cleared MESSAGE_EDITED: 'conversation:message-edited', // 替代 message-edited + SCROLL_TO_MESSAGE: 'conversation:scroll-to-message', MESSAGE_GENERATED: 'conversation:message-generated' // 主进程内部事件,一条完整的消息已生成 } @@ -192,6 +193,7 @@ export const YO_BROWSER_EVENTS = { TAB_CLOSED: 'yo-browser:tab-closed', TAB_ACTIVATED: 'yo-browser:tab-activated', TAB_NAVIGATED: 'yo-browser:tab-navigated', + TAB_UPDATED: 'yo-browser:tab-updated', TAB_COUNT_CHANGED: 'yo-browser:tab-count-changed', WINDOW_VISIBILITY_CHANGED: 'yo-browser:window-visibility-changed' } @@ -243,11 +245,15 @@ export const LIFECYCLE_EVENTS = { SHUTDOWN_REQUESTED: 'lifecycle:shutdown-requested' // Application shutdown requested } -// ACP Workspace events +// Workspace events +export const WORKSPACE_EVENTS = { + PLAN_UPDATED: 'workspace:plan-updated', // Plan entries updated + TERMINAL_OUTPUT: 'workspace:terminal-output', // Terminal output snippet + FILES_CHANGED: 'workspace:files-changed' // File tree changed +} + +// ACP-specific workspace events export const ACP_WORKSPACE_EVENTS = { - PLAN_UPDATED: 'acp-workspace:plan-updated', // Plan entries updated - TERMINAL_OUTPUT: 'acp-workspace:terminal-output', // Terminal output snippet - FILES_CHANGED: 'acp-workspace:files-changed', // File tree changed SESSION_MODES_READY: 'acp-workspace:session-modes-ready' // Session modes available } diff --git a/src/main/lib/runtimeHelper.ts b/src/main/lib/runtimeHelper.ts index 6ac255731..16906321f 100644 --- a/src/main/lib/runtimeHelper.ts +++ b/src/main/lib/runtimeHelper.ts @@ -10,6 +10,7 @@ export class RuntimeHelper { private static instance: RuntimeHelper | null = null private nodeRuntimePath: string | null = null private uvRuntimePath: string | null = null + private ripgrepRuntimePath: string | null = null private runtimesInitialized: boolean = false private constructor() { @@ -28,7 +29,7 @@ export class RuntimeHelper { /** * Initialize runtime paths (idempotent operation) - * Caches Node.js and UV runtime paths to avoid repeated filesystem checks + * Caches Node.js, UV and Ripgrep runtime paths to avoid repeated filesystem checks */ public initializeRuntimes(): void { if (this.runtimesInitialized) { @@ -77,6 +78,24 @@ export class RuntimeHelper { } } + // Check if ripgrep runtime file exists + const ripgrepRuntimePath = path.join(runtimeBasePath, 'ripgrep') + if (process.platform === 'win32') { + const rgExe = path.join(ripgrepRuntimePath, 'rg.exe') + if (fs.existsSync(rgExe)) { + this.ripgrepRuntimePath = ripgrepRuntimePath + } else { + this.ripgrepRuntimePath = null + } + } else { + const rgBin = path.join(ripgrepRuntimePath, 'rg') + if (fs.existsSync(rgBin)) { + this.ripgrepRuntimePath = ripgrepRuntimePath + } else { + this.ripgrepRuntimePath = null + } + } + this.runtimesInitialized = true } @@ -96,6 +115,14 @@ export class RuntimeHelper { return this.uvRuntimePath } + /** + * Get Ripgrep runtime path + * @returns Ripgrep runtime path or null if not found + */ + public getRipgrepRuntimePath(): string | null { + return this.ripgrepRuntimePath + } + /** * Replace command with runtime version if needed * @param command Original command @@ -234,6 +261,35 @@ export class RuntimeHelper { } } + // Ripgrep command handling (all platforms) + if (basename === 'rg') { + if (!this.ripgrepRuntimePath) { + return command + } + + if (process.platform === 'win32') { + const rgPath = path.join(this.ripgrepRuntimePath, 'rg.exe') + if (checkExists) { + if (fs.existsSync(rgPath)) { + return rgPath + } + return command + } else { + return rgPath + } + } else { + const rgPath = path.join(this.ripgrepRuntimePath, 'rg') + if (checkExists) { + if (fs.existsSync(rgPath)) { + return rgPath + } + return command + } else { + return rgPath + } + } + } + return command } diff --git a/src/main/presenter/acpWorkspacePresenter/index.ts b/src/main/presenter/acpWorkspacePresenter/index.ts deleted file mode 100644 index 20ce6ed99..000000000 --- a/src/main/presenter/acpWorkspacePresenter/index.ts +++ /dev/null @@ -1,153 +0,0 @@ -import path from 'path' -import { shell } from 'electron' -import { eventBus, SendTarget } from '@/eventbus' -import { ACP_WORKSPACE_EVENTS } from '@/events' -import { readDirectoryShallow } from './directoryReader' -import { PlanStateManager } from './planStateManager' -import type { - IAcpWorkspacePresenter, - AcpFileNode, - AcpPlanEntry, - AcpTerminalSnippet, - AcpRawPlanEntry -} from '@shared/presenter' - -export class AcpWorkspacePresenter implements IAcpWorkspacePresenter { - private readonly planManager = new PlanStateManager() - // Allowed workdir paths (registered by ACP sessions) - private readonly allowedWorkdirs = new Set() - - /** - * Register a workdir as allowed for reading - * Returns Promise to ensure IPC call completion - */ - async registerWorkdir(workdir: string): Promise { - const normalized = path.resolve(workdir) - this.allowedWorkdirs.add(normalized) - } - - /** - * Unregister a workdir - */ - async unregisterWorkdir(workdir: string): Promise { - const normalized = path.resolve(workdir) - this.allowedWorkdirs.delete(normalized) - } - - /** - * Check if a path is within allowed workdirs - */ - private isPathAllowed(targetPath: string): boolean { - const normalized = path.resolve(targetPath) - for (const workdir of this.allowedWorkdirs) { - // Check if targetPath is equal to or under the workdir - if (normalized === workdir || normalized.startsWith(workdir + path.sep)) { - return true - } - } - return false - } - - /** - * Read directory (shallow, only first level) - * Use expandDirectory to load subdirectory contents - */ - async readDirectory(dirPath: string): Promise { - // Security check: only allow reading within registered workdirs - if (!this.isPathAllowed(dirPath)) { - console.warn(`[AcpWorkspace] Blocked read attempt for unauthorized path: ${dirPath}`) - return [] - } - return readDirectoryShallow(dirPath) - } - - /** - * Expand a directory to load its children (lazy loading) - * @param dirPath Directory path to expand - */ - async expandDirectory(dirPath: string): Promise { - // Security check: only allow reading within registered workdirs - if (!this.isPathAllowed(dirPath)) { - console.warn(`[AcpWorkspace] Blocked expand attempt for unauthorized path: ${dirPath}`) - return [] - } - return readDirectoryShallow(dirPath) - } - - /** - * Reveal a file or directory in the system file manager - */ - async revealFileInFolder(filePath: string): Promise { - // Security check: only allow revealing within registered workdirs - if (!this.isPathAllowed(filePath)) { - console.warn(`[AcpWorkspace] Blocked reveal attempt for unauthorized path: ${filePath}`) - return - } - - const normalizedPath = path.resolve(filePath) - - try { - shell.showItemInFolder(normalizedPath) - } catch (error) { - console.error(`[AcpWorkspace] Failed to reveal path: ${normalizedPath}`, error) - } - } - - /** - * Open a file or directory with the system default application - */ - async openFile(filePath: string): Promise { - if (!this.isPathAllowed(filePath)) { - console.warn(`[AcpWorkspace] Blocked open attempt for unauthorized path: ${filePath}`) - return - } - - const normalizedPath = path.resolve(filePath) - - try { - const errorMessage = await shell.openPath(normalizedPath) - if (errorMessage) { - console.error(`[AcpWorkspace] Failed to open path: ${normalizedPath}`, errorMessage) - } - } catch (error) { - console.error(`[AcpWorkspace] Failed to open path: ${normalizedPath}`, error) - } - } - - /** - * Get plan entries - */ - async getPlanEntries(conversationId: string): Promise { - return this.planManager.getEntries(conversationId) - } - - /** - * Update plan entries (called by acpContentMapper) - */ - async updatePlanEntries(conversationId: string, entries: AcpRawPlanEntry[]): Promise { - const updated = this.planManager.updateEntries(conversationId, entries) - - // Send event to renderer - eventBus.sendToRenderer(ACP_WORKSPACE_EVENTS.PLAN_UPDATED, SendTarget.ALL_WINDOWS, { - conversationId, - entries: updated - }) - } - - /** - * Emit terminal output snippet (called by acpContentMapper) - */ - async emitTerminalSnippet(conversationId: string, snippet: AcpTerminalSnippet): Promise { - eventBus.sendToRenderer(ACP_WORKSPACE_EVENTS.TERMINAL_OUTPUT, SendTarget.ALL_WINDOWS, { - conversationId, - snippet - }) - } - - /** - * Clear workspace data for a conversation - */ - async clearWorkspaceData(conversationId: string): Promise { - this.planManager.clear(conversationId) - } -} diff --git a/src/main/presenter/browser/BrowserTab.ts b/src/main/presenter/browser/BrowserTab.ts index f97ce3845..11bcfcaea 100644 --- a/src/main/presenter/browser/BrowserTab.ts +++ b/src/main/presenter/browser/BrowserTab.ts @@ -628,6 +628,12 @@ export class BrowserTab { throw new Error('WebContents destroyed') } + // 安全检查:只有加载外部网页的 browser tab 才允许绑定 CDP + const currentUrl = this.webContents.getURL() + if (currentUrl.startsWith('local://')) { + throw new Error('CDP is not allowed for local:// URLs') + } + if (!this.isAttached) { try { await this.cdpManager.createSession(this.webContents) diff --git a/src/main/presenter/browser/YoBrowserPresenter.ts b/src/main/presenter/browser/YoBrowserPresenter.ts index e69e2e4ce..d87029b3f 100644 --- a/src/main/presenter/browser/YoBrowserPresenter.ts +++ b/src/main/presenter/browser/YoBrowserPresenter.ts @@ -1,4 +1,5 @@ -import { BrowserWindow, WebContents } from 'electron' +import { BrowserWindow, WebContents, screen } from 'electron' +import type { Rectangle } from 'electron' import { eventBus, SendTarget } from '@/eventbus' import { TAB_EVENTS, YO_BROWSER_EVENTS } from '@/events' import { BrowserTabInfo, BrowserContextSnapshot, ScreenshotOptions } from '@shared/types/browser' @@ -42,23 +43,20 @@ export class YoBrowserPresenter implements IYoBrowserPresenter { // Lazy initialization: only create browser window/tabs when explicitly requested. } - async ensureWindow(): Promise { + async ensureWindow(options?: { x?: number; y?: number }): Promise { const window = this.getWindow() if (window) return window.id this.windowId = await this.windowPresenter.createShellWindow({ - windowType: 'browser' + windowType: 'browser', + x: options?.x, + y: options?.y }) const created = this.getWindow() if (created) { created.on('closed', () => this.handleWindowClosed()) this.emitVisibility(created.isVisible()) - - // Auto-create a blank tab when the window is first created - if (this.tabIdToBrowserTab.size === 0) { - await this.createTab('about:blank') - } } return this.windowId @@ -68,12 +66,63 @@ export class YoBrowserPresenter implements IYoBrowserPresenter { return this.windowId !== null && this.getWindow() !== null } - async show(): Promise { - await this.ensureWindow() + async show(shouldFocus: boolean = true): Promise { + const existingWindow = this.getWindow() + const referenceBounds = existingWindow + ? this.getReferenceBounds(existingWindow.id) + : this.getReferenceBounds() + + // Calculate position before creating window if it doesn't exist + let initialPosition: { x: number; y: number } | undefined + if (!existingWindow && referenceBounds) { + // Use default window size for calculation (browser window is 600px wide) + const defaultBounds: Rectangle = { + x: 0, + y: 0, + width: 600, + height: 620 + } + initialPosition = this.calculateWindowPosition(defaultBounds, referenceBounds) + } + + await this.ensureWindow({ + x: initialPosition?.x, + y: initialPosition?.y + }) + + if (this.tabIdToBrowserTab.size === 0) { + await this.createTab('about:blank') + } + const window = this.getWindow() if (window && !window.isDestroyed()) { - this.windowPresenter.show(window.id) - this.emitVisibility(true) + // If window already existed, recalculate position based on actual bounds + if (existingWindow) { + const currentReferenceBounds = this.getReferenceBounds(window.id) + const position = this.calculateWindowPosition(window.getBounds(), currentReferenceBounds) + window.setPosition(position.x, position.y) + } + + // For existing windows, directly show them (they're already ready) + // For new windows, wait for ready-to-show event + if (existingWindow) { + // Window already exists, just show it directly + this.windowPresenter.show(window.id, shouldFocus) + this.emitVisibility(true) + } else { + // New window, wait for ready-to-show + const reveal = () => { + if (!window.isDestroyed()) { + this.windowPresenter.show(window.id, shouldFocus) + this.emitVisibility(true) + } + } + if (window.isVisible()) { + reveal() + } else { + window.once('ready-to-show', reveal) + } + } } } @@ -111,7 +160,8 @@ export class YoBrowserPresenter implements IYoBrowserPresenter { await this.syncActiveTabId() if (!this.activeTabId) return null const tab = this.tabIdToBrowserTab.get(this.activeTabId) - return tab ? this.toTabInfo(tab) : null + const result = tab ? this.toTabInfo(tab) : null + return result } async getTabById(tabId: string): Promise { @@ -181,7 +231,9 @@ export class YoBrowserPresenter implements IYoBrowserPresenter { this.setupTabListeners(tabKey, viewId as number, view.webContents) this.emitTabCreated(browserTab) this.emitTabCount() - return this.toTabInfo(browserTab) + + const result = this.toTabInfo(browserTab) + return result } async navigateTab(tabId: string, url: string, timeoutMs?: number): Promise { @@ -297,14 +349,14 @@ export class YoBrowserPresenter implements IYoBrowserPresenter { async callTool(toolName: string, params: Record): Promise { const result = await this.browserToolManager.executeTool(toolName, params) + const textParts = result.content + .filter((c): c is { type: 'text'; text: string } => c.type === 'text') + .map((c) => c.text) + const textContent = textParts.join('\n\n') if (result.isError) { - const textContent = result.content.find((c) => c.type === 'text') - throw new Error( - textContent && 'text' in textContent ? textContent.text : 'Tool execution failed' - ) + throw new Error(textContent || 'Tool execution failed') } - const textContent = result.content.find((c) => c.type === 'text') - return textContent && 'text' in textContent ? textContent.text : '' + return textContent } async captureScreenshot(tabId: string, options?: ScreenshotOptions): Promise { @@ -367,6 +419,79 @@ export class YoBrowserPresenter implements IYoBrowserPresenter { return window } + private getReferenceBounds(excludeWindowId?: number): Rectangle | undefined { + const focused = this.windowPresenter.getFocusedWindow() + if (focused && !focused.isDestroyed() && focused.id !== excludeWindowId) { + return focused.getBounds() + } + const fallback = this.windowPresenter + .getAllWindows() + .find((candidate) => candidate.id !== excludeWindowId) + return fallback?.getBounds() + } + + private calculateWindowPosition( + windowBounds: Rectangle, + referenceBounds?: Rectangle + ): { x: number; y: number } { + if (!referenceBounds) { + // 如果没有参考窗口,使用默认位置 + const display = screen.getDisplayMatching(windowBounds) + const { workArea } = display + return { + x: workArea.x + workArea.width - windowBounds.width - 20, + y: workArea.y + (workArea.height - windowBounds.height) / 2 + } + } + + const gap = 20 + const display = screen.getDisplayMatching(referenceBounds) + const { workArea } = display + + // Browser 窗口尺寸 + const browserWidth = windowBounds.width + const browserHeight = windowBounds.height + + // 计算主窗口右侧和左侧的空间 + const spaceOnRight = workArea.x + workArea.width - (referenceBounds.x + referenceBounds.width) + const spaceOnLeft = referenceBounds.x - workArea.x + + let targetX: number + let targetY: number + + if (spaceOnRight >= browserWidth + gap) { + // 显示在主窗口右侧 + targetX = referenceBounds.x + referenceBounds.width + gap + targetY = referenceBounds.y + (referenceBounds.height - browserHeight) / 2 + } else if (spaceOnLeft >= browserWidth + gap) { + // 显示在主窗口左侧 + targetX = referenceBounds.x - browserWidth - gap + targetY = referenceBounds.y + (referenceBounds.height - browserHeight) / 2 + } else { + // 空间不够,显示在主窗口下方 + targetX = referenceBounds.x + const spaceBelow = workArea.y + workArea.height - (referenceBounds.y + referenceBounds.height) + if (spaceBelow >= browserHeight + gap) { + targetY = referenceBounds.y + referenceBounds.height + gap + } else { + // 下方空间也不够,显示在主窗口上方 + targetY = referenceBounds.y - browserHeight - gap + } + } + + // 确保窗口在屏幕范围内 + const clampedX = Math.max( + workArea.x, + Math.min(targetX, workArea.x + workArea.width - browserWidth) + ) + const clampedY = Math.max( + workArea.y, + Math.min(targetY, workArea.y + workArea.height - browserHeight) + ) + + return { x: Math.round(clampedX), y: Math.round(clampedY) } + } + private handleWindowClosed(): void { this.cleanup() this.emitVisibility(false) @@ -386,6 +511,20 @@ export class YoBrowserPresenter implements IYoBrowserPresenter { const tab = this.tabIdToBrowserTab.get(tabId) if (!tab) return tab.title = title || tab.url + tab.updatedAt = Date.now() + this.emitTabUpdated(tab) + }) + + contents.on('page-favicon-updated', (_event, favicons) => { + if (favicons.length > 0) { + const tab = this.tabIdToBrowserTab.get(tabId) + if (!tab) return + if (tab.favicon !== favicons[0]) { + tab.favicon = favicons[0] + tab.updatedAt = Date.now() + this.emitTabUpdated(tab) + } + } }) contents.on('destroyed', () => { @@ -513,6 +652,11 @@ export class YoBrowserPresenter implements IYoBrowserPresenter { }) } + private emitTabUpdated(tab: BrowserTab) { + const info = this.toTabInfo(tab) + eventBus.sendToRenderer(YO_BROWSER_EVENTS.TAB_UPDATED, SendTarget.ALL_WINDOWS, info) + } + private emitTabCount() { eventBus.sendToRenderer( YO_BROWSER_EVENTS.TAB_COUNT_CHANGED, diff --git a/src/main/presenter/browser/tools/navigate.ts b/src/main/presenter/browser/tools/navigate.ts index 805c3fc21..2d6e95938 100644 --- a/src/main/presenter/browser/tools/navigate.ts +++ b/src/main/presenter/browser/tools/navigate.ts @@ -1,5 +1,5 @@ import { z } from 'zod' -import type { BrowserToolDefinition } from './types' +import type { BrowserToolDefinition, ToolResult } from './types' const NavigateArgsSchema = z.object({ url: z.string().url().describe('URL to navigate to'), @@ -93,36 +93,126 @@ export function createNavigateTools(): BrowserToolDefinition[] { if (context.createTab) { const newTab = await context.createTab(parsed.url) if (newTab) { - return { + // Add a small delay to ensure BrowserTab is fully initialized + // This is especially important on first call when browser window is just created + await new Promise((resolve) => setTimeout(resolve, 100)) + // Get the BrowserTab object and wait for navigation to complete + // Note: createTab already started navigation via tabPresenter.createTab, + // so we just need to wait for it to complete + const browserTab = await context.getTab(newTab.id) + if (browserTab) { + try { + // createTab already started navigation via tabPresenter.createTab + // If tab is loading, wait for it to complete instead of calling navigate again + if (browserTab.contents.isLoading()) { + // Wait for current navigation to complete + await new Promise((resolve, reject) => { + let timeout: ReturnType + let onStopLoading: () => void + let onFailLoad: ( + _event: unknown, + errorCode: number, + errorDescription: string + ) => void + + const cleanup = () => { + clearTimeout(timeout) + browserTab.contents.removeListener('did-stop-loading', onStopLoading) + browserTab.contents.removeListener('did-fail-load', onFailLoad) + } + + onStopLoading = () => { + cleanup() + resolve() + } + + onFailLoad = (_event, errorCode, errorDescription) => { + cleanup() + reject(new Error(`Navigation failed ${errorCode}: ${errorDescription}`)) + } + + timeout = setTimeout(() => { + cleanup() + reject(new Error('Timeout waiting for page load')) + }, 15000) + + browserTab.contents.once('did-stop-loading', onStopLoading) + browserTab.contents.once('did-fail-load', onFailLoad) + }) + + // Check if URL matches after loading + const finalUrl = browserTab.contents.getURL() + if (finalUrl !== parsed.url) { + // URL doesn't match, need to navigate + await browserTab.navigate(parsed.url, 15000) // 15 second timeout + } + } else { + // Tab is not loading, check if URL matches + const currentUrl = browserTab.contents.getURL() + if (currentUrl !== parsed.url) { + // URL doesn't match, need to navigate + await browserTab.navigate(parsed.url, 15000) // 15 second timeout + } + } + + const result: ToolResult = { + content: [ + { + type: 'text' as const, + text: `Created new tab and navigated to ${parsed.url}\nTitle: ${browserTab.title || 'unknown'}` + } + ] + } + return result + } catch (error) { + console.error('[browser_navigate] Failed to navigate newly created tab:', error) + const errorMessage = error instanceof Error ? error.message : String(error) + const result: ToolResult = { + content: [ + { + type: 'text' as const, + text: `Failed to navigate new tab ${browserTab.tabId} to ${parsed.url}\nError: ${errorMessage}\nTitle: ${browserTab.title || 'unknown'}` + } + ], + isError: true + } + return result + } + } + // Fallback if getTab fails + const result: ToolResult = { content: [ { - type: 'text', + type: 'text' as const, text: `Created new tab and navigated to ${parsed.url}\nTitle: ${newTab.title || 'unknown'}` } ] } + return result } } - return { + const errorResult: ToolResult = { content: [ { - type: 'text', + type: 'text' as const, text: 'No active tab available' } ], isError: true } + return errorResult } await tab.navigate(parsed.url) - return { + const result: ToolResult = { content: [ { - type: 'text', + type: 'text' as const, text: `Navigated to ${parsed.url}\nTitle: ${tab.title || 'unknown'}` } ] } + return result } }, { diff --git a/src/main/presenter/configPresenter/acpConfHelper.ts b/src/main/presenter/configPresenter/acpConfHelper.ts index 246bfb6c0..d30037f19 100644 --- a/src/main/presenter/configPresenter/acpConfHelper.ts +++ b/src/main/presenter/configPresenter/acpConfHelper.ts @@ -8,6 +8,7 @@ import type { AcpCustomAgent, AcpStoreData } from '@shared/presenter' +import { McpConfHelper } from './mcpConfHelper' const ACP_STORE_VERSION = '2' const DEFAULT_PROFILE_NAME = 'Default' @@ -64,8 +65,10 @@ const deepClone = (value: T): T => { export class AcpConfHelper { private store: ElectronStore + private readonly mcpConfHelper: McpConfHelper - constructor() { + constructor(options?: { mcpConfHelper?: McpConfHelper }) { + this.mcpConfHelper = options?.mcpConfHelper ?? new McpConfHelper() this.store = new ElectronStore({ name: 'acp_agents', defaults: { @@ -149,6 +152,57 @@ export class AcpConfHelper { return deepClone(this.getData().customs) } + async getAgentMcpSelections(agentId: string, isBuiltin?: boolean): Promise { + const builtin = typeof isBuiltin === 'boolean' ? isBuiltin : this.isBuiltinAgent(agentId) + if (builtin) { + const agent = this.getBuiltins().find((item) => item.id === agentId) + return this.normalizeMcpSelections(agent?.mcpSelections) ?? [] + } + + const agent = this.getCustoms().find((item) => item.id === agentId) + return this.normalizeMcpSelections(agent?.mcpSelections) ?? [] + } + + async setAgentMcpSelections( + agentId: string, + isBuiltin: boolean, + mcpIds: string[] + ): Promise { + const normalized = this.normalizeMcpSelections(mcpIds) ?? [] + const validated = await this.validateMcpSelections(normalized) + + if (isBuiltin) { + this.mutateBuiltins((builtins) => { + const target = builtins.find((agent) => agent.id === agentId) + if (!target) { + throw new Error(`ACP builtin agent not found: ${agentId}`) + } + target.mcpSelections = validated + }) + return + } + + this.mutateCustoms((customs) => { + const target = customs.find((agent) => agent.id === agentId) + if (!target) { + throw new Error(`ACP custom agent not found: ${agentId}`) + } + target.mcpSelections = validated + }) + } + + async addMcpToAgent(agentId: string, isBuiltin: boolean, mcpId: string): Promise { + const current = await this.getAgentMcpSelections(agentId, isBuiltin) + const next = Array.from(new Set([...current, mcpId])) + await this.setAgentMcpSelections(agentId, isBuiltin, next) + } + + async removeMcpFromAgent(agentId: string, isBuiltin: boolean, mcpId: string): Promise { + const current = await this.getAgentMcpSelections(agentId, isBuiltin) + const next = current.filter((id) => id !== mcpId) + await this.setAgentMcpSelections(agentId, isBuiltin, next) + } + addBuiltinProfile( agentId: AcpBuiltinAgentId, profile: Omit, @@ -585,7 +639,8 @@ export class AcpConfHelper { name: BUILTIN_TEMPLATES[id].name, enabled: false, activeProfileId: profile.id, - profiles: [profile] + profiles: [profile], + mcpSelections: undefined } } @@ -620,7 +675,8 @@ export class AcpConfHelper { name: template.name, enabled: Boolean(agent.enabled), activeProfileId, - profiles + profiles, + mcpSelections: this.normalizeMcpSelections(agent.mcpSelections) } } @@ -682,7 +738,8 @@ export class AcpConfHelper { command, args: this.normalizeArgs(agent.args), env: this.normalizeEnv(agent.env), - enabled + enabled, + mcpSelections: this.normalizeMcpSelections(agent.mcpSelections) } } @@ -722,6 +779,26 @@ export class AcpConfHelper { return Object.fromEntries(entries) } + private normalizeMcpSelections(value: unknown): string[] | undefined { + if (!Array.isArray(value)) return undefined + const cleaned = value + .map((item) => (typeof item === 'string' ? item.trim() : String(item).trim())) + .filter((item) => item.length > 0) + if (!cleaned.length) return undefined + return Array.from(new Set(cleaned)) + } + + private async validateMcpSelections(selections: string[]): Promise { + if (!selections.length) return [] + const servers = await this.mcpConfHelper.getMcpServers() + const valid = new Set( + Object.entries(servers) + .filter(([, config]) => config?.type !== 'inmemory') + .map(([name]) => name) + ) + return selections.filter((name) => valid.has(name)) + } + private isBuiltinAgent(id: string): id is AcpBuiltinAgentId { return BUILTIN_ORDER.includes(id as AcpBuiltinAgentId) } diff --git a/src/main/presenter/configPresenter/index.ts b/src/main/presenter/configPresenter/index.ts index 86c03b1b6..fce64126c 100644 --- a/src/main/presenter/configPresenter/index.ts +++ b/src/main/presenter/configPresenter/index.ts @@ -73,7 +73,7 @@ interface IAppSettings { floatingButtonEnabled?: boolean // Whether floating button is enabled default_system_prompt?: string // Default system prompt webContentLengthLimit?: number // Web content truncation length limit, default 3000 characters - updateChannel?: string // Update channel: 'stable' | 'canary' + updateChannel?: string // Update channel: 'stable' | 'beta' fontFamily?: string // Custom UI font codeFontFamily?: string // Custom code font [key: string]: unknown // Allow arbitrary keys, using unknown type instead of any @@ -190,13 +190,13 @@ export class ConfigPresenter implements IConfigPresenter { setSetting: this.setSetting.bind(this) }) - this.acpConfHelper = new AcpConfHelper() - this.syncAcpProviderEnabled(this.acpConfHelper.getGlobalEnabled()) - this.setupIpcHandlers() - // Initialize MCP configuration helper this.mcpConfHelper = new McpConfHelper() + this.acpConfHelper = new AcpConfHelper({ mcpConfHelper: this.mcpConfHelper }) + this.syncAcpProviderEnabled(this.acpConfHelper.getGlobalEnabled()) + this.setupIpcHandlers() + // Initialize model configuration helper this.modelConfigHelper = new ModelConfigHelper(this.currentAppVersion) @@ -227,6 +227,9 @@ export class ConfigPresenter implements IConfigPresenter { this.mcpConfHelper.onUpgrade(oldVersion) } + // Migrate minimax provider from OpenAI format to Anthropic format + this.migrateMinimaxProvider() + const existingProviders = this.getSetting(PROVIDERS_STORE_KEY) || [] const newProviders = defaultProviders.filter( (defaultProvider) => @@ -425,6 +428,38 @@ export class ConfigPresenter implements IConfigPresenter { } } + private migrateMinimaxProvider(): void { + const providers = this.getProviders() + const legacyMinimax = providers.find( + (provider) => + provider.id === 'minimax' && + (provider.apiType === 'openai' || provider.apiType === 'minimax') + ) + + if (!legacyMinimax) { + return + } + + const defaultMinimax = defaultProviders.find((provider) => provider.id === 'minimax') + if (!defaultMinimax) { + return + } + + const updatedProvider: LLM_PROVIDER = { + ...defaultMinimax, + apiKey: legacyMinimax.apiKey + } + + this.setProviderById('minimax', updatedProvider) + + if (providers.some((provider) => provider.id === 'minimax-an')) { + const filteredProviders = this.getProviders().filter( + (provider) => provider.id !== 'minimax-an' + ) + this.setProviders(filteredProviders) + } + } + getSetting(key: string): T | undefined { try { return this.store.get(key) as T @@ -1184,6 +1219,29 @@ export class ConfigPresenter implements IConfigPresenter { this.handleAcpAgentsMutated([agentId]) } + async getAgentMcpSelections(agentId: string, isBuiltin?: boolean): Promise { + return await this.acpConfHelper.getAgentMcpSelections(agentId, isBuiltin) + } + + async setAgentMcpSelections( + agentId: string, + isBuiltin: boolean, + mcpIds: string[] + ): Promise { + await this.acpConfHelper.setAgentMcpSelections(agentId, isBuiltin, mcpIds) + this.handleAcpAgentsMutated([agentId]) + } + + async addMcpToAgent(agentId: string, isBuiltin: boolean, mcpId: string): Promise { + await this.acpConfHelper.addMcpToAgent(agentId, isBuiltin, mcpId) + this.handleAcpAgentsMutated([agentId]) + } + + async removeMcpFromAgent(agentId: string, isBuiltin: boolean, mcpId: string): Promise { + await this.acpConfHelper.removeMcpFromAgent(agentId, isBuiltin, mcpId) + this.handleAcpAgentsMutated([agentId]) + } + private handleAcpAgentsMutated(agentIds?: string[]) { this.clearProviderModelStatusCache('acp') this.notifyAcpAgentsChanged() @@ -1475,7 +1533,12 @@ export class ConfigPresenter implements IConfigPresenter { // 获取更新渠道 getUpdateChannel(): string { - return this.getSetting('updateChannel') || 'stable' + const raw = this.getSetting('updateChannel') || 'stable' + const channel = raw === 'stable' || raw === 'beta' ? raw : 'beta' + if (channel !== raw) { + this.setSetting('updateChannel', channel) + } + return channel } // 设置更新渠道 diff --git a/src/main/presenter/configPresenter/mcpConfHelper.ts b/src/main/presenter/configPresenter/mcpConfHelper.ts index f0e1a6dfa..a3f65e464 100644 --- a/src/main/presenter/configPresenter/mcpConfHelper.ts +++ b/src/main/presenter/configPresenter/mcpConfHelper.ts @@ -2,7 +2,8 @@ import { eventBus, SendTarget } from '@/eventbus' import { MCPServerConfig } from '@shared/presenter' import { MCP_EVENTS } from '@/events' import ElectronStore from 'electron-store' -import { app } from 'electron' +// app is used in DEFAULT_INMEMORY_SERVERS but removed buildInFileSystem +// import { app } from 'electron' import { compare } from 'compare-versions' import { presenter } from '..' @@ -110,16 +111,7 @@ const PLATFORM_SPECIFIC_SERVERS: Record = { // Extract inmemory type services as constants const DEFAULT_INMEMORY_SERVERS: Record = { - buildInFileSystem: { - args: [app.getPath('home')], - descriptions: 'DeepChat内置文件系统mcp服务', - icons: '📁', - autoApprove: ['read'], - type: 'inmemory' as MCPServerType, - command: 'filesystem', - env: {}, - disable: true - }, + // buildInFileSystem has been removed - filesystem capabilities are now provided via Agent tools Artifacts: { args: [], descriptions: 'DeepChat内置 artifacts mcp服务', @@ -404,6 +396,7 @@ export class McpConfHelper { } // 遍历所有默认的inmemory服务,确保它们都存在 + // Note: buildInFileSystem is excluded as it's now provided via Agent tools for (const [serverName, serverConfig] of Object.entries(DEFAULT_INMEMORY_SERVERS)) { ensureBuiltInServerExists(serverName, serverConfig) } @@ -873,56 +866,51 @@ export class McpConfHelper { // 删除旧的defaultServer字段,防止重复迁移 this.mcpStore.delete('defaultServer') } + } - // 迁移 filesystem 服务器到 buildInFileSystem + // Migrate filesystem/buildInFileSystem servers - these are now provided via Agent tools + // Remove for all versions < 0.6.0 + if (oldVersion && compare(oldVersion, '0.6.0', '<')) { try { const mcpServers = this.mcpStore.get('mcpServers') || {} - // console.log('mcpServers', mcpServers) - if (mcpServers.filesystem) { - console.log( - 'Detected old version filesystem MCP server, starting migration to buildInFileSystem' - ) + const defaultServers = this.mcpStore.get('defaultServers') || [] + let hasChanges = false - // 检查 buildInFileSystem 是否已存在 - if (!mcpServers.buildInFileSystem) { - // 创建 buildInFileSystem 配置 - mcpServers.buildInFileSystem = { - args: [app.getPath('home')], // 默认值 - descriptions: '内置文件系统mcp服务', - icons: '💾', - autoApprove: ['read'], - type: 'inmemory' as MCPServerType, - command: 'filesystem', - env: {}, - disable: false - } - } + // Check if servers exist before deletion (for tracking) + const hadFilesystem = !!mcpServers.filesystem + const hadBuildInFileSystem = !!mcpServers.buildInFileSystem - // 如果 filesystem 的 args 长度大于 2,将第三个参数及以后的参数迁移 - if (mcpServers.filesystem.args && mcpServers.filesystem.args.length > 2) { - mcpServers.buildInFileSystem.args = mcpServers.filesystem.args.slice(2) - } + // Remove old filesystem server + if (mcpServers.filesystem) { + console.log('Removing old filesystem MCP server (now provided via Agent tools)') + delete mcpServers.filesystem + hasChanges = true + } - // 迁移 autoApprove 设置 - if (mcpServers.filesystem.autoApprove) { - mcpServers.buildInFileSystem.autoApprove = [...mcpServers.filesystem.autoApprove] - } + // Remove buildInFileSystem server + if (mcpServers.buildInFileSystem) { + console.log('Removing buildInFileSystem MCP server (now provided via Agent tools)') + delete mcpServers.buildInFileSystem + hasChanges = true + } - delete mcpServers.filesystem - // 更新 mcpServers - this.mcpStore.set('mcpServers', mcpServers) + // Remove from default servers list + const updatedDefaultServers = defaultServers.filter( + (name) => name !== 'filesystem' && name !== 'buildInFileSystem' + ) + if (updatedDefaultServers.length !== defaultServers.length) { + this.mcpStore.set('defaultServers', updatedDefaultServers) + hasChanges = true + } - // 如果 filesystem 是默认服务器,将 buildInFileSystem 添加到默认服务器列表 - const defaultServers = this.mcpStore.get('defaultServers') || [] - if ( - defaultServers.includes('filesystem') && - !defaultServers.includes('buildInFileSystem') - ) { - defaultServers.push('buildInFileSystem') - this.mcpStore.set('defaultServers', defaultServers) - } + // Mark as removed for tracking + if (hadFilesystem || hadBuildInFileSystem) { + this.markBuiltInServerRemoved('buildInFileSystem') + } - console.log('Migration from filesystem to buildInFileSystem completed') + if (hasChanges) { + this.mcpStore.set('mcpServers', mcpServers) + console.log('Migration: filesystem MCP servers removed (now available via Agent tools)') } } catch (error) { console.error('Error occurred while migrating filesystem server:', error) diff --git a/src/main/presenter/configPresenter/modelCapabilities.ts b/src/main/presenter/configPresenter/modelCapabilities.ts index 47afdbb35..97124f4e2 100644 --- a/src/main/presenter/configPresenter/modelCapabilities.ts +++ b/src/main/presenter/configPresenter/modelCapabilities.ts @@ -2,6 +2,7 @@ import { eventBus } from '@/eventbus' import { PROVIDER_DB_EVENTS } from '@/events' import { providerDbLoader } from './providerDbLoader' import { ProviderAggregate, ProviderModel } from '@shared/types/model-db' +import { resolveProviderId as resolveProviderIdAlias } from './providerId' export type ThinkingBudgetRange = { min?: number @@ -17,11 +18,6 @@ export type SearchDefaults = { export class ModelCapabilities { private index: Map> = new Map() - private static readonly PROVIDER_ID_ALIASES: Record = { - dashscope: 'alibaba-cn', - gemini: 'google', - vertex: 'google-vertex' - } constructor() { this.rebuildIndexFromDb() @@ -89,9 +85,8 @@ export class ModelCapabilities { } resolveProviderId(providerId: string | undefined): string | undefined { - if (!providerId) return undefined - const alias = ModelCapabilities.PROVIDER_ID_ALIASES[providerId] - return alias || providerId + const resolved = resolveProviderIdAlias(providerId) + return resolved } supportsReasoning(providerId: string, modelId: string): boolean { diff --git a/src/main/presenter/configPresenter/modelConfig.ts b/src/main/presenter/configPresenter/modelConfig.ts index 4c39334c7..269b6fc10 100644 --- a/src/main/presenter/configPresenter/modelConfig.ts +++ b/src/main/presenter/configPresenter/modelConfig.ts @@ -3,6 +3,7 @@ import { IModelConfig, ModelConfig, ModelConfigSource } from '@shared/presenter' import ElectronStore from 'electron-store' import { providerDbLoader } from './providerDbLoader' import { isImageInputSupported, ProviderModel } from '@shared/types/model-db' +import { resolveProviderId } from './providerId' const SPECIAL_CONCAT_CHAR = '-_-' @@ -20,10 +21,6 @@ export class ModelConfigHelper { private memoryCache: Map = new Map() private cacheInitialized: boolean = false private currentVersion: string - private static readonly PROVIDER_ID_ALIASES: Record = { - dashscope: 'alibaba-cn', - gemini: 'google' - } constructor(appVersion: string = '0.0.0') { this.modelConfigStore = new ElectronStore({ @@ -46,9 +43,7 @@ export class ModelConfigHelper { } private resolveProviderId(providerId: string | undefined): string | undefined { - if (!providerId) return undefined - const alias = ModelConfigHelper.PROVIDER_ID_ALIASES[providerId] - return alias || providerId + return resolveProviderId(providerId) } /** diff --git a/src/main/presenter/configPresenter/providerDbLoader.ts b/src/main/presenter/configPresenter/providerDbLoader.ts index 2693bb11c..0fc3ed170 100644 --- a/src/main/presenter/configPresenter/providerDbLoader.ts +++ b/src/main/presenter/configPresenter/providerDbLoader.ts @@ -7,6 +7,7 @@ import { ProviderModel, sanitizeAggregate } from '@shared/types/model-db' +import { resolveProviderId } from './providerId' import { eventBus, SendTarget } from '@/eventbus' import { PROVIDER_DB_EVENTS } from '@/events' @@ -66,7 +67,8 @@ export class ProviderDbLoader { getProvider(providerId: string): ProviderEntry | undefined { const db = this.getDb() if (!db) return undefined - return db.providers?.[providerId] + const resolvedId = resolveProviderId(providerId) + return db.providers?.[resolvedId ?? providerId] } getModel(providerId: string, modelId: string): ProviderModel | undefined { @@ -129,8 +131,8 @@ export class ProviderDbLoader { private getTtlHours(): number { const env = process.env.PROVIDER_DB_TTL_HOURS - const v = env ? Number(env) : 24 - return Number.isFinite(v) && v > 0 ? v : 24 + const v = env ? Number(env) : 12 + return Number.isFinite(v) && v > 0 ? v : 12 } private getProviderDbUrl(): string { diff --git a/src/main/presenter/configPresenter/providerId.ts b/src/main/presenter/configPresenter/providerId.ts new file mode 100644 index 000000000..fab541655 --- /dev/null +++ b/src/main/presenter/configPresenter/providerId.ts @@ -0,0 +1,17 @@ +const PROVIDER_ID_ALIASES: Record = { + dashscope: 'alibaba-cn', + gemini: 'google', + zhipu: 'zhipuai', + vertex: 'google-vertex', + together: 'togetherai', + github: 'github-models', + 'azure-openai': 'azure', + 'aws-bedrock': 'amazon-bedrock', + ppio: 'ppinfra', + fireworks: 'fireworks-ai' +} + +export const resolveProviderId = (providerId: string | undefined): string | undefined => { + if (!providerId) return undefined + return PROVIDER_ID_ALIASES[providerId] ?? providerId +} diff --git a/src/main/presenter/configPresenter/providers.ts b/src/main/presenter/configPresenter/providers.ts index b9ee0d10b..3a6493438 100644 --- a/src/main/presenter/configPresenter/providers.ts +++ b/src/main/presenter/configPresenter/providers.ts @@ -416,16 +416,16 @@ export const DEFAULT_PROVIDERS: LLM_PROVIDER_BASE[] = [ { id: 'minimax', name: 'MiniMax', - apiType: 'openai', + apiType: 'anthropic', apiKey: '', - baseUrl: 'https://api.minimax.chat/v1', + baseUrl: 'https://api.minimaxi.com/anthropic', enable: false, websites: { official: 'https://platform.minimaxi.com/', apiKey: 'https://platform.minimaxi.com/user-center/basic-information/interface-key', - docs: 'https://platform.minimaxi.com/document/Announcement', + docs: 'https://platform.minimax.io/docs/api-reference/text-anthropic-api', models: 'https://platform.minimaxi.com/document/Models', - defaultBaseUrl: 'https://api.minimax.chat/v1' + defaultBaseUrl: 'https://api.minimax.io/anthropic' } }, { diff --git a/src/main/presenter/configPresenter/shortcutKeySettings.ts b/src/main/presenter/configPresenter/shortcutKeySettings.ts index cf8ec8d2d..985691d9e 100644 --- a/src/main/presenter/configPresenter/shortcutKeySettings.ts +++ b/src/main/presenter/configPresenter/shortcutKeySettings.ts @@ -17,7 +17,8 @@ export const rendererShortcutKey = { DeleteConversation: `${CommandKey}+D`, SwitchNextTab: `${CommandKey}+Tab`, SwitchPrevTab: `${CommandKey}+${ShiftKey}+Tab`, - SwtichToLastTab: `${CommandKey}+9` + SwtichToLastTab: `${CommandKey}+9`, + NumberTabs: `${CommandKey}+1...8` } // System-level shortcut keys diff --git a/src/main/presenter/configPresenter/systemPromptHelper.ts b/src/main/presenter/configPresenter/systemPromptHelper.ts index 49f365b8d..18c2640f3 100644 --- a/src/main/presenter/configPresenter/systemPromptHelper.ts +++ b/src/main/presenter/configPresenter/systemPromptHelper.ts @@ -8,7 +8,7 @@ type SetSetting = (key: string, value: T) => void export const DEFAULT_SYSTEM_PROMPT = `You are DeepChat, a highly capable AI assistant. Your goal is to fully complete the user’s requested task before handing the conversation back to them. Keep working autonomously until the task is fully resolved. Be thorough in gathering information. Before replying, make sure you have all the details necessary to provide a complete solution. Use additional tools or ask clarifying questions when needed, but if you can find the answer on your own, avoid asking the user for help. When using tools, briefly describe your intended steps first—for example, which tool you’ll use and for what purpose. -Adhere to this in all languages.Always respond in the same language as the user's query.` +Adhere to this in all languages.Respond in the same language as the user's query.` type GetSetting = (key: string) => T | undefined diff --git a/src/main/presenter/index.ts b/src/main/presenter/index.ts index c638ee719..739173499 100644 --- a/src/main/presenter/index.ts +++ b/src/main/presenter/index.ts @@ -23,7 +23,8 @@ import { IThreadPresenter, IUpgradePresenter, IWindowPresenter, - IAcpWorkspacePresenter, + IWorkspacePresenter, + IToolPresenter, IYoBrowserPresenter } from '@shared/presenter' import { eventBus } from '@/eventbus' @@ -43,7 +44,8 @@ import { FloatingButtonPresenter } from './floatingButtonPresenter' import { YoBrowserPresenter } from './browser/YoBrowserPresenter' import { CONFIG_EVENTS, WINDOW_EVENTS } from '@/events' import { KnowledgePresenter } from './knowledgePresenter' -import { AcpWorkspacePresenter } from './acpWorkspacePresenter' +import { WorkspacePresenter } from './workspacePresenter' +import { ToolPresenter } from './toolPresenter' // IPC调用上下文接口 interface IPCCallContext { @@ -81,7 +83,8 @@ export class Presenter implements IPresenter { oauthPresenter: OAuthPresenter floatingButtonPresenter: FloatingButtonPresenter knowledgePresenter: IKnowledgePresenter - acpWorkspacePresenter: IAcpWorkspacePresenter + workspacePresenter: IWorkspacePresenter + toolPresenter: IToolPresenter yoBrowserPresenter: IYoBrowserPresenter // llamaCppPresenter: LlamaCppPresenter // 保留原始注释 dialogPresenter: IDialogPresenter @@ -126,8 +129,15 @@ export class Presenter implements IPresenter { this.filePresenter ) - // Initialize ACP Workspace presenter - this.acpWorkspacePresenter = new AcpWorkspacePresenter() + // Initialize generic Workspace presenter (for all Agent modes) + this.workspacePresenter = new WorkspacePresenter() + + // Initialize unified Tool presenter (for routing MCP and Agent tools) + this.toolPresenter = new ToolPresenter({ + mcpPresenter: this.mcpPresenter, + yoBrowserPresenter: this.yoBrowserPresenter, + configPresenter: this.configPresenter + }) // this.llamaCppPresenter = new LlamaCppPresenter() // 保留原始注释 this.setupEventBus() // 设置事件总线监听 @@ -150,9 +160,13 @@ export class Presenter implements IPresenter { // 设置特殊事件的处理逻辑 this.setupSpecialEventHandlers() - // 应用主窗口准备就绪时触发初始化 + // 应用主窗口准备就绪时触发初始化(只执行一次) + let initCalled = false eventBus.on(WINDOW_EVENTS.READY_TO_SHOW, () => { - this.init() + if (!initCalled) { + initCalled = true + this.init() + } }) } diff --git a/src/main/presenter/llmProviderPresenter/agent/acpProcessManager.ts b/src/main/presenter/llmProviderPresenter/agent/acpProcessManager.ts index 0ee653a51..827e5105a 100644 --- a/src/main/presenter/llmProviderPresenter/agent/acpProcessManager.ts +++ b/src/main/presenter/llmProviderPresenter/agent/acpProcessManager.ts @@ -19,7 +19,7 @@ import { buildClientCapabilities } from './acpCapabilities' import { AcpFsHandler } from './acpFsHandler' import { AcpTerminalManager } from './acpTerminalManager' import { eventBus, SendTarget } from '@/eventbus' -import { ACP_WORKSPACE_EVENTS } from '@/events' +import { ACP_WORKSPACE_EVENTS, WORKSPACE_EVENTS } from '@/events' export interface AcpProcessHandle extends AgentProcessHandle { child: ChildProcessWithoutNullStreams @@ -32,6 +32,7 @@ export interface AcpProcessHandle extends AgentProcessHandle { workdir: string availableModes?: Array<{ id: string; name: string; description: string }> currentModeId?: string + mcpCapabilities?: schema.McpCapabilities } interface AcpProcessManagerOptions { @@ -78,6 +79,7 @@ export class AcpProcessManager implements AgentProcessManager() + private readonly sessionConversations = new Map() private readonly fsHandlers = new Map() private readonly agentLocks = new Map>() private readonly preferredModes = new Map() @@ -94,8 +96,11 @@ export class AcpProcessManager implements AgentProcessManager currentModeId?: string } + agentCapabilities?: { + mcpCapabilities?: schema.McpCapabilities + } + } + + if (resultData.agentCapabilities?.mcpCapabilities) { + handleSeed.mcpCapabilities = resultData.agentCapabilities.mcpCapabilities + console.info('[ACP] MCP capabilities:', resultData.agentCapabilities.mcpCapabilities) } if (resultData.sessionId) { @@ -566,7 +589,8 @@ export class AcpProcessManager implements AgentProcessManager { @@ -837,11 +861,19 @@ export class AcpProcessManager implements AgentProcessManager { const handler = this.getFsHandler(params.sessionId) - return handler.readTextFile(params) + try { + return await handler.readTextFile(params) + } finally { + this.notifyWorkspaceFilesChanged(params.sessionId) + } }, writeTextFile: async (params) => { const handler = this.getFsHandler(params.sessionId) - return handler.writeTextFile(params) + try { + return await handler.writeTextFile(params) + } finally { + this.notifyWorkspaceFilesChanged(params.sessionId) + } }, // Terminal operations createTerminal: async (params) => { diff --git a/src/main/presenter/llmProviderPresenter/agent/acpSessionManager.ts b/src/main/presenter/llmProviderPresenter/agent/acpSessionManager.ts index a33417560..69f763bf7 100644 --- a/src/main/presenter/llmProviderPresenter/agent/acpSessionManager.ts +++ b/src/main/presenter/llmProviderPresenter/agent/acpSessionManager.ts @@ -1,5 +1,5 @@ import { app } from 'electron' -import type { AcpAgentConfig } from '@shared/presenter' +import type { AcpAgentConfig, IConfigPresenter } from '@shared/presenter' import type { AgentSessionState } from './types' import type { AcpProcessManager, @@ -9,11 +9,15 @@ import type { } from './acpProcessManager' import type { ClientSideConnection as ClientSideConnectionType } from '@agentclientprotocol/sdk' import { AcpSessionPersistence } from './acpSessionPersistence' +import { convertMcpConfigToAcpFormat } from './mcpConfigConverter' +import { filterMcpServersByTransportSupport } from './mcpTransportFilter' +import type * as schema from '@agentclientprotocol/sdk/dist/schema.js' interface AcpSessionManagerOptions { providerId: string processManager: AcpProcessManager sessionPersistence: AcpSessionPersistence + configPresenter: IConfigPresenter } interface SessionHooks { @@ -34,6 +38,7 @@ export class AcpSessionManager { private readonly providerId: string private readonly processManager: AcpProcessManager private readonly sessionPersistence: AcpSessionPersistence + private readonly configPresenter: IConfigPresenter private readonly sessionsByConversation = new Map() private readonly sessionsById = new Map() private readonly pendingSessions = new Map>() @@ -42,6 +47,7 @@ export class AcpSessionManager { this.providerId = options.providerId this.processManager = options.processManager this.sessionPersistence = options.sessionPersistence + this.configPresenter = options.configPresenter app.on('before-quit', () => { void this.clearAllSessions() @@ -181,7 +187,7 @@ export class AcpSessionManager { const detachListeners = this.attachSessionHooks(agent.id, session.sessionId, hooks) // Register session workdir for fs/terminal operations - this.processManager.registerSessionWorkdir(session.sessionId, workdir) + this.processManager.registerSessionWorkdir(session.sessionId, workdir, conversationId) void this.sessionPersistence .saveSessionData(conversationId, agent.id, session.sessionId, workdir, 'active', { @@ -267,9 +273,53 @@ export class AcpSessionManager { currentModeId?: string }> { try { + let mcpServers: schema.McpServer[] = [] + try { + const selections = await this.configPresenter.getAgentMcpSelections(agent.id) + if (selections.length > 0) { + const serverConfigs = await this.configPresenter.getMcpServers() + const converted = selections + .map((name) => { + const cfg = serverConfigs[name] + if (!cfg) return null + return convertMcpConfigToAcpFormat(name, cfg) + }) + .filter((item): item is schema.McpServer => Boolean(item)) + + mcpServers = filterMcpServersByTransportSupport(converted, handle.mcpCapabilities) + + if (converted.length !== mcpServers.length) { + console.info(`[ACP] Filtered MCP servers by transport support for agent ${agent.id}:`, { + selected: selections, + converted: converted.map((s) => + 'type' in s ? `${s.name}:${s.type}` : `${s.name}:stdio` + ), + passed: mcpServers.map((s) => + 'type' in s ? `${s.name}:${s.type}` : `${s.name}:stdio` + ) + }) + } else { + console.info(`[ACP] Passing MCP servers to agent ${agent.id}:`, { + selected: selections, + passed: mcpServers.map((s) => + 'type' in s ? `${s.name}:${s.type}` : `${s.name}:stdio` + ) + }) + } + } else { + console.info(`[ACP] No MCP selections for agent ${agent.id}; passing none.`) + } + } catch (error) { + console.warn( + `[ACP] Failed to resolve MCP servers for agent ${agent.id}; passing none.`, + error + ) + mcpServers = [] + } + const response = await handle.connection.newSession({ cwd: workdir, - mcpServers: [] + mcpServers }) // Extract modes from response if available diff --git a/src/main/presenter/llmProviderPresenter/agent/agentFileSystemHandler.ts b/src/main/presenter/llmProviderPresenter/agent/agentFileSystemHandler.ts new file mode 100644 index 000000000..2d5076be0 --- /dev/null +++ b/src/main/presenter/llmProviderPresenter/agent/agentFileSystemHandler.ts @@ -0,0 +1,959 @@ +import fs from 'fs/promises' +import path from 'path' +import os from 'os' +import { z } from 'zod' +import { minimatch } from 'minimatch' +import { createTwoFilesPatch } from 'diff' +import logger from '@shared/logger' +import { validateGlobPattern, validateRegexPattern } from '@shared/regexValidator' +import { spawn } from 'child_process' +import { RuntimeHelper } from '../../../lib/runtimeHelper' +import { glob } from 'glob' + +const ReadFileArgsSchema = z.object({ + paths: z.array(z.string()).min(1).describe('Array of file paths to read') +}) + +const WriteFileArgsSchema = z.object({ + path: z.string(), + content: z.string() +}) + +const ListDirectoryArgsSchema = z.object({ + path: z.string(), + showDetails: z.boolean().default(false), + sortBy: z.enum(['name', 'size', 'modified']).default('name') +}) + +const CreateDirectoryArgsSchema = z.object({ + path: z.string() +}) + +const MoveFilesArgsSchema = z.object({ + sources: z.array(z.string()).min(1), + destination: z.string() +}) + +const EditTextArgsSchema = z.object({ + path: z.string(), + operation: z.enum(['replace_pattern', 'edit_lines']), + pattern: z.string().optional(), + replacement: z.string().optional(), + global: z.boolean().default(true), + caseSensitive: z.boolean().default(false), + edits: z + .array( + z.object({ + oldText: z.string(), + newText: z.string() + }) + ) + .optional(), + dryRun: z.boolean().default(false) +}) + +const GlobSearchArgsSchema = z.object({ + pattern: z.string().describe('Glob pattern (e.g., **/*.ts, src/**/*.js)'), + root: z.string().optional().describe('Root directory for search (defaults to workspace root)'), + excludePatterns: z + .array(z.string()) + .optional() + .default([]) + .describe('Patterns to exclude (e.g., ["node_modules", ".git"])'), + maxResults: z.number().default(1000).describe('Maximum number of results to return'), + sortBy: z + .enum(['name', 'modified']) + .default('name') + .describe('Sort results by name or modification time') +}) + +const GrepSearchArgsSchema = z.object({ + path: z.string(), + pattern: z.string(), + filePattern: z.string().optional(), + recursive: z.boolean().default(true), + caseSensitive: z.boolean().default(false), + includeLineNumbers: z.boolean().default(true), + contextLines: z.number().default(0), + maxResults: z.number().default(100) +}) + +const TextReplaceArgsSchema = z.object({ + path: z.string(), + pattern: z.string(), + replacement: z.string(), + global: z.boolean().default(true), + caseSensitive: z.boolean().default(false), + dryRun: z.boolean().default(false) +}) + +const DirectoryTreeArgsSchema = z.object({ + path: z.string() +}) + +const GetFileInfoArgsSchema = z.object({ + path: z.string() +}) + +interface GrepMatch { + file: string + line: number + content: string + beforeContext?: string[] + afterContext?: string[] +} + +interface GrepResult { + totalMatches: number + files: string[] + matches: GrepMatch[] +} + +interface TextReplaceResult { + success: boolean + replacements: number + diff?: string + error?: string +} + +interface TreeEntry { + name: string + type: 'file' | 'directory' + children?: TreeEntry[] +} + +interface GlobMatch { + path: string + name: string + modified?: Date + size?: number +} + +export class AgentFileSystemHandler { + private allowedDirectories: string[] + + constructor(allowedDirectories: string[]) { + if (allowedDirectories.length === 0) { + throw new Error('At least one allowed directory must be provided') + } + this.allowedDirectories = allowedDirectories.map((dir) => + this.normalizePath(path.resolve(this.expandHome(dir))) + ) + } + + private normalizePath(p: string): string { + return path.normalize(p) + } + + private normalizeLineEndings(text: string): string { + return text.replace(/\r\n/g, '\n') + } + + private isPathAllowed(candidatePath: string): boolean { + return this.allowedDirectories.some((dir) => { + if (candidatePath === dir) return true + const dirWithSeparator = dir.endsWith(path.sep) ? dir : `${dir}${path.sep}` + return candidatePath.startsWith(dirWithSeparator) + }) + } + + private expandHome(filepath: string): string { + if (filepath.startsWith('~/') || filepath === '~') { + return path.join(os.homedir(), filepath.slice(1)) + } + return filepath + } + + private async validatePath(requestedPath: string): Promise { + const expandedPath = this.expandHome(requestedPath) + const absolute = path.isAbsolute(expandedPath) + ? path.resolve(expandedPath) + : path.resolve(process.cwd(), expandedPath) + const normalizedRequested = this.normalizePath(absolute) + const isAllowed = this.isPathAllowed(normalizedRequested) + if (!isAllowed) { + throw new Error( + `Access denied - path outside allowed directories: ${absolute} not in ${this.allowedDirectories.join(', ')}` + ) + } + try { + const realPath = await fs.realpath(absolute) + const normalizedReal = this.normalizePath(realPath) + const isRealPathAllowed = this.isPathAllowed(normalizedReal) + if (!isRealPathAllowed) { + throw new Error('Access denied - symlink target outside allowed directories') + } + return realPath + } catch { + const parentDir = path.dirname(absolute) + try { + const realParentPath = await fs.realpath(parentDir) + const normalizedParent = this.normalizePath(realParentPath) + const isParentAllowed = this.isPathAllowed(normalizedParent) + if (!isParentAllowed) { + throw new Error('Access denied - parent directory outside allowed directories') + } + return absolute + } catch { + throw new Error(`Parent directory does not exist: ${parentDir}`) + } + } + } + + private createUnifiedDiff(originalContent: string, newContent: string, filePath: string): string { + const normalizedOriginal = this.normalizeLineEndings(originalContent) + const normalizedNew = this.normalizeLineEndings(newContent) + return createTwoFilesPatch(filePath, filePath, normalizedOriginal, normalizedNew) + } + + private async getFileStats(filePath: string): Promise<{ + size: number + created: Date + modified: Date + accessed: Date + isDirectory: boolean + isFile: boolean + permissions: string + }> { + const stats = await fs.stat(filePath) + return { + size: stats.size, + created: stats.birthtime, + modified: stats.mtime, + accessed: stats.atime, + isDirectory: stats.isDirectory(), + isFile: stats.isFile(), + permissions: stats.mode.toString(8).slice(-3) + } + } + + private async runGrepSearch( + rootPath: string, + pattern: string, + options: { + filePattern?: string + recursive?: boolean + caseSensitive?: boolean + includeLineNumbers?: boolean + contextLines?: number + maxResults?: number + } = {} + ): Promise { + const { + filePattern, + recursive = true, + caseSensitive = false, + includeLineNumbers = true, + contextLines = 0, + maxResults = 100 + } = options + + // Validate pattern for ReDoS safety + validateRegexPattern(pattern) + + // Try to use ripgrep if available + const runtimeHelper = RuntimeHelper.getInstance() + runtimeHelper.initializeRuntimes() + const ripgrepPath = runtimeHelper.getRipgrepRuntimePath() + + if (ripgrepPath) { + try { + return await this.runRipgrepSearch(rootPath, pattern, { + filePattern, + recursive, + caseSensitive, + includeLineNumbers, + contextLines, + maxResults + }) + } catch (error) { + // Fall back to JavaScript implementation if ripgrep fails + logger.warn('[AgentFileSystemHandler] Ripgrep search failed, falling back to JS', { + error + }) + } + } + + // Fallback to JavaScript implementation + return this.runJavaScriptGrepSearch(rootPath, pattern, { + filePattern: filePattern || '*', + recursive, + caseSensitive, + includeLineNumbers, + contextLines, + maxResults + }) + } + + private async runRipgrepSearch( + rootPath: string, + pattern: string, + options: { + filePattern?: string + recursive?: boolean + caseSensitive?: boolean + includeLineNumbers?: boolean + contextLines?: number + maxResults?: number + } + ): Promise { + const { + filePattern, + recursive = true, + caseSensitive = false, + includeLineNumbers = true, + contextLines = 0, + maxResults = 100 + } = options + + const result: GrepResult = { + totalMatches: 0, + files: [], + matches: [] + } + + const runtimeHelper = RuntimeHelper.getInstance() + const ripgrepPath = runtimeHelper.getRipgrepRuntimePath() + if (!ripgrepPath) { + throw new Error('Ripgrep runtime path not found') + } + + const rgExecutable = + process.platform === 'win32' ? path.join(ripgrepPath, 'rg.exe') : path.join(ripgrepPath, 'rg') + + // Build ripgrep arguments + const args: string[] = [] + + // Search pattern + args.push('-e', pattern) + + // Case sensitivity + if (caseSensitive) { + args.push('--case-sensitive') + } else { + args.push('-i') + } + + // Context lines + if (contextLines > 0) { + args.push(`-C${contextLines}`) + } + + // Max count + args.push('-m', String(maxResults)) + + // File pattern (glob) + if (filePattern) { + args.push('-g', filePattern) + } + + // Recursive (default for rg, but add --no-recursive if not wanted) + if (!recursive) { + args.push('--no-recursive') + } + + // Output format with line numbers + args.push('--with-filename') + args.push('--line-number') + args.push('--no-heading') + + // Search path + const validatedPath = await this.validatePath(rootPath) + args.push(validatedPath) + + return new Promise((resolve, reject) => { + const ripgrep = spawn(rgExecutable, args, { + stdio: ['ignore', 'pipe', 'pipe'] + }) + + let stdout = '' + let stderr = '' + let settled = false + const timeout = setTimeout(() => { + if (settled) return + settled = true + ripgrep.kill('SIGKILL') + reject(new Error('Ripgrep search timed out after 30000ms')) + }, 30_000) + + ripgrep.stdout.on('data', (data) => { + stdout += data.toString() + }) + + ripgrep.stderr.on('data', (data) => { + stderr += data.toString() + }) + + ripgrep.on('close', (code) => { + if (settled) return + settled = true + clearTimeout(timeout) + if (code === 0 || code === 1) { + // 0 = matches found, 1 = no matches (both are OK) + // Parse ripgrep output + const lines = stdout.split('\n').filter((line) => line.trim()) + const currentFileMatches = new Map() + const uniqueFiles = new Set() + + for (const line of lines) { + // Parse ripgrep output format: file:line:content + const lastColonIndex = line.lastIndexOf(':') + const lineNumberSeparator = line.lastIndexOf(':', lastColonIndex - 1) + if (lineNumberSeparator !== -1 && lastColonIndex !== -1) { + const file = line.slice(0, lineNumberSeparator) + const lineNum = line.slice(lineNumberSeparator + 1, lastColonIndex) + const content = line.slice(lastColonIndex + 1) + if (!/^\d+$/.test(lineNum)) { + continue + } + uniqueFiles.add(file) + + const grepMatch: GrepMatch = { + file, + line: includeLineNumbers ? parseInt(lineNum, 10) : 0, + content + } + + if (!currentFileMatches.has(file)) { + currentFileMatches.set(file, []) + } + currentFileMatches.get(file)!.push(grepMatch) + result.totalMatches++ + } + } + + result.files = Array.from(uniqueFiles) + result.matches = Array.from(currentFileMatches.values()).flat() + + resolve(result) + } else { + reject(new Error(`Ripgrep failed with code ${code}: ${stderr}`)) + } + }) + + ripgrep.on('error', (error) => { + if (settled) return + settled = true + clearTimeout(timeout) + reject(new Error(`Ripgrep spawn error: ${error.message}`)) + }) + }) + } + + private async runJavaScriptGrepSearch( + rootPath: string, + pattern: string, + options: { + filePattern?: string + recursive?: boolean + caseSensitive?: boolean + includeLineNumbers?: boolean + contextLines?: number + maxResults?: number + } + ): Promise { + const { + filePattern = '*', + recursive = true, + caseSensitive = false, + includeLineNumbers = true, + contextLines = 0, + maxResults = 100 + } = options + + const result: GrepResult = { + totalMatches: 0, + files: [], + matches: [] + } + + const regexFlags = caseSensitive ? 'g' : 'gi' + let regex: RegExp + try { + regex = new RegExp(pattern, regexFlags) + } catch (error) { + throw new Error(`Invalid regular expression pattern: ${pattern}. Error: ${error}`) + } + + const searchInFile = async (filePath: string): Promise => { + try { + const content = await fs.readFile(filePath, 'utf-8') + const lines = content.split('\n') + const fileMatches: GrepMatch[] = [] + + for (let i = 0; i < lines.length; i++) { + const line = lines[i] + regex.lastIndex = 0 + const matches = Array.from(line.matchAll(regex)) + if (matches.length === 0) continue + + const match: GrepMatch = { + file: filePath, + line: includeLineNumbers ? i + 1 : 0, + content: line + } + + if (contextLines > 0) { + const startContext = Math.max(0, i - contextLines) + const endContext = Math.min(lines.length - 1, i + contextLines) + if (startContext < i) { + match.beforeContext = lines.slice(startContext, i) + } + if (endContext > i) { + match.afterContext = lines.slice(i + 1, endContext + 1) + } + } + + fileMatches.push(match) + result.totalMatches += matches.length + if (result.totalMatches >= maxResults) { + break + } + } + + if (fileMatches.length > 0) { + result.files.push(filePath) + result.matches.push(...fileMatches) + } + } catch { + // Skip unreadable files. + } + } + + const searchDirectory = async (currentPath: string): Promise => { + if (result.totalMatches >= maxResults) return + let entries + try { + entries = await fs.readdir(currentPath, { withFileTypes: true }) + } catch { + return + } + + for (const entry of entries) { + if (result.totalMatches >= maxResults) break + const fullPath = path.join(currentPath, entry.name) + try { + await this.validatePath(fullPath) + if (entry.isFile()) { + if (minimatch(entry.name, filePattern, { nocase: !caseSensitive })) { + await searchInFile(fullPath) + } + } else if (entry.isDirectory() && recursive) { + await searchDirectory(fullPath) + } + } catch { + continue + } + } + } + + const validatedPath = await this.validatePath(rootPath) + const stats = await fs.stat(validatedPath) + + if (stats.isFile()) { + if (minimatch(path.basename(validatedPath), filePattern, { nocase: true })) { + await searchInFile(validatedPath) + } + } else if (stats.isDirectory()) { + await searchDirectory(validatedPath) + } + + return result + } + + private async replaceTextInFile( + filePath: string, + pattern: string, + replacement: string, + options: { + global?: boolean + caseSensitive?: boolean + dryRun?: boolean + } = {} + ): Promise { + const { global = true, caseSensitive = false, dryRun = false } = options + try { + // Validate pattern for ReDoS safety before constructing RegExp + try { + validateRegexPattern(pattern) + } catch (error) { + return { + success: false, + replacements: 0, + error: error instanceof Error ? error.message : String(error) + } + } + + const originalContent = await fs.readFile(filePath, 'utf-8') + const normalizedOriginal = this.normalizeLineEndings(originalContent) + const regexFlags = global ? (caseSensitive ? 'g' : 'gi') : caseSensitive ? '' : 'i' + let regex: RegExp + try { + regex = new RegExp(pattern, regexFlags) + } catch (error) { + return { + success: false, + replacements: 0, + error: `Invalid regular expression pattern: ${pattern}. Error: ${error}` + } + } + + const modifiedContent = normalizedOriginal.replace(regex, replacement) + // Pattern already validated above, safe to create count regex + const countRegex = new RegExp(pattern, caseSensitive ? 'g' : 'gi') + const matches = Array.from(normalizedOriginal.matchAll(countRegex)) + const replacements = global ? matches.length : Math.min(1, matches.length) + + if (replacements === 0) { + return { + success: true, + replacements: 0, + diff: 'No matches found for the given pattern.' + } + } + + const diff = this.createUnifiedDiff(normalizedOriginal, modifiedContent, filePath) + if (!dryRun) { + await fs.writeFile(filePath, modifiedContent, 'utf-8') + } + + return { + success: true, + replacements, + diff + } + } catch (error) { + return { + success: false, + replacements: 0, + error: error instanceof Error ? error.message : String(error) + } + } + } + + async readFile(args: unknown): Promise { + const parsed = ReadFileArgsSchema.safeParse(args) + if (!parsed.success) { + throw new Error(`Invalid arguments: ${parsed.error}`) + } + const results = await Promise.all( + parsed.data.paths.map(async (filePath: string) => { + try { + const validPath = await this.validatePath(filePath) + const content = await fs.readFile(validPath, 'utf-8') + return `${filePath}:\n${content}\n` + } catch (error) { + const errorMessage = error instanceof Error ? error.message : String(error) + return `${filePath}: Error - ${errorMessage}` + } + }) + ) + return results.join('\n---\n') + } + + async writeFile(args: unknown): Promise { + const parsed = WriteFileArgsSchema.safeParse(args) + if (!parsed.success) { + throw new Error(`Invalid arguments: ${parsed.error}`) + } + const validPath = await this.validatePath(parsed.data.path) + await fs.writeFile(validPath, parsed.data.content, 'utf-8') + return `Successfully wrote to ${parsed.data.path}` + } + + async listDirectory(args: unknown): Promise { + const parsed = ListDirectoryArgsSchema.safeParse(args) + if (!parsed.success) { + throw new Error(`Invalid arguments: ${parsed.error}`) + } + const validPath = await this.validatePath(parsed.data.path) + const entries = await fs.readdir(validPath, { withFileTypes: true }) + const formatted = entries + .map((entry) => { + const prefix = entry.isDirectory() ? '[DIR]' : '[FILE]' + return `${prefix} ${entry.name}` + }) + .join('\n') + return `Directory listing for ${parsed.data.path}:\n\n${formatted}` + } + + async createDirectory(args: unknown): Promise { + const parsed = CreateDirectoryArgsSchema.safeParse(args) + if (!parsed.success) { + throw new Error(`Invalid arguments: ${parsed.error}`) + } + const validPath = await this.validatePath(parsed.data.path) + await fs.mkdir(validPath, { recursive: true }) + return `Successfully created directory ${parsed.data.path}` + } + + async moveFiles(args: unknown): Promise { + const parsed = MoveFilesArgsSchema.safeParse(args) + if (!parsed.success) { + throw new Error(`Invalid arguments: ${parsed.error}`) + } + const results = await Promise.all( + parsed.data.sources.map(async (source) => { + const validSourcePath = await this.validatePath(source) + const validDestPath = await this.validatePath( + path.join(parsed.data.destination, path.basename(source)) + ) + try { + await fs.rename(validSourcePath, validDestPath) + return `Successfully moved ${source} to ${parsed.data.destination}` + } catch (e) { + return `Move ${source} failed: ${JSON.stringify(e)}` + } + }) + ) + return results.join('\n') + } + + async editText(args: unknown): Promise { + const parsed = EditTextArgsSchema.safeParse(args) + if (!parsed.success) { + throw new Error(`Invalid arguments: ${parsed.error}`) + } + const validPath = await this.validatePath(parsed.data.path) + const content = await fs.readFile(validPath, 'utf-8') + let modifiedContent = content + + if (parsed.data.operation === 'edit_lines' && parsed.data.edits) { + for (const edit of parsed.data.edits) { + if (!modifiedContent.includes(edit.oldText)) { + throw new Error(`Cannot find exact matching content: ${edit.oldText}`) + } + modifiedContent = modifiedContent.replace(edit.oldText, edit.newText) + } + } else if (parsed.data.operation === 'replace_pattern' && parsed.data.pattern) { + // Validate pattern for ReDoS safety before constructing RegExp + try { + validateRegexPattern(parsed.data.pattern) + } catch (error) { + throw new Error( + error instanceof Error ? error.message : `Invalid pattern: ${String(error)}` + ) + } + + const flags = parsed.data.caseSensitive ? 'g' : 'gi' + const regex = new RegExp(parsed.data.pattern, flags) + modifiedContent = modifiedContent.replace(regex, parsed.data.replacement || '') + } + + const diff = createTwoFilesPatch(validPath, validPath, content, modifiedContent) + if (!parsed.data.dryRun) { + await fs.writeFile(validPath, modifiedContent, 'utf-8') + } + return diff + } + + async grepSearch(args: unknown): Promise { + const parsed = GrepSearchArgsSchema.safeParse(args) + if (!parsed.success) { + throw new Error(`Invalid arguments: ${parsed.error}`) + } + + const validPath = await this.validatePath(parsed.data.path) + const result = await this.runGrepSearch(validPath, parsed.data.pattern, { + filePattern: parsed.data.filePattern, + recursive: parsed.data.recursive, + caseSensitive: parsed.data.caseSensitive, + includeLineNumbers: parsed.data.includeLineNumbers, + contextLines: parsed.data.contextLines, + maxResults: parsed.data.maxResults + }) + + if (result.totalMatches === 0) { + return 'No matches found' + } + + const formattedResults = result.matches + .map((match) => { + let output = `${match.file}:${match.line}: ${match.content}` + if (match.beforeContext && match.beforeContext.length > 0) { + const beforeLines = match.beforeContext + .map( + (line, i) => `${match.file}:${match.line - match.beforeContext!.length + i}: ${line}` + ) + .join('\n') + output = beforeLines + '\n' + output + } + if (match.afterContext && match.afterContext.length > 0) { + const afterLines = match.afterContext + .map((line, i) => `${match.file}:${match.line + i + 1}: ${line}`) + .join('\n') + output = output + '\n' + afterLines + } + return output + }) + .join('\n--\n') + + return `Found ${result.totalMatches} matches in ${result.files.length} files:\n\n${formattedResults}` + } + + async textReplace(args: unknown): Promise { + const parsed = TextReplaceArgsSchema.safeParse(args) + if (!parsed.success) { + throw new Error(`Invalid arguments: ${parsed.error}`) + } + + const validPath = await this.validatePath(parsed.data.path) + const result = await this.replaceTextInFile( + validPath, + parsed.data.pattern, + parsed.data.replacement, + { + global: parsed.data.global, + caseSensitive: parsed.data.caseSensitive, + dryRun: parsed.data.dryRun + } + ) + + return result.success ? result.diff || '' : result.error || 'Text replacement failed' + } + + async directoryTree(args: unknown): Promise { + const parsed = DirectoryTreeArgsSchema.safeParse(args) + if (!parsed.success) { + throw new Error(`Invalid arguments: ${parsed.error}`) + } + + const buildTree = async (currentPath: string): Promise => { + const validPath = await this.validatePath(currentPath) + const entries = await fs.readdir(validPath, { withFileTypes: true }) + const result: TreeEntry[] = [] + + for (const entry of entries) { + const entryData: TreeEntry = { + name: entry.name, + type: entry.isDirectory() ? 'directory' : 'file' + } + + if (entry.isDirectory()) { + const subPath = path.join(currentPath, entry.name) + entryData.children = await buildTree(subPath) + } + + result.push(entryData) + } + + return result + } + + const treeData = await buildTree(parsed.data.path) + return JSON.stringify(treeData, null, 2) + } + + async getFileInfo(args: unknown): Promise { + const parsed = GetFileInfoArgsSchema.safeParse(args) + if (!parsed.success) { + throw new Error(`Invalid arguments: ${parsed.error}`) + } + + const validPath = await this.validatePath(parsed.data.path) + const info = await this.getFileStats(validPath) + return Object.entries(info) + .map(([key, value]) => `${key}: ${value}`) + .join('\n') + } + + async globSearch(args: unknown): Promise { + const parsed = GlobSearchArgsSchema.safeParse(args) + if (!parsed.success) { + throw new Error(`Invalid arguments: ${parsed.error}`) + } + + const { pattern, root, excludePatterns = [], maxResults = 1000, sortBy = 'name' } = parsed.data + validateGlobPattern(pattern) + + // Determine root directory + const searchRoot = root ? await this.validatePath(root) : this.allowedDirectories[0] + + // Default exclusions + const defaultExclusions = [ + '**/node_modules/**', + '**/.git/**', + '**/dist/**', + '**/build/**', + '**/.next/**' + ] + const allExclusions = [...defaultExclusions, ...excludePatterns] + + // Use glob library for fast file matching + const globOptions = { + cwd: searchRoot, + ignore: allExclusions, + absolute: true, + nodir: true, + maxResults: maxResults + 100 // Get extra results for filtering + } + + try { + const matches = await glob(pattern, globOptions) + + // Filter matches to ensure they're in allowed directories + const validMatches = await Promise.all( + matches.map(async (filePath) => { + try { + await this.validatePath(filePath) + return filePath + } catch { + return null + } + }) + ) + + const filteredMatches = validMatches.filter((match): match is string => match !== null) + + // Get file stats for sorting + const matchesWithStats: GlobMatch[] = await Promise.all( + filteredMatches.slice(0, maxResults).map(async (filePath) => { + try { + const stats = await fs.stat(filePath) + return { + path: filePath, + name: path.basename(filePath), + modified: stats.mtime, + size: stats.size + } + } catch { + return { + path: filePath, + name: path.basename(filePath) + } + } + }) + ) + + // Sort results + if (sortBy === 'modified') { + matchesWithStats.sort((a, b) => { + const aTime = a.modified?.getTime() || 0 + const bTime = b.modified?.getTime() || 0 + return bTime - aTime // Descending (newest first) + }) + } else { + // Sort by name (default) + matchesWithStats.sort((a, b) => a.path.localeCompare(b.path)) + } + + // Format output + const formatted = matchesWithStats.map((match) => { + let output = match.path + if (match.modified !== undefined && sortBy === 'modified') { + output += ` (${match.modified.toISOString()})` + } + if (match.size !== undefined) { + output += ` [${match.size} bytes]` + } + return output + }) + + return `Found ${formatted.length} files matching pattern "${pattern}":\n\n${formatted.join('\n')}` + } catch (error) { + throw new Error( + `Glob search failed: ${error instanceof Error ? error.message : String(error)}` + ) + } + } +} diff --git a/src/main/presenter/llmProviderPresenter/agent/agentToolManager.ts b/src/main/presenter/llmProviderPresenter/agent/agentToolManager.ts new file mode 100644 index 000000000..258438c36 --- /dev/null +++ b/src/main/presenter/llmProviderPresenter/agent/agentToolManager.ts @@ -0,0 +1,466 @@ +import type { MCPToolDefinition } from '@shared/presenter' +import type { IYoBrowserPresenter } from '@shared/presenter' +import { zodToJsonSchema } from 'zod-to-json-schema' +import { z } from 'zod' +import fs from 'fs' +import path from 'path' +import { app } from 'electron' +import logger from '@shared/logger' +import { AgentFileSystemHandler } from './agentFileSystemHandler' + +interface AgentToolManagerOptions { + yoBrowserPresenter: IYoBrowserPresenter + agentWorkspacePath: string | null +} + +export class AgentToolManager { + private readonly yoBrowserPresenter: IYoBrowserPresenter + private agentWorkspacePath: string | null + private fileSystemHandler: AgentFileSystemHandler | null = null + private readonly fileSystemSchemas = { + read_file: z.object({ + paths: z.array(z.string()).min(1) + }), + write_file: z.object({ + path: z.string(), + content: z.string() + }), + list_directory: z.object({ + path: z.string(), + showDetails: z.boolean().default(false), + sortBy: z.enum(['name', 'size', 'modified']).default('name') + }), + create_directory: z.object({ + path: z.string() + }), + move_files: z.object({ + sources: z.array(z.string()).min(1), + destination: z.string() + }), + edit_text: z.object({ + path: z.string(), + operation: z.enum(['replace_pattern', 'edit_lines']), + pattern: z + .string() + .max(1000) + .describe( + 'Regular expression pattern (max 1000 characters, must be safe and not cause ReDoS). Required when operation is "replace_pattern"' + ) + .optional(), + replacement: z.string().optional(), + global: z.boolean().default(true), + caseSensitive: z.boolean().default(false), + edits: z + .array( + z.object({ + oldText: z.string(), + newText: z.string() + }) + ) + .optional(), + dryRun: z.boolean().default(false) + }), + glob_search: z.object({ + pattern: z.string().describe('Glob pattern (e.g., **/*.ts, src/**/*.js)'), + root: z + .string() + .optional() + .describe('Root directory for search (defaults to workspace root)'), + excludePatterns: z + .array(z.string()) + .optional() + .default([]) + .describe('Patterns to exclude (e.g., ["node_modules", ".git"])'), + maxResults: z.number().default(1000).describe('Maximum number of results to return'), + sortBy: z + .enum(['name', 'modified']) + .default('name') + .describe('Sort results by name or modification time') + }), + grep_search: z.object({ + path: z.string(), + pattern: z + .string() + .max(1000) + .describe( + 'Regular expression pattern (max 1000 characters, must be safe and not cause ReDoS)' + ), + filePattern: z.string().optional(), + recursive: z.boolean().default(true), + caseSensitive: z.boolean().default(false), + includeLineNumbers: z.boolean().default(true), + contextLines: z.number().default(0), + maxResults: z.number().default(100) + }), + text_replace: z.object({ + path: z.string(), + pattern: z + .string() + .max(1000) + .describe( + 'Regular expression pattern (max 1000 characters, must be safe and not cause ReDoS)' + ), + replacement: z.string(), + global: z.boolean().default(true), + caseSensitive: z.boolean().default(false), + dryRun: z.boolean().default(false) + }), + directory_tree: z.object({ + path: z.string() + }), + get_file_info: z.object({ + path: z.string() + }) + } + + constructor(options: AgentToolManagerOptions) { + this.yoBrowserPresenter = options.yoBrowserPresenter + this.agentWorkspacePath = options.agentWorkspacePath + if (this.agentWorkspacePath) { + this.fileSystemHandler = new AgentFileSystemHandler([this.agentWorkspacePath]) + } + } + + /** + * Get all Agent tool definitions in MCP format + */ + async getAllToolDefinitions(context: { + chatMode: 'chat' | 'agent' | 'acp agent' + supportsVision: boolean + agentWorkspacePath: string | null + }): Promise { + const defs: MCPToolDefinition[] = [] + const isAgentMode = context.chatMode === 'agent' + const effectiveWorkspacePath = isAgentMode + ? context.agentWorkspacePath?.trim() || this.getDefaultAgentWorkspacePath() + : null + + // Update filesystem handler if workspace path changed + if (effectiveWorkspacePath !== this.agentWorkspacePath) { + if (effectiveWorkspacePath) { + this.fileSystemHandler = new AgentFileSystemHandler([effectiveWorkspacePath]) + } else { + this.fileSystemHandler = null + } + this.agentWorkspacePath = effectiveWorkspacePath + } + + // 1. Yo Browser tools (agent mode only) + if (isAgentMode) { + try { + const yoDefs = await this.yoBrowserPresenter.getToolDefinitions(context.supportsVision) + defs.push(...yoDefs) + } catch (error) { + logger.warn('[AgentToolManager] Failed to load Yo Browser tool definitions', { error }) + } + } + + // 2. FileSystem tools (agent mode only) + if (isAgentMode && this.fileSystemHandler) { + const fsDefs = this.getFileSystemToolDefinitions() + defs.push(...fsDefs) + } + + return defs + } + + /** + * Call an Agent tool + */ + async callTool(toolName: string, args: Record): Promise { + // Route to Yo Browser tools + if (toolName.startsWith('browser_')) { + const response = await this.yoBrowserPresenter.callTool( + toolName, + args as Record + ) + return typeof response === 'string' ? response : JSON.stringify(response) + } + + // Route to FileSystem tools + if (this.isFileSystemTool(toolName)) { + if (!this.fileSystemHandler) { + throw new Error(`FileSystem handler not initialized for tool: ${toolName}`) + } + return await this.callFileSystemTool(toolName, args) + } + + throw new Error(`Unknown Agent tool: ${toolName}`) + } + + private getFileSystemToolDefinitions(): MCPToolDefinition[] { + const schemas = this.fileSystemSchemas + return [ + { + type: 'function', + function: { + name: 'read_file', + description: 'Read the contents of one or more files', + parameters: zodToJsonSchema(schemas.read_file) as { + type: string + properties: Record + required?: string[] + } + }, + server: { + name: 'agent-filesystem', + icons: '📁', + description: 'Agent FileSystem tools' + } + }, + { + type: 'function', + function: { + name: 'write_file', + description: 'Write content to a file', + parameters: zodToJsonSchema(schemas.write_file) as { + type: string + properties: Record + required?: string[] + } + }, + server: { + name: 'agent-filesystem', + icons: '📁', + description: 'Agent FileSystem tools' + } + }, + { + type: 'function', + function: { + name: 'list_directory', + description: 'List files and directories in a path', + parameters: zodToJsonSchema(schemas.list_directory) as { + type: string + properties: Record + required?: string[] + } + }, + server: { + name: 'agent-filesystem', + icons: '📁', + description: 'Agent FileSystem tools' + } + }, + { + type: 'function', + function: { + name: 'create_directory', + description: 'Create a directory', + parameters: zodToJsonSchema(schemas.create_directory) as { + type: string + properties: Record + required?: string[] + } + }, + server: { + name: 'agent-filesystem', + icons: '📁', + description: 'Agent FileSystem tools' + } + }, + { + type: 'function', + function: { + name: 'move_files', + description: 'Move or rename files and directories', + parameters: zodToJsonSchema(schemas.move_files) as { + type: string + properties: Record + required?: string[] + } + }, + server: { + name: 'agent-filesystem', + icons: '📁', + description: 'Agent FileSystem tools' + } + }, + { + type: 'function', + function: { + name: 'edit_text', + description: + 'Edit text files using pattern replacement or line-based editing. When using "replace_pattern" operation, the pattern must be safe and not exceed 1000 characters to prevent ReDoS (Regular Expression Denial of Service) attacks.', + parameters: zodToJsonSchema(schemas.edit_text) as { + type: string + properties: Record + required?: string[] + } + }, + server: { + name: 'agent-filesystem', + icons: '📁', + description: 'Agent FileSystem tools' + } + }, + { + type: 'function', + function: { + name: 'glob_search', + description: + 'Search for files using glob patterns (e.g., **/*.ts, src/**/*.js). Automatically excludes common directories like node_modules and .git.', + parameters: zodToJsonSchema(schemas.glob_search) as { + type: string + properties: Record + required?: string[] + } + }, + server: { + name: 'agent-filesystem', + icons: '📁', + description: 'Agent FileSystem tools' + } + }, + { + type: 'function', + function: { + name: 'directory_tree', + description: 'Get a recursive directory tree as JSON', + parameters: zodToJsonSchema(schemas.directory_tree) as { + type: string + properties: Record + required?: string[] + } + }, + server: { + name: 'agent-filesystem', + icons: '📁', + description: 'Agent FileSystem tools' + } + }, + { + type: 'function', + function: { + name: 'get_file_info', + description: 'Get detailed metadata about a file or directory', + parameters: zodToJsonSchema(schemas.get_file_info) as { + type: string + properties: Record + required?: string[] + } + }, + server: { + name: 'agent-filesystem', + icons: '📁', + description: 'Agent FileSystem tools' + } + }, + { + type: 'function', + function: { + name: 'grep_search', + description: + 'Search file contents using a regular expression. The pattern must be safe and not exceed 1000 characters to prevent ReDoS (Regular Expression Denial of Service) attacks.', + parameters: zodToJsonSchema(schemas.grep_search) as { + type: string + properties: Record + required?: string[] + } + }, + server: { + name: 'agent-filesystem', + icons: '📁', + description: 'Agent FileSystem tools' + } + }, + { + type: 'function', + function: { + name: 'text_replace', + description: + 'Replace text in a file using a regular expression. The pattern must be safe and not exceed 1000 characters to prevent ReDoS (Regular Expression Denial of Service) attacks.', + parameters: zodToJsonSchema(schemas.text_replace) as { + type: string + properties: Record + required?: string[] + } + }, + server: { + name: 'agent-filesystem', + icons: '📁', + description: 'Agent FileSystem tools' + } + } + ] + } + + private isFileSystemTool(toolName: string): boolean { + const filesystemTools = [ + 'read_file', + 'write_file', + 'list_directory', + 'create_directory', + 'move_files', + 'edit_text', + 'glob_search', + 'directory_tree', + 'get_file_info', + 'grep_search', + 'text_replace' + ] + return filesystemTools.includes(toolName) + } + + private async callFileSystemTool( + toolName: string, + args: Record + ): Promise { + if (!this.fileSystemHandler) { + throw new Error('FileSystem handler not initialized') + } + + const schema = this.fileSystemSchemas[toolName as keyof typeof this.fileSystemSchemas] + if (!schema) { + throw new Error(`No schema found for FileSystem tool: ${toolName}`) + } + + const validationResult = schema.safeParse(args) + if (!validationResult.success) { + throw new Error(`Invalid arguments for ${toolName}: ${validationResult.error.message}`) + } + + const parsedArgs = validationResult.data + + switch (toolName) { + case 'read_file': + return await this.fileSystemHandler.readFile(parsedArgs) + case 'write_file': + return await this.fileSystemHandler.writeFile(parsedArgs) + case 'list_directory': + return await this.fileSystemHandler.listDirectory(parsedArgs) + case 'create_directory': + return await this.fileSystemHandler.createDirectory(parsedArgs) + case 'move_files': + return await this.fileSystemHandler.moveFiles(parsedArgs) + case 'edit_text': + return await this.fileSystemHandler.editText(parsedArgs) + case 'glob_search': + return await this.fileSystemHandler.globSearch(parsedArgs) + case 'directory_tree': + return await this.fileSystemHandler.directoryTree(parsedArgs) + case 'get_file_info': + return await this.fileSystemHandler.getFileInfo(parsedArgs) + case 'grep_search': + return await this.fileSystemHandler.grepSearch(parsedArgs) + case 'text_replace': + return await this.fileSystemHandler.textReplace(parsedArgs) + default: + throw new Error(`Unknown FileSystem tool: ${toolName}`) + } + } + + private getDefaultAgentWorkspacePath(): string { + const tempDir = path.join(app.getPath('temp'), 'deepchat-agent', 'workspaces') + try { + fs.mkdirSync(tempDir, { recursive: true }) + } catch (error) { + logger.warn( + '[AgentToolManager] Failed to create default workspace, using system temp:', + error + ) + return app.getPath('temp') + } + return tempDir + } +} diff --git a/src/main/presenter/llmProviderPresenter/agent/mcpConfigConverter.ts b/src/main/presenter/llmProviderPresenter/agent/mcpConfigConverter.ts new file mode 100644 index 000000000..d6ff4ab49 --- /dev/null +++ b/src/main/presenter/llmProviderPresenter/agent/mcpConfigConverter.ts @@ -0,0 +1,59 @@ +import type * as schema from '@agentclientprotocol/sdk/dist/schema.js' +import type { MCPServerConfig } from '@shared/presenter' + +const normalizeStringRecordToArray = ( + record: Record | undefined | null +): Array<{ name: string; value: string }> => { + if (!record || typeof record !== 'object') return [] + return Object.entries(record) + .map(([name, value]) => ({ + name: name?.toString().trim(), + value: typeof value === 'string' ? value : String(value ?? '') + })) + .filter((entry) => entry.name.length > 0) +} + +const normalizeHeaders = ( + record: Record | undefined | null +): Array<{ name: string; value: string }> => { + if (!record || typeof record !== 'object') return [] + return Object.entries(record) + .map(([name, value]) => ({ + name: name?.toString().trim(), + value: value?.toString() ?? '' + })) + .filter((entry) => entry.name.length > 0) +} + +export function convertMcpConfigToAcpFormat( + serverName: string, + config: MCPServerConfig +): schema.McpServer | null { + if (!config || !serverName) return null + + if (config.type === 'inmemory') { + return null + } + + if (config.type === 'stdio') { + return { + name: serverName, + command: config.command, + args: Array.isArray(config.args) ? config.args : [], + env: normalizeStringRecordToArray(config.env) + } + } + + if (config.type === 'http' || config.type === 'sse') { + const url = config.baseUrl?.toString().trim() + if (!url) return null + return { + type: config.type, + name: serverName, + url, + headers: normalizeHeaders(config.customHeaders) + } + } + + return null +} diff --git a/src/main/presenter/llmProviderPresenter/agent/mcpTransportFilter.ts b/src/main/presenter/llmProviderPresenter/agent/mcpTransportFilter.ts new file mode 100644 index 000000000..f2cda9838 --- /dev/null +++ b/src/main/presenter/llmProviderPresenter/agent/mcpTransportFilter.ts @@ -0,0 +1,23 @@ +import type * as schema from '@agentclientprotocol/sdk/dist/schema.js' + +export function filterMcpServersByTransportSupport( + servers: schema.McpServer[], + mcpCapabilities?: schema.McpCapabilities +): schema.McpServer[] { + if (!Array.isArray(servers) || servers.length === 0) return [] + + return servers.filter((server) => { + if ('type' in server) { + if (server.type === 'http') { + return Boolean(mcpCapabilities?.http) + } + if (server.type === 'sse') { + return Boolean(mcpCapabilities?.sse) + } + return false + } + + // Stdio transport: all agents must support it. + return true + }) +} diff --git a/src/main/presenter/llmProviderPresenter/baseProvider.ts b/src/main/presenter/llmProviderPresenter/baseProvider.ts index 86b32dad4..0d8f646f7 100644 --- a/src/main/presenter/llmProviderPresenter/baseProvider.ts +++ b/src/main/presenter/llmProviderPresenter/baseProvider.ts @@ -14,6 +14,7 @@ import { DevicePresenter } from '../devicePresenter' import { jsonrepair } from 'jsonrepair' import { eventBus, SendTarget } from '@/eventbus' import { CONFIG_EVENTS } from '@/events' +import logger from '@shared/logger' /** * Base LLM Provider Abstract Class @@ -29,7 +30,7 @@ import { CONFIG_EVENTS } from '@/events' */ export abstract class BaseLLMProvider { // Maximum tool calls limit in a single conversation turn - protected static readonly MAX_TOOL_CALLS = 50 + protected static readonly MAX_TOOL_CALLS = 200 protected static readonly DEFAULT_MODEL_FETCH_TIMEOUT = 12000 // Increased to 12 seconds as universal default protected provider: LLM_PROVIDER @@ -78,7 +79,7 @@ export abstract class BaseLLMProvider { const cachedModels = this.configPresenter.getProviderModels(this.provider.id) if (cachedModels && cachedModels.length > 0) { this.models = cachedModels - console.info( + logger.info( `Loaded ${cachedModels.length} cached models for provider: ${this.provider.name}` ) } @@ -87,12 +88,12 @@ export abstract class BaseLLMProvider { const cachedCustomModels = this.configPresenter.getCustomModels(this.provider.id) if (cachedCustomModels && cachedCustomModels.length > 0) { this.customModels = cachedCustomModels - console.info( + logger.info( `Loaded ${cachedCustomModels.length} cached custom models for provider: ${this.provider.name}` ) } } catch (error) { - console.warn(`Failed to load cached models for provider: ${this.provider.name}`, error) + logger.warn(`Failed to load cached models for provider: ${this.provider.name}`, error) // Keep default empty arrays if loading fails this.models = [] this.customModels = [] @@ -112,15 +113,15 @@ export abstract class BaseLLMProvider { return this.autoEnableModelsIfNeeded() }) .then(() => { - console.info('Provider initialized successfully:', this.provider.name) + logger.info('Provider initialized successfully:', this.provider.name) }) .catch((error) => { // Handle errors from fetchModels() and autoEnableModelsIfNeeded() - console.warn('Provider initialization failed:', this.provider.name, error) + logger.warn('Provider initialization failed:', this.provider.name, error) }) // Check if we need to automatically enable all models } catch (error) { - console.warn('Provider initialization failed:', this.provider.name, error) + logger.warn('Provider initialization failed:', this.provider.name, error) } } } @@ -149,7 +150,7 @@ export abstract class BaseLLMProvider { // 不再自动启用模型,让用户手动选择启用需要的模型 if (!hasEnabledModels) { - console.info( + logger.info( `Provider ${this.provider.name} models loaded, please manually enable the models you need` ) } @@ -162,13 +163,13 @@ export abstract class BaseLLMProvider { public async fetchModels(): Promise { try { return this.fetchProviderModels().then((models) => { - console.log( + logger.info( `[Provider] fetchModels: fetched ${models?.length || 0} models for provider "${this.provider.id}"` ) // Validate that all models have correct providerId const validatedModels = models.map((model) => { if (model.providerId !== this.provider.id) { - console.warn( + logger.warn( `[Provider] fetchModels: Model ${model.id} has incorrect providerId: expected "${this.provider.id}", got "${model.providerId}". Fixing it.` ) model.providerId = this.provider.id @@ -180,7 +181,7 @@ export abstract class BaseLLMProvider { return validatedModels }) } catch (e) { - console.error( + logger.error( `[Provider] fetchModels: Failed to fetch models for provider "${this.provider.id}":`, e ) @@ -197,12 +198,12 @@ export abstract class BaseLLMProvider { * @returns 模型列表 */ public async refreshModels(): Promise { - console.log( + logger.info( `[Provider] refreshModels: force refreshing models for provider "${this.provider.id}" (${this.provider.name})` ) await this.fetchModels() await this.autoEnableModelsIfNeeded() - console.log( + logger.info( `[Provider] refreshModels: sending MODEL_LIST_CHANGED event for provider "${this.provider.id}"` ) eventBus.sendToRenderer( @@ -470,7 +471,7 @@ ${this.convertToolsToXml(tools)} parsedCall = JSON.parse(jsonrepair(content)) } catch (repairError) { // 记录错误日志但不中断处理 - console.error('Failed to parse with jsonrepair:', repairError) + logger.error('Failed to parse with jsonrepair:', repairError) return null } } @@ -513,7 +514,7 @@ ${this.convertToolsToXml(tools)} // 如果仍未找到格式,记录错误 if (!functionName || functionArgs === undefined) { - console.error('Unknown function call format:', parsedCall) + logger.error('Unknown function call format:', parsedCall) return null } } @@ -532,7 +533,7 @@ ${this.convertToolsToXml(tools)} } } } catch (parseError) { - console.error('Error parsing function call JSON:', parseError, match, content) + logger.error('Error parsing function call JSON:', parseError, match, content) return null } }) @@ -540,7 +541,7 @@ ${this.convertToolsToXml(tools)} return toolCalls } catch (error) { - console.error('Error parsing function calls:', error) + logger.error('Error parsing function calls:', error) return [] } } diff --git a/src/main/presenter/llmProviderPresenter/managers/agentLoopHandler.ts b/src/main/presenter/llmProviderPresenter/managers/agentLoopHandler.ts index 3443baf42..107ca26fc 100644 --- a/src/main/presenter/llmProviderPresenter/managers/agentLoopHandler.ts +++ b/src/main/presenter/llmProviderPresenter/managers/agentLoopHandler.ts @@ -1,17 +1,16 @@ -import { - ChatMessage, - IConfigPresenter, - LLMAgentEvent, - MCPToolCall, - MCPToolDefinition -} from '@shared/presenter' +import { ChatMessage, IConfigPresenter, LLMAgentEvent, MCPToolCall } from '@shared/presenter' import { presenter } from '@/presenter' import { eventBus, SendTarget } from '@/eventbus' -import { ACP_WORKSPACE_EVENTS } from '@/events' +import { WORKSPACE_EVENTS } from '@/events' import { BaseLLMProvider } from '../baseProvider' import { StreamState } from '../types' import { RateLimitManager } from './rateLimitManager' import { ToolCallProcessor } from './toolCallProcessor' +import { ToolPresenter } from '../../toolPresenter' +import { getAgentFilteredTools } from '../../mcpPresenter/agentMcpFilter' +import fs from 'fs' +import path from 'path' +import { app } from 'electron' interface AgentLoopHandlerOptions { configPresenter: IConfigPresenter @@ -23,46 +22,167 @@ interface AgentLoopHandlerOptions { export class AgentLoopHandler { private readonly toolCallProcessor: ToolCallProcessor + private toolPresenter: ToolPresenter | null = null private currentSupportsVision = false constructor(private readonly options: AgentLoopHandlerOptions) { this.toolCallProcessor = new ToolCallProcessor({ getAllToolDefinitions: async (context) => { - const defs: MCPToolDefinition[] = [] - const mcpDefs = await presenter.mcpPresenter.getAllToolDefinitions(context.enabledMcpTools) - defs.push(...mcpDefs) - - // Check if browser window is open - independent of MCP - const hasBrowserWindow = await presenter.yoBrowserPresenter.hasWindow() - if (hasBrowserWindow) { + // Get modelId from conversation + let modelId: string | undefined + if (context.conversationId) { try { - const yoDefs = await presenter.yoBrowserPresenter.getToolDefinitions( - this.currentSupportsVision + const conversation = await presenter.threadPresenter.getConversation( + context.conversationId ) - defs.push(...yoDefs) - } catch (error) { - console.warn('[AgentLoop] Failed to load Yo Browser tool definitions', error) + modelId = conversation?.settings.modelId + } catch { + // Ignore errors, modelId will be undefined } } - return defs + const { chatMode, agentWorkspacePath } = await this.resolveWorkspaceContext( + context.conversationId, + modelId + ) + + const toolDefs = await this.getToolPresenter().getAllToolDefinitions({ + enabledMcpTools: context.enabledMcpTools, + chatMode, + supportsVision: this.currentSupportsVision, + agentWorkspacePath + }) + + return await this.filterToolsForChatMode(toolDefs, chatMode, modelId) }, callTool: async (request: MCPToolCall) => { - if (request.function.name.startsWith('browser_')) { - const response = await presenter.yoBrowserPresenter.callTool( - request.function.name, - JSON.parse(request.function.arguments || '{}') as Record - ) - return { - content: typeof response === 'string' ? response : JSON.stringify(response), - rawData: { - toolCallId: request.id, - content: response - } + return await this.getToolPresenter().callTool(request) + }, + onToolCallFinished: ({ toolServerName, conversationId }) => { + if (toolServerName !== 'agent-filesystem') return + this.notifyWorkspaceFilesChanged(conversationId) + } + }) + } + + /** + * Lazy initialization of ToolPresenter + * This is needed because ToolPresenter depends on mcpPresenter and yoBrowserPresenter + * which are created after LLMProviderPresenter in the Presenter initialization order + */ + private getToolPresenter(): ToolPresenter { + if (!this.toolPresenter) { + // Check if presenter is fully initialized + if (!presenter.mcpPresenter || !presenter.yoBrowserPresenter) { + throw new Error( + 'ToolPresenter dependencies not initialized. mcpPresenter and yoBrowserPresenter must be initialized first.' + ) + } + this.toolPresenter = new ToolPresenter({ + mcpPresenter: presenter.mcpPresenter, + yoBrowserPresenter: presenter.yoBrowserPresenter, + configPresenter: this.options.configPresenter + }) + } + return this.toolPresenter + } + + private async getDefaultAgentWorkspacePath(conversationId?: string | null): Promise { + const tempRoot = path.join(app.getPath('temp'), 'deepchat-agent', 'workspaces') + try { + await fs.promises.mkdir(tempRoot, { recursive: true }) + } catch (error) { + console.warn( + '[AgentLoopHandler] Failed to create default workspace root, using system temp:', + error + ) + return app.getPath('temp') + } + + if (!conversationId) { + return tempRoot + } + + const workspaceDir = path.join(tempRoot, conversationId) + try { + await fs.promises.mkdir(workspaceDir, { recursive: true }) + return workspaceDir + } catch (error) { + console.warn( + '[AgentLoopHandler] Failed to create conversation workspace, using root temp workspace:', + error + ) + return tempRoot + } + } + + private async resolveAgentWorkspacePath( + conversationId: string | undefined, + currentPath: string | null + ): Promise { + const trimmedPath = currentPath?.trim() + if (trimmedPath) return trimmedPath + + const fallback = await this.getDefaultAgentWorkspacePath(conversationId ?? null) + if (conversationId && fallback) { + try { + await presenter.threadPresenter.updateConversationSettings(conversationId, { + agentWorkspacePath: fallback + }) + } catch (error) { + console.warn('[AgentLoopHandler] Failed to persist agent workspace path:', error) + } + } + return fallback + } + + /** + * Resolve workspace context (chatMode and agentWorkspacePath) for tool definitions + * @param conversationId Optional conversation ID + * @param modelId Optional model ID (required for acp agent mode) + * @returns Resolved workspace context + */ + private async resolveWorkspaceContext( + conversationId?: string, + modelId?: string + ): Promise<{ chatMode: 'chat' | 'agent' | 'acp agent'; agentWorkspacePath: string | null }> { + // Get chatMode from global config (default to 'chat') + const chatMode = + ((await this.options.configPresenter.getSetting('input_chatMode')) as + | 'chat' + | 'agent' + | 'acp agent') || 'chat' + + // Get agentWorkspacePath from conversation settings + let agentWorkspacePath: string | null = null + if (conversationId) { + try { + const conversation = await presenter.threadPresenter.getConversation(conversationId) + if (conversation) { + // For acp agent mode, use acpWorkdirMap + if (chatMode === 'acp agent' && conversation.settings.acpWorkdirMap && modelId) { + agentWorkspacePath = conversation.settings.acpWorkdirMap[modelId] ?? null + } else { + // For agent mode, use agentWorkspacePath + agentWorkspacePath = conversation.settings.agentWorkspacePath ?? null } } - return await presenter.mcpPresenter.callTool(request) + } catch (error) { + console.warn('[AgentLoopHandler] Failed to get conversation settings:', error) } + } + + if (chatMode === 'agent') { + agentWorkspacePath = await this.resolveAgentWorkspacePath(conversationId, agentWorkspacePath) + } + + return { chatMode, agentWorkspacePath } + } + + private notifyWorkspaceFilesChanged(conversationId?: string): void { + if (!conversationId) return + eventBus.sendToRenderer(WORKSPACE_EVENTS.FILES_CHANGED, SendTarget.ALL_WINDOWS, { + conversationId }) } @@ -71,6 +191,30 @@ export class AgentLoopHandler { return lower.includes('deepseek-reasoner') || lower.includes('kimi-k2-thinking') } + private isAgentToolDefinition(tool: { server?: { name: string } }): boolean { + const name = tool.server?.name + return Boolean(name && (name === 'yo-browser' || name.startsWith('agent-'))) + } + + private async filterToolsForChatMode( + tools: Awaited>, + chatMode: 'chat' | 'agent' | 'acp agent', + agentId?: string + ): Promise>> { + if (chatMode !== 'acp agent') return tools + if (!agentId) return [] + + const agentTools = tools.filter((tool) => this.isAgentToolDefinition(tool)) + const mcpTools = tools.filter((tool) => !this.isAgentToolDefinition(tool)) + const filteredMcp = await getAgentFilteredTools( + agentId, + undefined, + mcpTools, + this.options.configPresenter + ) + return [...filteredMcp, ...agentTools] + } + async *startStreamCompletion( providerId: string, initialMessages: ChatMessage[], @@ -183,19 +327,20 @@ export class AgentLoopHandler { try { console.log(`[Agent Loop] Iteration ${toolCallCount + 1} for event: ${eventId}`) - // Check if browser window is open - independent of MCP - const hasBrowserWindow = await presenter.yoBrowserPresenter.hasWindow() - let toolDefs = await presenter.mcpPresenter.getAllToolDefinitions(enabledMcpTools) - if (hasBrowserWindow) { - try { - const yoDefs = await presenter.yoBrowserPresenter.getToolDefinitions( - this.currentSupportsVision - ) - toolDefs = [...toolDefs, ...yoDefs] - } catch (error) { - console.warn('[AgentLoop] Failed to load Yo Browser tool definitions', error) - } - } + // Resolve workspace context + const { chatMode, agentWorkspacePath } = await this.resolveWorkspaceContext( + conversationId, + modelId + ) + + // Get all tool definitions using ToolPresenter + const toolDefs = await this.getToolPresenter().getAllToolDefinitions({ + enabledMcpTools, + chatMode, + supportsVision: this.currentSupportsVision, + agentWorkspacePath + }) + const filteredToolDefs = await this.filterToolsForChatMode(toolDefs, chatMode, modelId) const canExecute = this.options.rateLimitManager.canExecuteImmediately(providerId) if (!canExecute) { @@ -229,7 +374,7 @@ export class AgentLoopHandler { modelConfig, temperature, maxTokens, - toolDefs + filteredToolDefs ) // Process the standardized stream events @@ -509,7 +654,8 @@ export class AgentLoopHandler { modelConfig, abortSignal: abortController.signal, currentToolCallCount: toolCallCount, - maxToolCalls: MAX_TOOL_CALLS + maxToolCalls: MAX_TOOL_CALLS, + conversationId }) while (true) { @@ -522,7 +668,9 @@ export class AgentLoopHandler { yield value } - if (abortController.signal.aborted) break // Check after tool loop + if (abortController.signal.aborted) { + break // Check after tool loop + } if (!needContinueConversation) { // If max tool calls reached or explicit stop, break outer loop @@ -549,7 +697,6 @@ export class AgentLoopHandler { needContinueConversation = false // Stop loop on inner error } } // --- End of Agent Loop (while) --- - console.log( `[Agent Loop] Agent loop completed for event: ${eventId}, iterations: ${toolCallCount}` ) @@ -587,10 +734,8 @@ export class AgentLoopHandler { console.log('Agent loop finished for event:', eventId, 'User stopped:', userStop) // Trigger ACP workspace file refresh (only for ACP provider) - if (providerId === 'acp' && conversationId) { - eventBus.sendToRenderer(ACP_WORKSPACE_EVENTS.FILES_CHANGED, SendTarget.ALL_WINDOWS, { - conversationId - }) + if (providerId === 'acp') { + this.notifyWorkspaceFilesChanged(conversationId) } } } diff --git a/src/main/presenter/llmProviderPresenter/managers/errorClassification.ts b/src/main/presenter/llmProviderPresenter/managers/errorClassification.ts new file mode 100644 index 000000000..e31cf9dd1 --- /dev/null +++ b/src/main/presenter/llmProviderPresenter/managers/errorClassification.ts @@ -0,0 +1,102 @@ +/** + * Error classification utility to identify non-retryable errors. + * Non-retryable errors should stop the agent loop, while all other errors + * should allow the loop to continue so LLM can decide whether to retry. + */ + +/** + * Checks if an error is non-retryable (should stop the agent loop). + * + * Non-retryable errors are those that won't be resolved by retrying: + * - Invalid input format (invalid URL, malformed JSON, etc.) + * - Explicit permission denied + * - Schema validation failures + * - Authentication errors that can't be resolved by retry + * - Malformed requests that won't work on retry + * + * All other errors (network errors, timeouts, destroyed objects, etc.) + * are considered retryable by default and should allow the loop to continue. + * + * @param error - The error to classify (Error object or string) + * @returns true if the error is non-retryable (should stop loop), false otherwise + */ +export function isNonRetryableError(error: Error | string): boolean { + const errorMessage = error instanceof Error ? error.message : String(error) + const lowerMessage = errorMessage.toLowerCase() + + // Invalid URL format - won't work on retry + if ( + lowerMessage.includes('invalid url') || + lowerMessage.includes('malformed url') || + lowerMessage.includes('url parse error') || + lowerMessage.includes('invalid uri') + ) { + return true + } + + // Invalid JSON format in arguments - won't work on retry + if ( + lowerMessage.includes('invalid json') || + lowerMessage.includes('json parse error') || + lowerMessage.includes('unexpected token') || + lowerMessage.includes('malformed json') + ) { + return true + } + + // Schema validation failures - wrong parameter types, missing required fields + if ( + lowerMessage.includes('schema validation') || + lowerMessage.includes('validation error') || + lowerMessage.includes('invalid argument') || + lowerMessage.includes('invalid parameter') || + lowerMessage.includes('required field') || + lowerMessage.includes('missing required') || + lowerMessage.includes('type error') || + lowerMessage.includes('type mismatch') + ) { + return true + } + + // Explicit permission denied (user explicitly denied, not a transient error) + if ( + lowerMessage.includes('permission denied') && + (lowerMessage.includes('explicitly') || lowerMessage.includes('user denied')) + ) { + return true + } + + // Authentication errors that can't be resolved by retry + if ( + lowerMessage.includes('authentication failed') && + (lowerMessage.includes('invalid credentials') || + lowerMessage.includes('invalid api key') || + lowerMessage.includes('unauthorized')) + ) { + return true + } + + // Malformed requests that won't work on retry + if ( + lowerMessage.includes('malformed request') || + lowerMessage.includes('invalid request format') || + lowerMessage.includes('bad request format') + ) { + return true + } + + // Tool definition not found - won't work on retry + if (lowerMessage.includes('tool definition not found') || lowerMessage.includes('unknown tool')) { + return true + } + + // All other errors are considered retryable by default + // This includes: + // - "Object has been destroyed" / "WebContents destroyed" + // - Network errors (SSL failures, connection errors, error codes -3, -100) + // - Timeout errors + // - Loading errors + // - Transient service errors + // - Rate limiting + return false +} diff --git a/src/main/presenter/llmProviderPresenter/managers/providerInstanceManager.ts b/src/main/presenter/llmProviderPresenter/managers/providerInstanceManager.ts index 8b3fc4854..b97abe50f 100644 --- a/src/main/presenter/llmProviderPresenter/managers/providerInstanceManager.ts +++ b/src/main/presenter/llmProviderPresenter/managers/providerInstanceManager.ts @@ -101,7 +101,7 @@ export class ProviderInstanceManager { private static buildProviderTypeMap(): Map { return new Map([ - ['minimax', OpenAIProvider], + ['minimax', AnthropicProvider], ['deepseek', DeepseekProvider], ['silicon', SiliconcloudProvider], ['siliconcloud', SiliconcloudProvider], diff --git a/src/main/presenter/llmProviderPresenter/managers/toolCallProcessor.ts b/src/main/presenter/llmProviderPresenter/managers/toolCallProcessor.ts index 362c64ce5..a8af6c92d 100644 --- a/src/main/presenter/llmProviderPresenter/managers/toolCallProcessor.ts +++ b/src/main/presenter/llmProviderPresenter/managers/toolCallProcessor.ts @@ -6,10 +6,18 @@ import { MCPToolResponse, ModelConfig } from '@shared/presenter' +import { isNonRetryableError } from './errorClassification' interface ToolCallProcessorOptions { getAllToolDefinitions: (context: ToolCallExecutionContext) => Promise callTool: (request: MCPToolCall) => Promise<{ content: unknown; rawData: MCPToolResponse }> + onToolCallFinished?: (info: { + toolName: string + toolCallId: string + toolServerName?: string + conversationId?: string + status: 'success' | 'error' | 'permission' + }) => void } interface ToolCallExecutionContext { @@ -21,6 +29,7 @@ interface ToolCallExecutionContext { abortSignal: AbortSignal currentToolCallCount: number maxToolCalls: number + conversationId?: string } interface ToolCallProcessResult { @@ -92,6 +101,21 @@ export class ToolCallProcessor { continue } + const notifyToolCallFinished = (status: 'success' | 'error' | 'permission') => { + if (!this.options.onToolCallFinished) return + try { + this.options.onToolCallFinished({ + toolName: toolCall.name, + toolCallId: toolCall.id, + toolServerName: toolDef.server?.name, + conversationId: context.conversationId, + status + }) + } catch (error) { + console.warn('[ToolCallProcessor] onToolCallFinished handler failed:', error) + } + } + const mcpToolInput: MCPToolCall = { id: toolCall.id, type: 'function', @@ -99,7 +123,8 @@ export class ToolCallProcessor { name: toolCall.name, arguments: toolCall.arguments }, - server: toolDef.server + server: toolDef.server, + conversationId: context.conversationId } yield { @@ -118,10 +143,10 @@ export class ToolCallProcessor { try { const toolResponse = await this.options.callTool(mcpToolInput) + const requiresPermission = Boolean(toolResponse.rawData?.requiresPermission) - if (context.abortSignal.aborted) break - - if (toolResponse.rawData?.requiresPermission) { + if (requiresPermission) { + notifyToolCallFinished('permission') console.log( `[Agent Loop] Permission required for tool ${toolCall.name}, creating permission request` ) @@ -146,6 +171,10 @@ export class ToolCallProcessor { break } + notifyToolCallFinished('success') + + if (context.abortSignal.aborted) break + const supportsFunctionCall = context.modelConfig?.functionCall || false if (supportsFunctionCall) { @@ -194,6 +223,7 @@ export class ToolCallProcessor { } } } catch (toolError) { + notifyToolCallFinished('error') if (context.abortSignal.aborted) break console.error( @@ -202,6 +232,11 @@ export class ToolCallProcessor { ) const errorMessage = toolError instanceof Error ? toolError.message : String(toolError) + // Check if error is non-retryable (should stop the loop) + const errorForClassification: Error | string = + toolError instanceof Error ? toolError : String(toolError) + const isNonRetryable = isNonRetryableError(errorForClassification) + this.appendToolError( context.conversationMessages, context.modelConfig, @@ -223,6 +258,14 @@ export class ToolCallProcessor { tool_call_server_description: toolDef.server.description } } + + // If error is non-retryable, stop the loop + // Otherwise, keep needContinueConversation = true (default) to let LLM decide + if (isNonRetryable) { + needContinueConversation = false + break + } + // For retryable errors, continue the loop (needContinueConversation remains true) } } @@ -266,9 +309,10 @@ export class ToolCallProcessor { }) } + const toolContent = this.stringifyToolContent(toolResponse.content) conversationMessages.push({ role: 'tool', - content: this.stringifyToolContent(toolResponse.content), + content: toolContent, tool_call_id: toolCall.id }) } diff --git a/src/main/presenter/llmProviderPresenter/providers/acpProvider.ts b/src/main/presenter/llmProviderPresenter/providers/acpProvider.ts index 1f331ad7e..86c231a22 100644 --- a/src/main/presenter/llmProviderPresenter/providers/acpProvider.ts +++ b/src/main/presenter/llmProviderPresenter/providers/acpProvider.ts @@ -92,7 +92,8 @@ export class AcpProvider extends BaseAgentProvider< this.sessionManager = new AcpSessionManager({ providerId: provider.id, processManager: this.processManager, - sessionPersistence: this.sessionPersistence + sessionPersistence: this.sessionPersistence, + configPresenter }) void this.initWhenEnabled() diff --git a/src/main/presenter/llmProviderPresenter/providers/anthropicProvider.ts b/src/main/presenter/llmProviderPresenter/providers/anthropicProvider.ts index 04e40ecf7..23e778382 100644 --- a/src/main/presenter/llmProviderPresenter/providers/anthropicProvider.ts +++ b/src/main/presenter/llmProviderPresenter/providers/anthropicProvider.ts @@ -18,12 +18,24 @@ import { ProxyAgent } from 'undici' const OAUTH_MODEL_LIST = { data: [ + { + created_at: '2025-11-01T00:00:00Z', + display_name: 'Claude Opus 4.5', + id: 'claude-opus-4-5-20251101', + type: 'model' + }, { created_at: '2025-09-29T00:00:00Z', display_name: 'Claude Sonnet 4.5', id: 'claude-sonnet-4-5-20250929', type: 'model' }, + { + created_at: '2025-09-29T00:00:00Z', + display_name: 'Claude Opus 4.1', + id: 'claude-opus-4-1-20250805', + type: 'model' + }, { created_at: '2025-05-14T00:00:00Z', display_name: 'Claude Sonnet 4', @@ -61,7 +73,7 @@ const OAUTH_MODEL_LIST = { type: 'model' } ], - first_id: 'claude-sonnet-4-5-20250929', + first_id: 'claude-opus-4-5-20251101', has_more: false, last_id: 'claude-3-5-sonnet-20240620' } @@ -247,7 +259,8 @@ export class AnthropicProvider extends BaseLLMProvider { const headers: Record = { 'Content-Type': 'application/json', 'anthropic-version': '2023-06-01', - 'anthropic-beta': 'oauth-2025-04-20', + 'anthropic-beta': + 'oauth-2025-04-20,claude-code-20250219,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14', Authorization: `Bearer ${this.oauthToken}` } @@ -1242,7 +1255,8 @@ ${context} const headers: Record = { 'Content-Type': 'application/json', 'anthropic-version': '2023-06-01', - 'anthropic-beta': 'oauth-2025-04-20', + 'anthropic-beta': + 'oauth-2025-04-20,claude-code-20250219,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14', Authorization: `Bearer ${this.oauthToken}`, Accept: 'text/event-stream' } diff --git a/src/main/presenter/llmProviderPresenter/providers/doubaoProvider.ts b/src/main/presenter/llmProviderPresenter/providers/doubaoProvider.ts index 35a17c856..8d91fa783 100644 --- a/src/main/presenter/llmProviderPresenter/providers/doubaoProvider.ts +++ b/src/main/presenter/llmProviderPresenter/providers/doubaoProvider.ts @@ -8,7 +8,10 @@ import { ModelConfig, MCPToolDefinition } from '@shared/presenter' +import { ModelType } from '@shared/model' import { OpenAICompatibleProvider } from './openAICompatibleProvider' +import { providerDbLoader } from '../../configPresenter/providerDbLoader' +import { modelCapabilities } from '../../configPresenter/modelCapabilities' export class DoubaoProvider extends OpenAICompatibleProvider { // List of models that support thinking parameter @@ -80,178 +83,34 @@ export class DoubaoProvider extends OpenAICompatibleProvider { } protected async fetchOpenAIModels(): Promise { - return [ - // DeepSeek models - { - id: 'deepseek-v3-1-250821', - name: 'deepseek-v3.1', - group: 'deepseek', - providerId: this.provider.id, - isCustom: false, - contextLength: 128000, - maxTokens: 32000, - reasoning: false, - functionCall: true, - vision: false - }, - { - id: 'deepseek-r1-250120', - name: 'deepseek-r1', - group: 'deepseek', - providerId: this.provider.id, - isCustom: false, - contextLength: 64000, - maxTokens: 4096, - reasoning: true, - functionCall: false, - vision: false - }, - { - id: 'deepseek-r1-distill-qwen-32b-250120', - name: 'deepseek-r1-distill-qwen-32b', - group: 'deepseek', - providerId: this.provider.id, - isCustom: false, - contextLength: 32000, - maxTokens: 4096, - reasoning: true, - functionCall: false, - vision: false - }, - { - id: 'deepseek-r1-distill-qwen-7b-250120', - name: 'deepseek-r1-distill-qwen-7b', - group: 'deepseek', - providerId: this.provider.id, - isCustom: false, - contextLength: 32000, - maxTokens: 4096, - reasoning: true, - functionCall: false, - vision: false - }, - { - id: 'deepseek-v3-250324', - name: 'deepseek-v3', - group: 'deepseek', - providerId: this.provider.id, - isCustom: false, - contextLength: 64000, - maxTokens: 4096, - reasoning: false, - functionCall: true, - vision: false - }, - // Doubao native models - { - id: 'doubao-seed-1-6-vision-250815', - name: 'doubao-seed-1.6-vision', - group: 'doubao', - providerId: this.provider.id, - isCustom: false, - contextLength: 256000, - maxTokens: 32000, - reasoning: true, - functionCall: true, - vision: true - }, - { - id: 'doubao-seed-1-6-250615', - name: 'doubao-seed-1.6', - group: 'doubao', - providerId: this.provider.id, - isCustom: false, - contextLength: 256000, - maxTokens: 32000, - reasoning: true, - functionCall: true, - vision: true - }, - { - id: 'doubao-seed-1-6-flash-250715', - name: 'doubao-seed-1.6-flash', - group: 'doubao', - providerId: this.provider.id, - isCustom: false, - contextLength: 256000, - maxTokens: 32000, - reasoning: false, - functionCall: true, - vision: true - }, - { - id: 'doubao-seed-1-6-flash-250615', - name: 'doubao-seed-1.6-flash (250615)', - group: 'doubao', - providerId: this.provider.id, - isCustom: false, - contextLength: 256000, - maxTokens: 32000, - reasoning: true, - functionCall: true, - vision: true - }, - { - id: 'doubao-seed-1-6-thinking-250715', - name: 'doubao-seed-1.6-thinking', - group: 'doubao', - providerId: this.provider.id, - isCustom: false, - contextLength: 256000, - maxTokens: 32000, - reasoning: false, - functionCall: true, - vision: true - }, - { - id: 'doubao-seed-1-6-thinking-250615', - name: 'doubao-seed-1.6-thinking (250615)', - group: 'doubao', - providerId: this.provider.id, - isCustom: false, - contextLength: 256000, - maxTokens: 32000, - reasoning: false, - functionCall: true, - vision: true - }, - { - id: 'doubao-1-5-thinking-vision-pro-250428', - name: 'doubao-1.5-thinking-vision-pro', - group: 'doubao', - providerId: this.provider.id, - isCustom: false, - contextLength: 256000, - maxTokens: 32000, - reasoning: true, - functionCall: true, - vision: true - }, - { - id: 'doubao-1-5-ui-tars-250428', - name: 'doubao-1.5-ui-tars', - group: 'doubao', - providerId: this.provider.id, - isCustom: false, - contextLength: 256000, - maxTokens: 32000, - reasoning: true, - functionCall: true, - vision: true - }, - { - id: 'doubao-1-5-thinking-pro-m-250428', - name: 'doubao-1.5-thinking-pro-m', - group: 'doubao', + const resolvedId = modelCapabilities.resolveProviderId(this.provider.id) || this.provider.id + const provider = providerDbLoader.getProvider(resolvedId) + if (!provider || !Array.isArray(provider.models)) { + return [] + } + + return provider.models.map((model) => { + const inputs = model.modalities?.input + const outputs = model.modalities?.output + const hasImageInput = Array.isArray(inputs) && inputs.includes('image') + const hasImageOutput = Array.isArray(outputs) && outputs.includes('image') + const modelType = hasImageOutput ? ModelType.ImageGeneration : ModelType.Chat + + return { + id: model.id, + name: model.display_name || model.name || model.id, + group: 'default', providerId: this.provider.id, isCustom: false, - contextLength: 256000, - maxTokens: 32000, - reasoning: true, - functionCall: true, - vision: false + contextLength: model.limit?.context ?? 8192, + maxTokens: model.limit?.output ?? 4096, + vision: hasImageInput, + functionCall: Boolean(model.tool_call), + reasoning: Boolean(model.reasoning?.supported), + enableSearch: Boolean(model.search?.supported), + type: modelType } - ] + }) } async completions( diff --git a/src/main/presenter/llmProviderPresenter/providers/minimaxProvider.ts b/src/main/presenter/llmProviderPresenter/providers/minimaxProvider.ts index e334ec78f..d683f13ad 100644 --- a/src/main/presenter/llmProviderPresenter/providers/minimaxProvider.ts +++ b/src/main/presenter/llmProviderPresenter/providers/minimaxProvider.ts @@ -1,89 +1,39 @@ -import { - LLM_PROVIDER, - LLMResponse, - MODEL_META, - ChatMessage, - IConfigPresenter -} from '@shared/presenter' -import { OpenAICompatibleProvider } from './openAICompatibleProvider' +import { MODEL_META } from '@shared/presenter' +import { ModelType } from '@shared/model' +import { AnthropicProvider } from './anthropicProvider' +import { providerDbLoader } from '../../configPresenter/providerDbLoader' +import { modelCapabilities } from '../../configPresenter/modelCapabilities' -export class MinimaxProvider extends OpenAICompatibleProvider { - constructor(provider: LLM_PROVIDER, configPresenter: IConfigPresenter) { - // 初始化智谱AI模型配置 - super(provider, configPresenter) - } - - protected async fetchOpenAIModels(): Promise { - return [ - { - id: 'MiniMax-M1', - name: 'MiniMax-M1', - group: 'default', - providerId: 'minimax', - isCustom: false, - contextLength: 1_000_000, - maxTokens: 80_000, - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'MiniMax-Text-01', - name: 'MiniMax-Text-01', - group: 'default', - providerId: 'minimax', - isCustom: false, - contextLength: 1_000_000, - maxTokens: 80_000, - vision: false - } - ] - } +export class MinimaxProvider extends AnthropicProvider { + protected async fetchProviderModels(): Promise { + const resolvedId = modelCapabilities.resolveProviderId(this.provider.id) || this.provider.id + const provider = providerDbLoader.getProvider(resolvedId) - async completions( - messages: ChatMessage[], - modelId: string, - temperature?: number, - maxTokens?: number - ): Promise { - return this.openAICompletion(messages, modelId, temperature, maxTokens) - } + if (provider && Array.isArray(provider.models) && provider.models.length > 0) { + return provider.models.map((model) => { + const inputs = model.modalities?.input + const outputs = model.modalities?.output + const hasImageInput = Array.isArray(inputs) && inputs.includes('image') + const hasImageOutput = Array.isArray(outputs) && outputs.includes('image') + const modelType = hasImageOutput ? ModelType.ImageGeneration : ModelType.Chat - async summaries( - text: string, - modelId: string, - temperature?: number, - maxTokens?: number - ): Promise { - return this.openAICompletion( - [ - { - role: 'user', - content: `You need to summarize the user's conversation into a title of no more than 10 words, with the title language matching the user's primary language, without using punctuation or other special symbols:\n${text}` + return { + id: model.id, + name: model.display_name || model.name || model.id, + group: 'default', + providerId: this.provider.id, + isCustom: false, + contextLength: model.limit?.context ?? 8192, + maxTokens: model.limit?.output ?? 4096, + vision: hasImageInput, + functionCall: Boolean(model.tool_call), + reasoning: Boolean(model.reasoning?.supported), + enableSearch: Boolean(model.search?.supported), + type: modelType } - ], - modelId, - temperature, - maxTokens - ) - } + }) + } - async generateText( - prompt: string, - modelId: string, - temperature?: number, - maxTokens?: number - ): Promise { - return this.openAICompletion( - [ - { - role: 'user', - content: prompt - } - ], - modelId, - temperature, - maxTokens - ) + return super.fetchProviderModels() } } diff --git a/src/main/presenter/llmProviderPresenter/providers/ollamaProvider.ts b/src/main/presenter/llmProviderPresenter/providers/ollamaProvider.ts index d5acbb63b..38b042921 100644 --- a/src/main/presenter/llmProviderPresenter/providers/ollamaProvider.ts +++ b/src/main/presenter/llmProviderPresenter/providers/ollamaProvider.ts @@ -111,7 +111,7 @@ export class OllamaProvider extends BaseLLMProvider { .join('\n') : '' - const images = + const rawImages = msg.content && Array.isArray(msg.content) ? (msg.content .filter((c) => c.type === 'image_url') @@ -119,6 +119,16 @@ export class OllamaProvider extends BaseLLMProvider { .filter(Boolean) as string[]) : [] + // Extract base64 data from data URIs (Ollama expects just the base64 string, not the full data URI) + const images: string[] = rawImages.map((imgUrl) => { + // If it's a data URI (data:image/...;base64,...), extract just the base64 part + if (imgUrl.startsWith('data:image') && imgUrl.includes('base64,')) { + return imgUrl.split(',')[1] + } + // For regular URLs, pass as-is + return imgUrl + }) + return { role: msg.role, content: text, diff --git a/src/main/presenter/llmProviderPresenter/providers/zhipuProvider.ts b/src/main/presenter/llmProviderPresenter/providers/zhipuProvider.ts index 0112974d4..2f2c60b95 100644 --- a/src/main/presenter/llmProviderPresenter/providers/zhipuProvider.ts +++ b/src/main/presenter/llmProviderPresenter/providers/zhipuProvider.ts @@ -5,7 +5,10 @@ import { ChatMessage, IConfigPresenter } from '@shared/presenter' +import { ModelType } from '@shared/model' import { OpenAICompatibleProvider } from './openAICompatibleProvider' +import { providerDbLoader } from '../../configPresenter/providerDbLoader' +import { modelCapabilities } from '../../configPresenter/modelCapabilities' export class ZhipuProvider extends OpenAICompatibleProvider { constructor(provider: LLM_PROVIDER, configPresenter: IConfigPresenter) { @@ -14,173 +17,34 @@ export class ZhipuProvider extends OpenAICompatibleProvider { } protected async fetchOpenAIModels(): Promise { - return [ - // Language models - { - id: 'glm-4.5', - name: 'GLM-4.5', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 128000, - maxTokens: 8192 - }, - { - id: 'glm-4.5-air', - name: 'GLM-4.5-Air', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 128000, - maxTokens: 8192 - }, - { - id: 'glm-4.5-x', - name: 'GLM-4.5-X', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 128000, - maxTokens: 8192 - }, - { - id: 'glm-4.5-airx', - name: 'GLM-4.5-AirX', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 128000, - maxTokens: 8192 - }, - { - id: 'glm-4.5-flash', - name: 'GLM-4.5-Flash', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 128000, - maxTokens: 8192 - }, - { - id: 'glm-4-plus', - name: 'GLM-4-Plus', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 128000, - maxTokens: 4096 - }, - { - id: 'glm-4-air-250414', - name: 'GLM-4-Air-250414', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 128000, - maxTokens: 16000 - }, - { - id: 'glm-4-long', - name: 'GLM-4-Long', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 1000000, - maxTokens: 4096 - }, - { - id: 'glm-4-airx', - name: 'GLM-4-AirX', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 8000, - maxTokens: 4096 - }, - { - id: 'glm-4-flashx', - name: 'GLM-4-FlashX', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 128000, - maxTokens: 4096 - }, - { - id: 'glm-4-flash-250414', - name: 'GLM-4-Flash-250414', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 128000, - maxTokens: 16000 - }, - // Reasoning models - { - id: 'glm-z1-air', - name: 'GLM-Z1-Air', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 32000, - maxTokens: 32000 - }, - { - id: 'glm-z1-airx', - name: 'GLM-Z1-AirX', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 32000, - maxTokens: 30000 - }, - { - id: 'glm-z1-flash', - name: 'GLM-Z1-Flash', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 32000, - maxTokens: 32000 - }, - // Multimodal models - { - id: 'glm-4.5v', - name: 'GLM-4.5V', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 65536, - maxTokens: 8192 - }, - { - id: 'glm-4v-plus-0111', - name: 'GLM-4V-Plus-0111', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 16000, - maxTokens: 4096 - }, - { - id: 'glm-4v', - name: 'GLM-4V', - group: 'zhipu', - providerId: this.provider.id, - isCustom: false, - contextLength: 4000, - maxTokens: 4096 - }, - { - id: 'glm-4v-flash', - name: 'GLM-4V-Flash', + const resolvedId = modelCapabilities.resolveProviderId(this.provider.id) || this.provider.id + const provider = providerDbLoader.getProvider(resolvedId) + if (!provider || !Array.isArray(provider.models)) { + return [] + } + + return provider.models.map((model) => { + const inputs = model.modalities?.input + const outputs = model.modalities?.output + const hasImageInput = Array.isArray(inputs) && inputs.includes('image') + const hasImageOutput = Array.isArray(outputs) && outputs.includes('image') + const modelType = hasImageOutput ? ModelType.ImageGeneration : ModelType.Chat + + return { + id: model.id, + name: model.display_name || model.name || model.id, group: 'zhipu', providerId: this.provider.id, isCustom: false, - contextLength: 4000, - maxTokens: 4096 + contextLength: model.limit?.context ?? 8192, + maxTokens: model.limit?.output ?? 4096, + vision: hasImageInput, + functionCall: Boolean(model.tool_call), + reasoning: Boolean(model.reasoning?.supported), + enableSearch: Boolean(model.search?.supported), + type: modelType } - ] + }) } async completions( diff --git a/src/main/presenter/mcpPresenter/agentMcpFilter.ts b/src/main/presenter/mcpPresenter/agentMcpFilter.ts new file mode 100644 index 000000000..5a518ffe0 --- /dev/null +++ b/src/main/presenter/mcpPresenter/agentMcpFilter.ts @@ -0,0 +1,16 @@ +import type { IConfigPresenter, MCPToolDefinition } from '@shared/presenter' + +export async function getAgentFilteredTools( + agentId: string, + isBuiltin: boolean | undefined, + allTools: MCPToolDefinition[], + configPresenter: IConfigPresenter +): Promise { + if (!agentId) return [] + + const selections = await configPresenter.getAgentMcpSelections(agentId, isBuiltin) + if (!selections?.length) return [] + + const selectionSet = new Set(selections) + return allTools.filter((tool) => selectionSet.has(tool.server?.name)) +} diff --git a/src/main/presenter/mcpPresenter/inMemoryServers/autoPromptingServer.ts b/src/main/presenter/mcpPresenter/inMemoryServers/autoPromptingServer.ts index 8feaa3fe2..100e77b61 100644 --- a/src/main/presenter/mcpPresenter/inMemoryServers/autoPromptingServer.ts +++ b/src/main/presenter/mcpPresenter/inMemoryServers/autoPromptingServer.ts @@ -9,6 +9,7 @@ import { z } from 'zod' import { zodToJsonSchema } from 'zod-to-json-schema' import { presenter } from '@/presenter' import { Prompt } from '@shared/presenter' +import { isSafeRegexPattern } from '@shared/regexValidator' // --- 类型定义和 Schema (合并后) --- @@ -184,7 +185,16 @@ export class AutoPromptingServer { if (templateArgs && template.parameters) { for (const param of template.parameters) { const value = templateArgs[param.name] || '' - filledContent = filledContent.replace(new RegExp(`{{${param.name}}}`, 'g'), value) + // Validate regex pattern for ReDoS safety + // Escape special characters in param.name to create a safe pattern + const escapedParamName = param.name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + const pattern = `{{${escapedParamName}}}` + if (!isSafeRegexPattern(pattern)) { + throw new Error( + `Template parameter name "${param.name}" creates an unsafe regex pattern. Please use a simpler parameter name.` + ) + } + filledContent = filledContent.replace(new RegExp(pattern, 'g'), value) } } diff --git a/src/main/presenter/mcpPresenter/inMemoryServers/builder.ts b/src/main/presenter/mcpPresenter/inMemoryServers/builder.ts index 5fba3baaa..acffaf8cf 100644 --- a/src/main/presenter/mcpPresenter/inMemoryServers/builder.ts +++ b/src/main/presenter/mcpPresenter/inMemoryServers/builder.ts @@ -1,5 +1,5 @@ import { ArtifactsServer } from './artifactsServer' -import { FileSystemServer } from './filesystem' +// FileSystemServer has been removed - filesystem capabilities are now provided via Agent tools import { BochaSearchServer } from './bochaSearchServer' import { BraveSearchServer } from './braveSearchServer' import { ImageServer } from './imageServer' @@ -21,8 +21,7 @@ export function getInMemoryServer( env?: Record ) { switch (serverName) { - case 'buildInFileSystem': - return new FileSystemServer(args) + // buildInFileSystem has been removed - filesystem capabilities are now provided via Agent tools case 'Artifacts': return new ArtifactsServer() case 'bochaSearch': diff --git a/src/main/presenter/mcpPresenter/inMemoryServers/conversationSearchServer.ts b/src/main/presenter/mcpPresenter/inMemoryServers/conversationSearchServer.ts index 81d549b15..d5c79bbf2 100644 --- a/src/main/presenter/mcpPresenter/inMemoryServers/conversationSearchServer.ts +++ b/src/main/presenter/mcpPresenter/inMemoryServers/conversationSearchServer.ts @@ -7,6 +7,7 @@ import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js' import { presenter } from '@/presenter' // 导入全局的 presenter 对象 import { eventBus } from '@/eventbus' // 引入 eventBus import { TAB_EVENTS } from '@/events' +import { isSafeRegexPattern } from '@shared/regexValidator' // Schema definitions const SearchConversationsArgsSchema = z.object({ @@ -458,8 +459,14 @@ export class ConversationSearchServer { if (start > 0) snippet = '...' + snippet if (end < content.length) snippet = snippet + '...' - // 高亮关键词 - const regex = new RegExp(`(${query})`, 'gi') + // 高亮关键词 - 转义特殊字符并验证安全性 + const escapedQuery = query.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + const pattern = `(${escapedQuery})` + if (!isSafeRegexPattern(pattern)) { + // If pattern is unsafe, return snippet without highlighting + return snippet + } + const regex = new RegExp(pattern, 'gi') snippet = snippet.replace(regex, '**$1**') return snippet diff --git a/src/main/presenter/mcpPresenter/inMemoryServers/filesystem.ts b/src/main/presenter/mcpPresenter/inMemoryServers/filesystem.ts deleted file mode 100644 index 07febfd57..000000000 --- a/src/main/presenter/mcpPresenter/inMemoryServers/filesystem.ts +++ /dev/null @@ -1,1353 +0,0 @@ -import { Server } from '@modelcontextprotocol/sdk/server/index.js' -import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js' -import fs from 'fs/promises' -import path from 'path' -import os from 'os' -import { z } from 'zod' -import { zodToJsonSchema } from 'zod-to-json-schema' -import { createTwoFilesPatch } from 'diff' -import { minimatch } from 'minimatch' -import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js' -import { glob } from 'glob' - -// Schema definitions -const ReadFilesArgsSchema = z.object({ - paths: z - .array(z.string()) - .min(1) - .describe('Array of file paths to read (can be single or multiple files)') -}) - -const WriteFileArgsSchema = z.object({ - path: z.string(), - content: z.string() -}) - -// Enhanced text search schema for grep functionality -const GrepSearchArgsSchema = z.object({ - path: z.string().describe('Directory path to search in'), - pattern: z.string().describe('Regular expression pattern to search for'), - filePattern: z.string().optional().describe('File name pattern to filter files (glob pattern)'), - recursive: z.boolean().default(true).describe('Whether to search recursively in subdirectories'), - caseSensitive: z.boolean().default(false).describe('Whether the search should be case sensitive'), - includeLineNumbers: z - .boolean() - .default(true) - .describe('Whether to include line numbers in results'), - contextLines: z - .number() - .default(0) - .describe('Number of context lines to show before and after matches'), - maxResults: z.number().default(100).describe('Maximum number of results to return') -}) - -// Enhanced text replacement schema -const TextReplaceArgsSchema = z.object({ - path: z.string().describe('Path to the file to edit'), - pattern: z.string().describe('Regular expression pattern to find'), - replacement: z.string().describe('Text to replace matches with'), - global: z - .boolean() - .default(true) - .describe('Whether to replace all occurrences or just the first'), - caseSensitive: z.boolean().default(false).describe('Whether the search should be case sensitive'), - dryRun: z.boolean().default(false).describe('Preview changes using git-style diff format') -}) - -// Consolidated file search schema (combines search_files and glob_search) -const FileSearchArgsSchema = z.object({ - path: z - .string() - .optional() - .describe('Directory to search in (optional, defaults to current directory)'), - pattern: z - .string() - .describe('Search pattern - can be a glob pattern (e.g., "**/*.ts") or simple text match'), - searchType: z - .enum(['glob', 'name']) - .default('glob') - .describe('Type of search: "glob" for glob patterns, "name" for filename matching'), - excludePatterns: z - .array(z.string()) - .optional() - .default([]) - .describe('Array of patterns to exclude'), - caseSensitive: z.boolean().default(false).describe('Whether the search should be case-sensitive'), - respectGitIgnore: z.boolean().default(true).describe('Whether to respect .gitignore patterns'), - sortByModified: z - .boolean() - .default(true) - .describe('Sort results by modification time (newest first)'), - maxResults: z.number().default(1000).describe('Maximum number of results to return') -}) - -// Consolidated move files schema (combines move_file and move_multiple_files) -const MoveFilesArgsSchema = z.object({ - sources: z.array(z.string()).min(1).describe('Array of source file/directory paths to move'), - destination: z.string().describe('Destination directory or file path') -}) - -// Consolidated text editing schema (combines edit_file and text_replace) -const EditTextArgsSchema = z.object({ - path: z.string().describe('Path to the file to edit'), - operation: z.enum(['replace_pattern', 'edit_lines']).describe('Type of edit operation'), - // For pattern replacement - pattern: z - .string() - .optional() - .describe('Regular expression pattern to find (for replace_pattern operation)'), - replacement: z - .string() - .optional() - .describe('Text to replace matches with (for replace_pattern operation)'), - global: z - .boolean() - .default(true) - .describe('Whether to replace all occurrences (for replace_pattern operation)'), - caseSensitive: z - .boolean() - .default(false) - .describe('Whether the search should be case sensitive (for replace_pattern operation)'), - // For line-based editing - edits: z - .array( - z.object({ - oldText: z.string().describe('Text to search for - must match exactly'), - newText: z.string().describe('Text to replace with') - }) - ) - .optional() - .describe('Array of line-based edits (for edit_lines operation)'), - dryRun: z.boolean().default(false).describe('Preview changes using git-style diff format') -}) - -const CreateDirectoryArgsSchema = z.object({ - path: z.string() -}) - -const ListDirectoryArgsSchema = z.object({ - path: z.string().describe('Directory path to list'), - showDetails: z - .boolean() - .default(false) - .describe('Show detailed file information (size, modified time, permissions)'), - sortBy: z - .enum(['name', 'size', 'modified']) - .default('name') - .describe('Sort criteria for results'), - ignorePatterns: z - .array(z.string()) - .optional() - .describe('Array of glob patterns to ignore (e.g., ["*.tmp", "node_modules"])'), - respectGitIgnore: z.boolean().default(false).describe('Whether to respect .gitignore patterns') -}) - -const DirectoryTreeArgsSchema = z.object({ - path: z.string() -}) - -const GetFileInfoArgsSchema = z.object({ - path: z.string() -}) - -interface FileInfo { - size: number - created: Date - modified: Date - accessed: Date - isDirectory: boolean - isFile: boolean - permissions: string -} - -interface TreeEntry { - name: string - type: 'file' | 'directory' - children?: TreeEntry[] -} - -// New interfaces for enhanced text functionality -interface GrepMatch { - file: string - line: number - content: string - beforeContext?: string[] - afterContext?: string[] -} - -interface GrepResult { - totalMatches: number - files: string[] - matches: GrepMatch[] -} - -interface TextReplaceResult { - success: boolean - replacements: number - diff?: string - error?: string -} - -// Enhanced file entry interface for detailed directory listing -interface EnhancedFileEntry { - name: string - path: string - isDirectory: boolean - size: number - modifiedTime: Date - permissions: string -} - -// Glob search result interface -interface GlobSearchResult { - files: string[] - totalCount: number - gitIgnoredCount?: number -} - -export class FileSystemServer { - private server: Server - private allowedDirectories: string[] - - constructor(allowedDirectories: string[]) { - if (allowedDirectories.length === 0) { - throw new Error('At least one allowed directory must be provided') - } - - // 将目录路径标准化 - this.allowedDirectories = allowedDirectories.map((dir) => - this.normalizePath(path.resolve(this.expandHome(dir))) - ) - - // 创建服务器实例 - this.server = new Server( - { - name: 'secure-filesystem-server', - version: '0.3.0' - }, - { - capabilities: { - tools: {} - } - } - ) - - // 设置请求处理器 - this.setupRequestHandlers() - } - - // 初始化方法,验证所有目录是否存在且可访问 - public async initialize(): Promise { - await Promise.all( - this.allowedDirectories.map(async (dir) => { - try { - const stats = await fs.stat(dir) - if (!stats.isDirectory()) { - throw new Error(`Error: ${dir} is not a directory`) - } - } catch (error) { - throw new Error(`Error accessing directory ${dir}: ${error}`) - } - }) - ) - } - - // 启动服务器 - public startServer(transport: Transport): void { - this.server.connect(transport) - } - - // 辅助方法:标准化路径 - private normalizePath(p: string): string { - return path.normalize(p) - } - - // 辅助方法:扩展主目录路径 - private expandHome(filepath: string): string { - if (filepath.startsWith('~/') || filepath === '~') { - return path.join(os.homedir(), filepath.slice(1)) - } - return filepath - } - - // 安全验证:验证路径是否在允许的目录范围内 - private async validatePath(requestedPath: string): Promise { - const expandedPath = this.expandHome(requestedPath) - const absolute = path.isAbsolute(expandedPath) - ? path.resolve(expandedPath) - : path.resolve(process.cwd(), expandedPath) - - const normalizedRequested = this.normalizePath(absolute) - - // Check if path is within allowed directories - const isAllowed = this.allowedDirectories.some((dir) => normalizedRequested.startsWith(dir)) - if (!isAllowed) { - throw new Error( - `Access denied - path outside allowed directories: ${absolute} not in ${this.allowedDirectories.join(', ')}` - ) - } - - // Handle symlinks by checking their real path - try { - const realPath = await fs.realpath(absolute) - const normalizedReal = this.normalizePath(realPath) - const isRealPathAllowed = this.allowedDirectories.some((dir) => - normalizedReal.startsWith(dir) - ) - if (!isRealPathAllowed) { - throw new Error('Access denied - symlink target outside allowed directories') - } - return realPath - } catch { - // For new files that don't exist yet, verify parent directory - const parentDir = path.dirname(absolute) - try { - const realParentPath = await fs.realpath(parentDir) - const normalizedParent = this.normalizePath(realParentPath) - const isParentAllowed = this.allowedDirectories.some((dir) => - normalizedParent.startsWith(dir) - ) - if (!isParentAllowed) { - throw new Error('Access denied - parent directory outside allowed directories') - } - return absolute - } catch { - throw new Error(`Parent directory does not exist: ${parentDir}`) - } - } - } - - // 获取文件统计信息 - private async getFileStats(filePath: string): Promise { - const stats = await fs.stat(filePath) - return { - size: stats.size, - created: stats.birthtime, - modified: stats.mtime, - accessed: stats.atime, - isDirectory: stats.isDirectory(), - isFile: stats.isFile(), - permissions: stats.mode.toString(8).slice(-3) - } - } - - // 文件搜索功能 - private async searchFiles( - rootPath: string, - pattern: string, - excludePatterns: string[] = [] - ): Promise { - const results: string[] = [] - - const search = async (currentPath: string) => { - let entries - try { - entries = await fs.readdir(currentPath, { withFileTypes: true }) - } catch (error) { - console.error(`[searchFiles] Error reading directory ${currentPath}:`, error) - return // Skip this directory if unreadable - } - - for (const entry of entries) { - const fullPath = path.join(currentPath, entry.name) - - try { - // 验证每个路径是否合法 - await this.validatePath(fullPath) - - // 检查路径是否匹配排除模式 - const relativePath = path.relative(rootPath, fullPath) - const shouldExclude = excludePatterns.some((excludePattern) => { - // 修正: 使用更适合文件和目录的 glob 模式 - const globPattern = excludePattern.includes('/') - ? excludePattern - : `**/${excludePattern}` - const isMatch = minimatch(relativePath, globPattern, { dot: true, matchBase: true }) - return isMatch - }) - - if (shouldExclude) { - continue - } - - // 修改匹配逻辑: 检查文件名是否 *包含* 模式(不区分大小写) - // 或者,如果模式包含通配符,则使用 minimatch 进行匹配 - let isPatternMatch = false - const lowerCaseEntryName = entry.name.toLowerCase() - const lowerCasePattern = pattern.toLowerCase() - - if (pattern.includes('*') || pattern.includes('?')) { - // 使用 minimatch 进行通配符匹配 - isPatternMatch = minimatch(entry.name, pattern, { dot: true, nocase: true }) - } else { - // 否则,执行包含检查(不区分大小写) - isPatternMatch = lowerCaseEntryName.includes(lowerCasePattern) - } - - if (isPatternMatch) { - results.push(fullPath) - } - - if (entry.isDirectory()) { - await search(fullPath) - } - } catch (error) { - // 搜索过程中跳过无效路径 - console.error(`[searchFiles] Error processing path ${fullPath}:`, error) - continue - } - } - } - - try { - await search(rootPath) - } catch (error) { - console.error(`[searchFiles] Error during search execution starting from ${rootPath}:`, error) - } - return results - } - - // Enhanced text content search functionality (grep-like) - private async grepSearch( - rootPath: string, - pattern: string, - options: { - filePattern?: string - recursive?: boolean - caseSensitive?: boolean - includeLineNumbers?: boolean - contextLines?: number - maxResults?: number - } = {} - ): Promise { - const { - filePattern = '*', - recursive = true, - caseSensitive = false, - includeLineNumbers = true, - contextLines = 0, - maxResults = 100 - } = options - - const result: GrepResult = { - totalMatches: 0, - files: [], - matches: [] - } - - // Create regex pattern with appropriate flags - const regexFlags = caseSensitive ? 'g' : 'gi' - let regex: RegExp - try { - regex = new RegExp(pattern, regexFlags) - } catch (error) { - throw new Error(`Invalid regular expression pattern: ${pattern}. Error: ${error}`) - } - - // Helper function to search within a single file - const searchInFile = async (filePath: string): Promise => { - try { - const content = await fs.readFile(filePath, 'utf-8') - const lines = content.split('\n') - const fileMatches: GrepMatch[] = [] - - for (let i = 0; i < lines.length; i++) { - const line = lines[i] - const matches = Array.from(line.matchAll(regex)) - - if (matches.length > 0) { - const match: GrepMatch = { - file: filePath, - line: includeLineNumbers ? i + 1 : 0, - content: line - } - - // Add context lines if requested - if (contextLines > 0) { - const startContext = Math.max(0, i - contextLines) - const endContext = Math.min(lines.length - 1, i + contextLines) - - if (startContext < i) { - match.beforeContext = lines.slice(startContext, i) - } - if (endContext > i) { - match.afterContext = lines.slice(i + 1, endContext + 1) - } - } - - fileMatches.push(match) - result.totalMatches += matches.length - - // Stop if we've reached the maximum results - if (result.totalMatches >= maxResults) { - break - } - } - } - - if (fileMatches.length > 0) { - result.files.push(filePath) - result.matches.push(...fileMatches) - } - } catch (error) { - // Skip files that can't be read (binary files, permission issues, etc.) - console.error(`[grepSearch] Error reading file ${filePath}:`, error) - } - } - - // Recursive directory traversal - const searchDirectory = async (currentPath: string): Promise => { - if (result.totalMatches >= maxResults) { - return - } - - try { - const entries = await fs.readdir(currentPath, { withFileTypes: true }) - - for (const entry of entries) { - if (result.totalMatches >= maxResults) { - break - } - - const fullPath = path.join(currentPath, entry.name) - - try { - // Validate path is within allowed directories - await this.validatePath(fullPath) - - if (entry.isFile()) { - // Check if file matches the file pattern - if (minimatch(entry.name, filePattern, { nocase: true })) { - await searchInFile(fullPath) - } - } else if (entry.isDirectory() && recursive) { - await searchDirectory(fullPath) - } - } catch (error) { - // Skip invalid paths - console.error(`[grepSearch] Error processing path ${fullPath}:`, error) - continue - } - } - } catch (error) { - console.error(`[grepSearch] Error reading directory ${currentPath}:`, error) - } - } - - // Start the search - const validatedPath = await this.validatePath(rootPath) - const stats = await fs.stat(validatedPath) - - if (stats.isFile()) { - // Search in a single file - if (minimatch(path.basename(validatedPath), filePattern, { nocase: true })) { - await searchInFile(validatedPath) - } - } else if (stats.isDirectory()) { - // Search in directory - await searchDirectory(validatedPath) - } - - return result - } - - // Enhanced text replacement functionality - private async replaceTextInFile( - filePath: string, - pattern: string, - replacement: string, - options: { - global?: boolean - caseSensitive?: boolean - dryRun?: boolean - } = {} - ): Promise { - const { global = true, caseSensitive = false, dryRun = false } = options - - try { - const originalContent = await fs.readFile(filePath, 'utf-8') - const normalizedOriginal = this.normalizeLineEndings(originalContent) - - // Create regex pattern with appropriate flags - const regexFlags = global ? (caseSensitive ? 'g' : 'gi') : caseSensitive ? '' : 'i' - let regex: RegExp - try { - regex = new RegExp(pattern, regexFlags) - } catch (error) { - return { - success: false, - replacements: 0, - error: `Invalid regular expression pattern: ${pattern}. Error: ${error}` - } - } - - // Perform the replacement - const modifiedContent = normalizedOriginal.replace(regex, replacement) - const matches = Array.from(normalizedOriginal.matchAll(new RegExp(pattern, regexFlags + 'g'))) - const replacements = matches.length - - if (replacements === 0) { - return { - success: true, - replacements: 0, - diff: 'No matches found for the given pattern.' - } - } - - // Create diff - const diff = this.createUnifiedDiff(normalizedOriginal, modifiedContent, filePath) - - // Write file if not dry run - if (!dryRun) { - await fs.writeFile(filePath, modifiedContent, 'utf-8') - } - - return { - success: true, - replacements, - diff - } - } catch (error) { - return { - success: false, - replacements: 0, - error: error instanceof Error ? error.message : String(error) - } - } - } - - // 文件编辑和差异显示功能 - private normalizeLineEndings(text: string): string { - return text.replace(/\r\n/g, '\n') - } - - private createUnifiedDiff( - originalContent: string, - newContent: string, - filepath: string = 'file' - ): string { - // 确保行尾一致性 - const normalizedOriginal = this.normalizeLineEndings(originalContent) - const normalizedNew = this.normalizeLineEndings(newContent) - - return createTwoFilesPatch( - filepath, - filepath, - normalizedOriginal, - normalizedNew, - 'original', - 'modified' - ) - } - - private async applyFileEdits( - filePath: string, - edits: Array<{ oldText: string; newText: string }>, - dryRun = false - ): Promise { - // 读取文件内容并标准化行尾 - const content = this.normalizeLineEndings(await fs.readFile(filePath, 'utf-8')) - - // 按顺序应用编辑 - let modifiedContent = content - for (const edit of edits) { - const normalizedOld = this.normalizeLineEndings(edit.oldText) - const normalizedNew = this.normalizeLineEndings(edit.newText) - - // 如果存在精确匹配,使用它 - if (modifiedContent.includes(normalizedOld)) { - modifiedContent = modifiedContent.replace(normalizedOld, normalizedNew) - continue - } - - // 否则,逐行匹配,对空白字符具有灵活性 - const oldLines = normalizedOld.split('\n') - const contentLines = modifiedContent.split('\n') - let matchFound = false - - for (let i = 0; i <= contentLines.length - oldLines.length; i++) { - const potentialMatch = contentLines.slice(i, i + oldLines.length) - - // 比较标准化后空白字符的行 - const isMatch = oldLines.every((oldLine, j) => { - const contentLine = potentialMatch[j] - return oldLine.trim() === contentLine.trim() - }) - - if (isMatch) { - // 保留第一行的原始缩进 - const originalIndent = contentLines[i].match(/^\s*/)?.[0] || '' - const newLines = normalizedNew.split('\n').map((line, j) => { - if (j === 0) return originalIndent + line.trimStart() - // 对后续行,尝试保留相对缩进 - const oldIndent = oldLines[j]?.match(/^\s*/)?.[0] || '' - const newIndent = line.match(/^\s*/)?.[0] || '' - if (oldIndent && newIndent) { - const relativeIndent = newIndent.length - oldIndent.length - return originalIndent + ' '.repeat(Math.max(0, relativeIndent)) + line.trimStart() - } - return line - }) - - contentLines.splice(i, oldLines.length, ...newLines) - modifiedContent = contentLines.join('\n') - matchFound = true - break - } - } - - if (!matchFound) { - throw new Error(`Cannot find exact matching content to edit:\n${edit.oldText}`) - } - } - - // 创建统一差异 - const diff = this.createUnifiedDiff(content, modifiedContent, filePath) - - // 格式化差异,使用适当数量的反引号 - let numBackticks = 3 - while (diff.includes('`'.repeat(numBackticks))) { - numBackticks++ - } - const formattedDiff = `${'`'.repeat(numBackticks)}diff\n${diff}${'`'.repeat(numBackticks)}\n\n` - - if (!dryRun) { - await fs.writeFile(filePath, modifiedContent, 'utf-8') - } - - return formattedDiff - } - - // 设置请求处理器 - private setupRequestHandlers(): void { - // 设置工具列表处理器 - this.server.setRequestHandler(ListToolsRequestSchema, async () => { - return { - tools: [ - { - name: 'read_files', - description: - 'Read the complete contents of multiple files simultaneously. This is more ' + - 'efficient than reading files one by one when you need to analyze ' + - "or compare multiple files. Each file's content is returned with its " + - "path as a reference. Failed reads for individual files won't stop " + - 'the entire operation. Only works within allowed directories.', - inputSchema: zodToJsonSchema(ReadFilesArgsSchema) - }, - { - name: 'write_file', - description: - 'Create a new file or completely overwrite an existing file with new content. ' + - 'Use with caution as it will overwrite existing files without warning. ' + - 'Handles text content with proper encoding. Only works within allowed directories.', - inputSchema: zodToJsonSchema(WriteFileArgsSchema) - }, - { - name: 'edit_text', - description: - 'Edit text files using two methods: 1) Pattern replacement with regex support for bulk find-and-replace operations, or 2) Line-based editing for precise text modifications. ' + - 'Supports dry-run mode to preview changes. Returns git-style diff showing modifications. ' + - 'Perfect for code refactoring, configuration updates, or bulk text replacements. Only works within allowed directories.', - inputSchema: zodToJsonSchema(EditTextArgsSchema) - }, - { - name: 'create_directory', - description: - 'Create a new directory or ensure a directory exists. Can create multiple ' + - 'nested directories in one operation. If the directory already exists, ' + - 'this operation will succeed silently. Perfect for setting up directory ' + - 'structures for projects or ensuring required paths exist. Only works within allowed directories.', - inputSchema: zodToJsonSchema(CreateDirectoryArgsSchema) - }, - { - name: 'list_directory', - description: - 'Get a detailed listing of all files and directories in a specified path. ' + - 'Results clearly distinguish between files and directories with [FILE] and [DIR] ' + - 'prefixes. Supports detailed information display (size, modification time, permissions), ' + - 'custom sorting (by name, size, or modification time), ignore patterns, and git-aware filtering. ' + - 'This tool is essential for understanding directory structure and finding specific files. ' + - 'Only works within allowed directories.', - inputSchema: zodToJsonSchema(ListDirectoryArgsSchema) - }, - { - name: 'directory_tree', - description: - 'Get a recursive tree view of files and directories as a JSON structure. ' + - "Each entry includes 'name', 'type' (file/directory), and 'children' for directories. " + - 'Files have no children array, while directories always have a children array (which may be empty). ' + - 'The output is formatted with 2-space indentation for readability. Only works within allowed directories.', - inputSchema: zodToJsonSchema(DirectoryTreeArgsSchema) - }, - { - name: 'move_files', - description: - 'Move or rename one or more files and directories in a single operation. ' + - 'Can move files between directories and rename them simultaneously. ' + - 'If any destination exists, that specific operation will fail but others will continue. ' + - 'Supports both single file moves and batch operations. Both sources and destination must be within allowed directories.', - inputSchema: zodToJsonSchema(MoveFilesArgsSchema) - }, - { - name: 'get_file_info', - description: - 'Retrieve detailed metadata about a file or directory. Returns comprehensive ' + - 'information including size, creation time, last modified time, permissions, ' + - 'and type. This tool is perfect for understanding file characteristics ' + - 'without reading the actual content. Only works within allowed directories.', - inputSchema: zodToJsonSchema(GetFileInfoArgsSchema) - }, - { - name: 'list_allowed_directories', - description: - 'Returns the list of directories that this server is allowed to access. ' + - 'Use this to understand which directories are available before trying to access files.', - inputSchema: { - type: 'object', - properties: {}, - required: [] - } - }, - { - name: 'grep_search', - description: - 'Search for text patterns within file contents using regular expressions. ' + - 'Similar to the Unix grep command, this tool searches through files recursively ' + - 'and returns matching lines with optional context. Supports file filtering, ' + - 'case sensitivity options, and result limiting. Perfect for finding specific ' + - 'code patterns, function definitions, or text content across multiple files. ' + - 'Only searches within allowed directories.', - inputSchema: zodToJsonSchema(GrepSearchArgsSchema) - }, - { - name: 'text_replace', - description: - 'Replace text patterns in files using regular expressions. This tool provides ' + - 'powerful find-and-replace functionality with regex support, case sensitivity ' + - 'options, and dry-run mode for previewing changes. Shows a git-style diff ' + - 'of the changes made. Use this for bulk text replacements, code refactoring, ' + - 'or updating configuration files. Only works within allowed directories.', - inputSchema: zodToJsonSchema(TextReplaceArgsSchema) - }, - { - name: 'file_search', - description: - 'Search for files and directories matching a pattern. This tool searches through files and directories ' + - "recursively and returns full paths to all matching items. Great for finding files when you don't know their exact location.", - inputSchema: zodToJsonSchema(FileSearchArgsSchema) - } - ] - } - }) - - // 设置工具调用处理器 - this.server.setRequestHandler(CallToolRequestSchema, async (request) => { - try { - const { name, arguments: args } = request.params - - switch (name) { - case 'read_files': { - const parsed = ReadFilesArgsSchema.safeParse(args) - if (!parsed.success) { - throw new Error(`Invalid arguments for read_files: ${parsed.error}`) - } - const results = await Promise.all( - parsed.data.paths.map(async (filePath: string) => { - try { - const validPath = await this.validatePath(filePath) - const content = await fs.readFile(validPath, 'utf-8') - return `${filePath}:\n${content}\n` - } catch (error) { - const errorMessage = error instanceof Error ? error.message : String(error) - return `${filePath}: Error - ${errorMessage}` - } - }) - ) - return { - content: [{ type: 'text', text: results.join('\n---\n') }] - } - } - - case 'write_file': { - const parsed = WriteFileArgsSchema.safeParse(args) - if (!parsed.success) { - throw new Error(`Invalid arguments for write_file: ${parsed.error}`) - } - const validPath = await this.validatePath(parsed.data.path) - await fs.writeFile(validPath, parsed.data.content, 'utf-8') - return { - content: [{ type: 'text', text: `Successfully wrote to ${parsed.data.path}` }] - } - } - - case 'edit_text': { - const parsed = EditTextArgsSchema.safeParse(args) - if (!parsed.success) { - throw new Error(`Invalid arguments for edit_text: ${parsed.error}`) - } - const validPath = await this.validatePath(parsed.data.path) - - if (parsed.data.operation === 'edit_lines') { - // Line-based editing - if (!parsed.data.edits || parsed.data.edits.length === 0) { - throw new Error('edits array is required for edit_lines operation') - } - const result = await this.applyFileEdits( - validPath, - parsed.data.edits, - parsed.data.dryRun - ) - return { - content: [{ type: 'text', text: result }] - } - } else if (parsed.data.operation === 'replace_pattern') { - // Pattern replacement - if (!parsed.data.pattern || parsed.data.replacement === undefined) { - throw new Error( - 'pattern and replacement are required for replace_pattern operation' - ) - } - const result = await this.replaceTextInFile( - validPath, - parsed.data.pattern, - parsed.data.replacement, - { - global: parsed.data.global, - caseSensitive: parsed.data.caseSensitive, - dryRun: parsed.data.dryRun - } - ) - return { - content: [{ type: 'text', text: result.success ? result.diff : result.error }], - isError: !result.success - } - } else { - throw new Error(`Unknown operation: ${parsed.data.operation}`) - } - } - - case 'create_directory': { - const parsed = CreateDirectoryArgsSchema.safeParse(args) - if (!parsed.success) { - throw new Error(`Invalid arguments for create_directory: ${parsed.error}`) - } - const validPath = await this.validatePath(parsed.data.path) - await fs.mkdir(validPath, { recursive: true }) - return { - content: [ - { type: 'text', text: `Successfully created directory ${parsed.data.path}` } - ] - } - } - - case 'list_directory': { - const parsed = ListDirectoryArgsSchema.safeParse(args) - if (!parsed.success) { - throw new Error(`Invalid arguments for list_directory: ${parsed.error}`) - } - - const entries = await this.enhancedListDirectory(parsed.data.path, { - ignorePatterns: parsed.data.ignorePatterns, - respectGitIgnore: parsed.data.respectGitIgnore, - showDetails: parsed.data.showDetails, - sortBy: parsed.data.sortBy - }) - - if (entries.length === 0) { - return { - content: [{ type: 'text', text: 'Directory is empty or all files are ignored' }] - } - } - - const formatted = entries - .map((entry) => { - const prefix = entry.isDirectory ? '[DIR]' : '[FILE]' - let result = `${prefix} ${entry.name}` - - if (parsed.data.showDetails && !entry.isDirectory) { - const sizeKB = (entry.size / 1024).toFixed(1) - const modifiedDate = entry.modifiedTime.toLocaleDateString() - const modifiedTime = entry.modifiedTime.toLocaleTimeString() - result += ` (${sizeKB}KB, ${entry.permissions}, ${modifiedDate} ${modifiedTime})` - } else if (parsed.data.showDetails && entry.isDirectory) { - result += ` (${entry.permissions})` - } - - return result - }) - .join('\n') - - const summary = `Directory listing for ${parsed.data.path} (${entries.length} items):\n\n${formatted}` - return { - content: [{ type: 'text', text: summary }] - } - } - - case 'directory_tree': { - const parsed = DirectoryTreeArgsSchema.safeParse(args) - if (!parsed.success) { - throw new Error(`Invalid arguments for directory_tree: ${parsed.error}`) - } - - const buildTree = async (currentPath: string): Promise => { - const validPath = await this.validatePath(currentPath) - const entries = await fs.readdir(validPath, { withFileTypes: true }) - const result: TreeEntry[] = [] - - for (const entry of entries) { - const entryData: TreeEntry = { - name: entry.name, - type: entry.isDirectory() ? 'directory' : 'file' - } - - if (entry.isDirectory()) { - const subPath = path.join(currentPath, entry.name) - entryData.children = await buildTree(subPath) - } - - result.push(entryData) - } - - return result - } - - const treeData = await buildTree(parsed.data.path) - return { - content: [ - { - type: 'text', - text: JSON.stringify(treeData, null, 2) - } - ] - } - } - - case 'move_files': { - const parsed = MoveFilesArgsSchema.safeParse(args) - if (!parsed.success) { - throw new Error(`Invalid arguments for move_files: ${parsed.error}`) - } - const destInfo = await this.getFileStats(parsed.data.destination) - const results = await Promise.all( - parsed.data.sources.map(async (source) => { - const validSourcePath = await this.validatePath(source) - let validDestPath = '' - if (destInfo.isFile) { - validDestPath = await this.validatePath(parsed.data.destination) - } else { - validDestPath = await this.validatePath( - path.join(parsed.data.destination, path.basename(source)) - ) - } - try { - await fs.rename(validSourcePath, validDestPath) - return `Successfully moved ${source} to ${parsed.data.destination}` - } catch (e) { - return `Move ${source} to ${parsed.data.destination} failed: ${JSON.stringify(e)}` - } - }) - ) - return { - content: [ - { - type: 'text', - text: results.join('\n') - } - ] - } - } - - case 'get_file_info': { - const parsed = GetFileInfoArgsSchema.safeParse(args) - if (!parsed.success) { - throw new Error(`Invalid arguments for get_file_info: ${parsed.error}`) - } - const validPath = await this.validatePath(parsed.data.path) - const info = await this.getFileStats(validPath) - return { - content: [ - { - type: 'text', - text: Object.entries(info) - .map(([key, value]) => `${key}: ${value}`) - .join('\n') - } - ] - } - } - - case 'list_allowed_directories': { - return { - content: [ - { - type: 'text', - text: `Allowed directories:\n${this.allowedDirectories.join('\n')}` - } - ] - } - } - - case 'grep_search': { - const parsed = GrepSearchArgsSchema.safeParse(args) - if (!parsed.success) { - throw new Error(`Invalid arguments for grep_search: ${parsed.error}`) - } - const validPath = await this.validatePath(parsed.data.path) - const result = await this.grepSearch(validPath, parsed.data.pattern, { - filePattern: parsed.data.filePattern, - recursive: parsed.data.recursive, - caseSensitive: parsed.data.caseSensitive, - includeLineNumbers: parsed.data.includeLineNumbers, - contextLines: parsed.data.contextLines, - maxResults: parsed.data.maxResults - }) - - if (result.totalMatches === 0) { - return { - content: [{ type: 'text', text: 'No matches found' }] - } - } - - // Format the results - const formattedResults = result.matches - .map((match) => { - let output = `${match.file}:${match.line}: ${match.content}` - - if (match.beforeContext && match.beforeContext.length > 0) { - const beforeLines = match.beforeContext - .map( - (line, i) => - `${match.file}:${match.line - match.beforeContext!.length + i}: ${line}` - ) - .join('\n') - output = beforeLines + '\n' + output - } - - if (match.afterContext && match.afterContext.length > 0) { - const afterLines = match.afterContext - .map((line, i) => `${match.file}:${match.line + i + 1}: ${line}`) - .join('\n') - output = output + '\n' + afterLines - } - - return output - }) - .join('\n--\n') - - const summary = `Found ${result.totalMatches} matches in ${result.files.length} files:\n\n${formattedResults}` - - return { - content: [{ type: 'text', text: summary }] - } - } - - case 'file_search': { - const parsed = FileSearchArgsSchema.safeParse(args) - if (!parsed.success) { - throw new Error(`Invalid arguments for file_search: ${parsed.error}`) - } - const validPath = await this.validatePath(parsed.data.path || '.') - - let results: string[] - if (parsed.data.searchType === 'glob') { - // Use glob search for glob patterns - const globResult = await this.globSearch(parsed.data.pattern, validPath, { - caseSensitive: parsed.data.caseSensitive, - respectGitIgnore: parsed.data.respectGitIgnore, - sortByModified: parsed.data.sortByModified, - maxResults: parsed.data.maxResults - }) - results = globResult.files - } else { - // Use name search for simple text matching - results = await this.searchFiles( - validPath, - parsed.data.pattern, - parsed.data.excludePatterns - ) - } - - return { - content: [ - { type: 'text', text: results.length > 0 ? results.join('\n') : 'No matches found' } - ] - } - } - - default: - throw new Error(`Unknown tool: ${name}`) - } - } catch (error) { - const errorMessage = error instanceof Error ? error.message : String(error) - return { - content: [{ type: 'text', text: `Error: ${errorMessage}` }], - isError: true - } - } - }) - } - - // Enhanced glob search functionality inspired by Google Gemini CLI - private async globSearch( - pattern: string, - searchPath: string = '.', - options: { - caseSensitive?: boolean - respectGitIgnore?: boolean - sortByModified?: boolean - maxResults?: number - } = {} - ): Promise { - const { - caseSensitive = false, - respectGitIgnore = true, - sortByModified = true, - maxResults = 1000 - } = options - - const validatedPath = await this.validatePath(searchPath) - - try { - // Use the glob library for proper glob pattern matching - const globResults = await glob(pattern, { - cwd: validatedPath, - nodir: false, // Include directories - dot: true, // Include hidden files - nocase: !caseSensitive, - ignore: respectGitIgnore ? ['**/node_modules/**', '**/.git/**'] : ['**/node_modules/**'], - absolute: true, - maxDepth: 20, // Reasonable depth limit - follow: false // Don't follow symlinks for security - }) - - // Limit results - const limitedResults = globResults.slice(0, maxResults) - - // Validate all paths are within allowed directories - const validResults: string[] = [] - for (const result of limitedResults) { - try { - await this.validatePath(result) - validResults.push(result) - } catch (error) { - // Skip paths outside allowed directories - console.error(`[globSearch] Path validation failed for ${result}:`, error) - continue - } - } - - // Sort results if requested - if (sortByModified && validResults.length > 0) { - const fileStats = await Promise.all( - validResults.map(async (filePath) => { - try { - const stats = await fs.stat(filePath) - return { path: filePath, mtime: stats.mtime.getTime() } - } catch { - return { path: filePath, mtime: 0 } - } - }) - ) - - fileStats.sort((a, b) => b.mtime - a.mtime) - return { - files: fileStats.map((f) => f.path), - totalCount: fileStats.length - } - } - - return { - files: validResults, - totalCount: validResults.length - } - } catch (error) { - console.error(`[globSearch] Error during glob search:`, error) - throw new Error( - `Glob search failed: ${error instanceof Error ? error.message : String(error)}` - ) - } - } - - // Enhanced directory listing functionality - private async enhancedListDirectory( - dirPath: string, - options: { - ignorePatterns?: string[] - respectGitIgnore?: boolean - showDetails?: boolean - sortBy?: 'name' | 'size' | 'modified' - } = {} - ): Promise { - const { - ignorePatterns = [], - respectGitIgnore: _respectGitIgnore = false, - showDetails: _showDetails = false, - sortBy = 'name' - } = options - - const validatedPath = await this.validatePath(dirPath) - const entries = await fs.readdir(validatedPath, { withFileTypes: true }) - const results: EnhancedFileEntry[] = [] - - // Helper function to check if filename matches ignore patterns - const shouldIgnore = (filename: string): boolean => { - return ignorePatterns.some((pattern) => { - const regexPattern = pattern - .replace(/[.+^${}()|[\]\\]/g, '\\$&') - .replace(/\*/g, '.*') - .replace(/\?/g, '.') - const regex = new RegExp(`^${regexPattern}$`) - return regex.test(filename) - }) - } - - for (const entry of entries) { - if (shouldIgnore(entry.name)) { - continue - } - - const fullPath = path.join(validatedPath, entry.name) - - try { - const stats = await fs.stat(fullPath) - const enhancedEntry: EnhancedFileEntry = { - name: entry.name, - path: fullPath, - isDirectory: entry.isDirectory(), - size: entry.isDirectory() ? 0 : stats.size, - modifiedTime: stats.mtime, - permissions: stats.mode.toString(8).slice(-3) - } - - results.push(enhancedEntry) - } catch (error) { - console.error(`[enhancedListDirectory] Error getting stats for ${fullPath}:`, error) - continue - } - } - - // Sort results - results.sort((a, b) => { - // Directories first - if (a.isDirectory && !b.isDirectory) return -1 - if (!a.isDirectory && b.isDirectory) return 1 - - // Then by requested sort criteria - switch (sortBy) { - case 'size': - return b.size - a.size - case 'modified': - return b.modifiedTime.getTime() - a.modifiedTime.getTime() - default: - return a.name.localeCompare(b.name) - } - }) - - return results - } -} - -// 使用示例 -// const server = new FileSystemServer(['/path/to/allowed/directory']) -// await server.initialize() -// server.startServer() diff --git a/src/main/presenter/mcpPresenter/toolManager.ts b/src/main/presenter/mcpPresenter/toolManager.ts index ccdad017c..bbd6ed5b5 100644 --- a/src/main/presenter/mcpPresenter/toolManager.ts +++ b/src/main/presenter/mcpPresenter/toolManager.ts @@ -13,6 +13,7 @@ import { ServerManager } from './serverManager' import { McpClient } from './mcpClient' import { jsonrepair } from 'jsonrepair' import { getErrorMessageLabels } from '@shared/i18n' +import { presenter } from '@/presenter' export class ToolManager { private configPresenter: IConfigPresenter @@ -339,6 +340,36 @@ export class ToolManager { const { client: targetClient, originalName } = targetInfo const toolServerName = targetClient.serverName + // ACP agent-level MCP access control (only applies in "acp agent" chat mode) + if (toolCall.conversationId) { + const chatMode = this.configPresenter.getSetting<'chat' | 'agent' | 'acp agent'>( + 'input_chatMode' + ) + if (chatMode === 'acp agent') { + try { + const conversation = await presenter.threadPresenter.getConversation( + toolCall.conversationId + ) + const agentId = conversation?.settings?.modelId + if (typeof agentId === 'string' && agentId.trim().length > 0) { + const selections = await this.configPresenter.getAgentMcpSelections(agentId) + if (!selections?.length || !selections.includes(toolServerName)) { + return { + toolCallId: toolCall.id, + content: `MCP server '${toolServerName}' is not allowed for ACP agent '${agentId}'. Configure MCP access in ACP settings.`, + isError: true + } + } + } + } catch (error) { + console.warn( + '[ToolManager] Failed to resolve ACP agent context for MCP access control:', + error + ) + } + } + } + // Log the call details including original name console.info('[MCP] ToolManager calling tool', { requestedName: finalName, diff --git a/src/main/presenter/shortcutPresenter.ts b/src/main/presenter/shortcutPresenter.ts index 3451e2116..530122577 100644 --- a/src/main/presenter/shortcutPresenter.ts +++ b/src/main/presenter/shortcutPresenter.ts @@ -171,13 +171,15 @@ export class ShortcutPresenter implements IShortcutPresenter { } // 注册标签页数字快捷键 (1-8) - for (let i = 1; i <= 8; i++) { - globalShortcut.register(`${CommandKey}+${i}`, () => { - const focusedWindow = presenter.windowPresenter.getFocusedWindow() - if (focusedWindow?.isFocused()) { - this.switchToTabByIndex(focusedWindow.id, i - 1) // 索引从0开始 - } - }) + if (this.shortcutKeys.NumberTabs) { + for (let i = 1; i <= 8; i++) { + globalShortcut.register(`${CommandKey}+${i}`, () => { + const focusedWindow = presenter.windowPresenter.getFocusedWindow() + if (focusedWindow?.isFocused()) { + this.switchToTabByIndex(focusedWindow.id, i - 1) // 索引从0开始 + } + }) + } } // Command+9 或 Ctrl+9 切换到最后一个标签页 diff --git a/src/main/presenter/sqlitePresenter/index.ts b/src/main/presenter/sqlitePresenter/index.ts index 4dd9c734a..8db2de41b 100644 --- a/src/main/presenter/sqlitePresenter/index.ts +++ b/src/main/presenter/sqlitePresenter/index.ts @@ -281,6 +281,18 @@ export class SQLitePresenter implements ISQLitePresenter { return this.conversationsTable.list(page, pageSize) } + public async listChildConversationsByParent( + parentConversationId: string + ): Promise { + return this.conversationsTable.listByParentConversationId(parentConversationId) + } + + public async listChildConversationsByMessageIds( + parentMessageIds: string[] + ): Promise { + return this.conversationsTable.listByParentMessageIds(parentMessageIds) + } + // 获取对话总数 public async getConversationCount(): Promise { return this.conversationsTable.count() diff --git a/src/main/presenter/sqlitePresenter/tables/conversations.ts b/src/main/presenter/sqlitePresenter/tables/conversations.ts index ee6e2c4ee..c6fcd68c0 100644 --- a/src/main/presenter/sqlitePresenter/tables/conversations.ts +++ b/src/main/presenter/sqlitePresenter/tables/conversations.ts @@ -25,6 +25,9 @@ type ConversationRow = { forced_search: number | null search_strategy: string | null context_chain: string | null + parent_conversation_id: string | null + parent_message_id: string | null + parent_selection: string | null } // 解析 JSON 字段 @@ -118,12 +121,30 @@ export class ConversationsTable extends BaseTable { ALTER TABLE conversations ADD COLUMN search_strategy TEXT DEFAULT NULL; ` } + if (version === 8) { + return ` + -- 添加 agent_workspace_path 字段 + ALTER TABLE conversations ADD COLUMN agent_workspace_path TEXT DEFAULT NULL; + -- 添加 acp_workdir_map 字段 + ALTER TABLE conversations ADD COLUMN acp_workdir_map TEXT DEFAULT NULL; + ` + } + if (version === 9) { + return ` + -- 添加 parent 相关字段 + ALTER TABLE conversations ADD COLUMN parent_conversation_id TEXT DEFAULT NULL; + ALTER TABLE conversations ADD COLUMN parent_message_id TEXT DEFAULT NULL; + ALTER TABLE conversations ADD COLUMN parent_selection TEXT DEFAULT NULL; + CREATE INDEX idx_conversations_parent ON conversations(parent_conversation_id); + CREATE INDEX idx_conversations_parent_message ON conversations(parent_message_id); + ` + } return null } getLatestVersion(): number { - return 7 + return 9 } async create(title: string, settings: Partial = {}): Promise { @@ -149,9 +170,14 @@ export class ConversationsTable extends BaseTable { enable_search, forced_search, search_strategy, - context_chain + context_chain, + agent_workspace_path, + acp_workdir_map, + parent_conversation_id, + parent_message_id, + parent_selection ) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) `) const conv_id = nanoid() const now = Date.now() @@ -176,7 +202,14 @@ export class ConversationsTable extends BaseTable { settings.enableSearch !== undefined ? (settings.enableSearch ? 1 : 0) : null, settings.forcedSearch !== undefined ? (settings.forcedSearch ? 1 : 0) : null, settings.searchStrategy !== undefined ? settings.searchStrategy : null, - settings.selectedVariantsMap ? JSON.stringify(settings.selectedVariantsMap) : '{}' + settings.selectedVariantsMap ? JSON.stringify(settings.selectedVariantsMap) : '{}', + settings.agentWorkspacePath !== undefined && settings.agentWorkspacePath !== null + ? settings.agentWorkspacePath + : null, + settings.acpWorkdirMap ? JSON.stringify(settings.acpWorkdirMap) : null, + null, + null, + null ) return conv_id } @@ -206,17 +239,52 @@ export class ConversationsTable extends BaseTable { enable_search, forced_search, search_strategy, - context_chain + context_chain, + agent_workspace_path, + acp_workdir_map, + parent_conversation_id, + parent_message_id, + parent_selection FROM conversations WHERE conv_id = ? ` ) - .get(conversationId) as ConversationRow & { is_pinned: number } + .get(conversationId) as ConversationRow & { + is_pinned: number + agent_workspace_path: string | null + acp_workdir_map: string | null + } if (!result) { throw new Error(`Conversation ${conversationId} not found`) } + const settings = { + systemPrompt: result.systemPrompt, + temperature: result.temperature, + contextLength: result.contextLength, + maxTokens: result.maxTokens, + providerId: result.providerId, + modelId: result.modelId, + artifacts: result.artifacts as 0 | 1, + enabledMcpTools: getJsonField(result.enabled_mcp_tools, undefined), + thinkingBudget: result.thinking_budget !== null ? result.thinking_budget : undefined, + reasoningEffort: result.reasoning_effort + ? (result.reasoning_effort as 'minimal' | 'low' | 'medium' | 'high') + : undefined, + verbosity: result.verbosity ? (result.verbosity as 'low' | 'medium' | 'high') : undefined, + enableSearch: result.enable_search !== null ? Boolean(result.enable_search) : undefined, + forcedSearch: result.forced_search !== null ? Boolean(result.forced_search) : undefined, + searchStrategy: result.search_strategy + ? (result.search_strategy as 'turbo' | 'max') + : undefined, + selectedVariantsMap: getJsonField(result.context_chain, undefined), + agentWorkspacePath: + result.agent_workspace_path !== null && result.agent_workspace_path !== undefined + ? result.agent_workspace_path + : undefined, + acpWorkdirMap: getJsonField(result.acp_workdir_map, undefined) + } return { id: result.id, title: result.title, @@ -224,33 +292,16 @@ export class ConversationsTable extends BaseTable { updatedAt: result.updatedAt, is_new: result.is_new, is_pinned: result.is_pinned, - settings: { - systemPrompt: result.systemPrompt, - temperature: result.temperature, - contextLength: result.contextLength, - maxTokens: result.maxTokens, - providerId: result.providerId, - modelId: result.modelId, - artifacts: result.artifacts as 0 | 1, - enabledMcpTools: getJsonField(result.enabled_mcp_tools, undefined), - thinkingBudget: result.thinking_budget !== null ? result.thinking_budget : undefined, - reasoningEffort: result.reasoning_effort - ? (result.reasoning_effort as 'minimal' | 'low' | 'medium' | 'high') - : undefined, - verbosity: result.verbosity ? (result.verbosity as 'low' | 'medium' | 'high') : undefined, - enableSearch: result.enable_search !== null ? Boolean(result.enable_search) : undefined, - forcedSearch: result.forced_search !== null ? Boolean(result.forced_search) : undefined, - searchStrategy: result.search_strategy - ? (result.search_strategy as 'turbo' | 'max') - : undefined, - selectedVariantsMap: getJsonField(result.context_chain, undefined) - } + settings, + parentConversationId: result.parent_conversation_id, + parentMessageId: result.parent_message_id, + parentSelection: getJsonField(result.parent_selection, undefined) } } async update(conversationId: string, data: Partial): Promise { const updates: string[] = [] - const params: (string | number)[] = [] + const params: (string | number | null)[] = [] if (data.title !== undefined) { updates.push('title = ?') @@ -328,6 +379,36 @@ export class ConversationsTable extends BaseTable { updates.push('context_chain = ?') params.push(JSON.stringify(data.settings.selectedVariantsMap)) } + if (data.settings.agentWorkspacePath !== undefined) { + updates.push('agent_workspace_path = ?') + params.push( + data.settings.agentWorkspacePath !== null ? data.settings.agentWorkspacePath : null + ) + } + if (data.settings.acpWorkdirMap !== undefined) { + updates.push('acp_workdir_map = ?') + params.push( + data.settings.acpWorkdirMap ? JSON.stringify(data.settings.acpWorkdirMap) : null + ) + } + } + if (data.parentConversationId !== undefined) { + updates.push('parent_conversation_id = ?') + params.push(data.parentConversationId ?? null) + } + if (data.parentMessageId !== undefined) { + updates.push('parent_message_id = ?') + params.push(data.parentMessageId ?? null) + } + if (data.parentSelection !== undefined) { + updates.push('parent_selection = ?') + if (data.parentSelection === null) { + params.push(null) + } else if (typeof data.parentSelection === 'string') { + params.push(data.parentSelection) + } else { + params.push(JSON.stringify(data.parentSelection)) + } } if (updates.length > 0 || data.updatedAt) { updates.push('updated_at = ?') @@ -379,13 +460,21 @@ export class ConversationsTable extends BaseTable { enable_search, forced_search, search_strategy, - context_chain + context_chain, + agent_workspace_path, + acp_workdir_map, + parent_conversation_id, + parent_message_id, + parent_selection FROM conversations ORDER BY updated_at DESC LIMIT ? OFFSET ? ` ) - .all(pageSize, offset) as ConversationRow[] + .all(pageSize, offset) as (ConversationRow & { + agent_workspace_path: string | null + acp_workdir_map: string | null + })[] return { total: totalResult.count, @@ -415,12 +504,181 @@ export class ConversationsTable extends BaseTable { searchStrategy: row.search_strategy ? (row.search_strategy as 'turbo' | 'max') : undefined, - selectedVariantsMap: getJsonField(row.context_chain, undefined) - } + selectedVariantsMap: getJsonField(row.context_chain, undefined), + agentWorkspacePath: + row.agent_workspace_path !== null && row.agent_workspace_path !== undefined + ? row.agent_workspace_path + : undefined, + acpWorkdirMap: getJsonField(row.acp_workdir_map, undefined) + }, + parentConversationId: row.parent_conversation_id, + parentMessageId: row.parent_message_id, + parentSelection: getJsonField(row.parent_selection, undefined) })) } } + async listByParentConversationId(parentConversationId: string): Promise { + const results = this.db + .prepare( + ` + SELECT + conv_id as id, + title, + created_at as createdAt, + updated_at as updatedAt, + system_prompt as systemPrompt, + temperature, + context_length as contextLength, + max_tokens as maxTokens, + provider_id as providerId, + model_id as modelId, + is_new, + artifacts, + is_pinned, + enabled_mcp_tools, + thinking_budget, + reasoning_effort, + verbosity, + enable_search, + forced_search, + search_strategy, + context_chain, + agent_workspace_path, + acp_workdir_map, + parent_conversation_id, + parent_message_id, + parent_selection + FROM conversations + WHERE parent_conversation_id = ? + ORDER BY updated_at DESC + ` + ) + .all(parentConversationId) as (ConversationRow & { + agent_workspace_path: string | null + acp_workdir_map: string | null + })[] + + return results.map((row) => ({ + id: row.id, + title: row.title, + createdAt: row.createdAt, + updatedAt: row.updatedAt, + is_new: row.is_new, + is_pinned: row.is_pinned, + settings: { + systemPrompt: row.systemPrompt, + temperature: row.temperature, + contextLength: row.contextLength, + maxTokens: row.maxTokens, + providerId: row.providerId, + modelId: row.modelId, + artifacts: row.artifacts as 0 | 1, + enabledMcpTools: getJsonField(row.enabled_mcp_tools, undefined), + thinkingBudget: row.thinking_budget !== null ? row.thinking_budget : undefined, + reasoningEffort: row.reasoning_effort + ? (row.reasoning_effort as 'minimal' | 'low' | 'medium' | 'high') + : undefined, + verbosity: row.verbosity ? (row.verbosity as 'low' | 'medium' | 'high') : undefined, + enableSearch: row.enable_search !== null ? Boolean(row.enable_search) : undefined, + forcedSearch: row.forced_search !== null ? Boolean(row.forced_search) : undefined, + searchStrategy: row.search_strategy ? (row.search_strategy as 'turbo' | 'max') : undefined, + selectedVariantsMap: getJsonField(row.context_chain, undefined), + agentWorkspacePath: + row.agent_workspace_path !== null && row.agent_workspace_path !== undefined + ? row.agent_workspace_path + : undefined, + acpWorkdirMap: getJsonField(row.acp_workdir_map, undefined) + }, + parentConversationId: row.parent_conversation_id, + parentMessageId: row.parent_message_id, + parentSelection: getJsonField(row.parent_selection, undefined) + })) + } + + async listByParentMessageIds(parentMessageIds: string[]): Promise { + if (parentMessageIds.length === 0) { + return [] + } + + const placeholders = parentMessageIds.map(() => '?').join(', ') + const results = this.db + .prepare( + ` + SELECT + conv_id as id, + title, + created_at as createdAt, + updated_at as updatedAt, + system_prompt as systemPrompt, + temperature, + context_length as contextLength, + max_tokens as maxTokens, + provider_id as providerId, + model_id as modelId, + is_new, + artifacts, + is_pinned, + enabled_mcp_tools, + thinking_budget, + reasoning_effort, + verbosity, + enable_search, + forced_search, + search_strategy, + context_chain, + agent_workspace_path, + acp_workdir_map, + parent_conversation_id, + parent_message_id, + parent_selection + FROM conversations + WHERE parent_message_id IN (${placeholders}) + ORDER BY updated_at DESC + ` + ) + .all(...parentMessageIds) as (ConversationRow & { + agent_workspace_path: string | null + acp_workdir_map: string | null + })[] + + return results.map((row) => ({ + id: row.id, + title: row.title, + createdAt: row.createdAt, + updatedAt: row.updatedAt, + is_new: row.is_new, + is_pinned: row.is_pinned, + settings: { + systemPrompt: row.systemPrompt, + temperature: row.temperature, + contextLength: row.contextLength, + maxTokens: row.maxTokens, + providerId: row.providerId, + modelId: row.modelId, + artifacts: row.artifacts as 0 | 1, + enabledMcpTools: getJsonField(row.enabled_mcp_tools, undefined), + thinkingBudget: row.thinking_budget !== null ? row.thinking_budget : undefined, + reasoningEffort: row.reasoning_effort + ? (row.reasoning_effort as 'minimal' | 'low' | 'medium' | 'high') + : undefined, + verbosity: row.verbosity ? (row.verbosity as 'low' | 'medium' | 'high') : undefined, + enableSearch: row.enable_search !== null ? Boolean(row.enable_search) : undefined, + forcedSearch: row.forced_search !== null ? Boolean(row.forced_search) : undefined, + searchStrategy: row.search_strategy ? (row.search_strategy as 'turbo' | 'max') : undefined, + selectedVariantsMap: getJsonField(row.context_chain, undefined), + agentWorkspacePath: + row.agent_workspace_path !== null && row.agent_workspace_path !== undefined + ? row.agent_workspace_path + : undefined, + acpWorkdirMap: getJsonField(row.acp_workdir_map, undefined) + }, + parentConversationId: row.parent_conversation_id, + parentMessageId: row.parent_message_id, + parentSelection: getJsonField(row.parent_selection, undefined) + })) + } + async rename(conversationId: string, title: string): Promise { // 新增 updatedAt 更新 const updateStmt = this.db.prepare(` diff --git a/src/main/presenter/tabPresenter.ts b/src/main/presenter/tabPresenter.ts index 6db1ad6a3..0b4fa725a 100644 --- a/src/main/presenter/tabPresenter.ts +++ b/src/main/presenter/tabPresenter.ts @@ -48,7 +48,7 @@ export class TabPresenter implements ITabPresenter { this.windowTypes.set(windowId, type) } - private getWindowType(windowId: number): 'chat' | 'browser' { + getWindowType(windowId: number): 'chat' | 'browser' { return this.windowTypes.get(windowId) ?? TabPresenter.DEFAULT_WINDOW_TYPE } @@ -180,11 +180,16 @@ export class TabPresenter implements ITabPresenter { } const webPreferences: WebPreferences = { - preload: join(__dirname, '../preload/index.mjs'), sandbox: false, devTools: is.dev } + // 对于 browser 窗口,不注入 preload(安全考虑) + // 对于 chat 窗口,注入 preload + if (windowType !== 'browser') { + webPreferences.preload = join(__dirname, '../preload/index.mjs') + } + if (windowType === 'browser') { webPreferences.session = getYoBrowserSession() } @@ -211,7 +216,9 @@ export class TabPresenter implements ITabPresenter { view.webContents.loadURL(url) } - if (is.dev) { + // 对于 browser 窗口,不自动打开 DevTools + // 对于 chat 窗口,开发模式下可以自动打开 + if (is.dev && windowType !== 'browser') { view.webContents.openDevTools({ mode: 'detach' }) } @@ -654,6 +661,7 @@ export class TabPresenter implements ITabPresenter { // 检查是否是窗口的第一个标签页 const isFirstTab = this.windowTabs.get(windowId)?.length === 1 + const windowType = this.getWindowType(windowId) // 页面加载完成 if (isFirstTab) { @@ -661,12 +669,16 @@ export class TabPresenter implements ITabPresenter { // Once did-finish-load happens, emit first content loaded webContents.once('did-finish-load', () => { eventBus.sendToMain(WINDOW_EVENTS.FIRST_CONTENT_LOADED, windowId) - setTimeout(() => { - const windowPresenter = presenter.windowPresenter as any - if (windowPresenter && typeof windowPresenter.focusActiveTab === 'function') { - windowPresenter.focusActiveTab(windowId, 'initial') - } - }, 300) + // Only call focusActiveTab for chat windows, not browser windows + // Browser windows should stay hidden when created via tool calls + if (windowType !== 'browser') { + setTimeout(() => { + const windowPresenter = presenter.windowPresenter as any + if (windowPresenter && typeof windowPresenter.focusActiveTab === 'function') { + windowPresenter.focusActiveTab(windowId, 'initial') + } + }, 300) + } }) } @@ -743,7 +755,16 @@ export class TabPresenter implements ITabPresenter { // Re-adding ensures it's on top in most view hierarchies window.contentView.addChildView(view) this.updateViewBounds(window, view) - if (!view.webContents.isDestroyed()) { + const windowType = this.getWindowType(window.id) + const isVisible = window.isVisible() + const isFocused = window.isFocused() + + // For browser windows, only focus if window is already focused + // This prevents focus stealing when tools call activateTab() on hidden browser windows + // For chat windows, focus if visible (normal behavior) + const shouldFocus = windowType === 'browser' ? isVisible && isFocused : isVisible + + if (shouldFocus && !view.webContents.isDestroyed()) { view.webContents.focus() } } diff --git a/src/main/presenter/threadPresenter/handlers/streamGenerationHandler.ts b/src/main/presenter/threadPresenter/handlers/streamGenerationHandler.ts index 9c13252a3..33474e20d 100644 --- a/src/main/presenter/threadPresenter/handlers/streamGenerationHandler.ts +++ b/src/main/presenter/threadPresenter/handlers/streamGenerationHandler.ts @@ -21,6 +21,9 @@ import { presenter } from '@/presenter' import type { SearchHandler } from './searchHandler' import { BaseHandler, type ThreadHandlerContext } from './baseHandler' import type { LLMEventHandler } from './llmEventHandler' +import fs from 'fs' +import path from 'path' +import { app } from 'electron' interface StreamGenerationHandlerDeps { searchHandler: SearchHandler @@ -47,6 +50,53 @@ export class StreamGenerationHandler extends BaseHandler { void this.llmEventHandler } + private getDefaultAgentWorkspacePath(conversationId?: string | null): string { + const tempRoot = path.join(app.getPath('temp'), 'deepchat-agent', 'workspaces') + try { + fs.mkdirSync(tempRoot, { recursive: true }) + } catch (error) { + console.warn( + '[StreamGenerationHandler] Failed to create default workspace root, using system temp:', + error + ) + return app.getPath('temp') + } + + if (!conversationId) { + return tempRoot + } + + const workspaceDir = path.join(tempRoot, conversationId) + try { + fs.mkdirSync(workspaceDir, { recursive: true }) + return workspaceDir + } catch (error) { + console.warn( + '[StreamGenerationHandler] Failed to create conversation workspace, using root temp workspace:', + error + ) + return tempRoot + } + } + + private async ensureAgentWorkspacePath( + conversationId: string, + conversation: CONVERSATION + ): Promise { + const currentPath = conversation.settings.agentWorkspacePath?.trim() + if (currentPath) return + + const fallback = this.getDefaultAgentWorkspacePath(conversationId) + try { + await presenter.threadPresenter.updateConversationSettings(conversationId, { + agentWorkspacePath: fallback + }) + } catch (error) { + console.warn('[StreamGenerationHandler] Failed to persist agent workspace path:', error) + } + conversation.settings.agentWorkspacePath = fallback + } + async startStreamCompletion( conversationId: string, queryMsgId?: string, @@ -67,6 +117,15 @@ export class StreamGenerationHandler extends BaseHandler { selectedVariantsMap ) + const chatMode = + ((await this.ctx.configPresenter.getSetting('input_chatMode')) as + | 'chat' + | 'agent' + | 'acp agent') || 'chat' + if (chatMode === 'agent') { + await this.ensureAgentWorkspacePath(conversationId, conversation) + } + const { providerId, modelId } = conversation.settings const modelConfig = this.ctx.configPresenter.getModelConfig(modelId, providerId) if (!modelConfig) { diff --git a/src/main/presenter/threadPresenter/index.ts b/src/main/presenter/threadPresenter/index.ts index c33759a4a..84ac050ec 100644 --- a/src/main/presenter/threadPresenter/index.ts +++ b/src/main/presenter/threadPresenter/index.ts @@ -2,6 +2,7 @@ import { IThreadPresenter, CONVERSATION, CONVERSATION_SETTINGS, + ParentSelection, MESSAGE_ROLE, MESSAGE_STATUS, MESSAGE_METADATA, @@ -18,7 +19,7 @@ import { MessageManager } from './managers/messageManager' import { eventBus } from '@/eventbus' import { AssistantMessage, Message, SearchEngineTemplate } from '@shared/chat' import { SearchManager } from './managers/searchManager' -import { TAB_EVENTS } from '@/events' +import { TAB_EVENTS, CONVERSATION_EVENTS } from '@/events' import { ConversationExportFormat, buildNowledgeMemExportData @@ -249,6 +250,82 @@ export class ThreadPresenter implements IThreadPresenter { await this.conversationManager.setActiveConversation(conversationId, tabId) } + async openConversationInNewTab(payload: { + conversationId: string + tabId?: number + messageId?: string + childConversationId?: string + }): Promise { + const { conversationId, tabId, messageId, childConversationId } = payload + + await this.sqlitePresenter.getConversation(conversationId) + + const existingTabId = await this.conversationManager.findTabForConversation(conversationId) + if (existingTabId !== null) { + await presenter.tabPresenter.switchTab(existingTabId) + if (messageId || childConversationId) { + eventBus.sendToTab(existingTabId, CONVERSATION_EVENTS.SCROLL_TO_MESSAGE, { + conversationId, + messageId, + childConversationId + }) + } + return existingTabId + } + + const sourceWindowId = + typeof tabId === 'number' + ? presenter.tabPresenter.getWindowIdByWebContentsId(tabId) + : undefined + const fallbackWindowId = presenter.windowPresenter.getFocusedWindow()?.id + const windowId = sourceWindowId ?? fallbackWindowId + + if (!windowId) { + if (typeof tabId === 'number') { + await this.conversationManager.setActiveConversation(conversationId, tabId) + if (messageId || childConversationId) { + eventBus.sendToTab(tabId, CONVERSATION_EVENTS.SCROLL_TO_MESSAGE, { + conversationId, + messageId, + childConversationId + }) + } + return tabId + } + return null + } + + const newTabId = await presenter.tabPresenter.createTab(windowId, 'local://chat', { + active: true + }) + + if (!newTabId) { + if (typeof tabId === 'number') { + await this.conversationManager.setActiveConversation(conversationId, tabId) + if (messageId || childConversationId) { + eventBus.sendToTab(tabId, CONVERSATION_EVENTS.SCROLL_TO_MESSAGE, { + conversationId, + messageId, + childConversationId + }) + } + return tabId + } + return null + } + + await this.waitForTabReady(newTabId) + await this.conversationManager.setActiveConversation(conversationId, newTabId) + if (messageId || childConversationId) { + eventBus.sendToTab(newTabId, CONVERSATION_EVENTS.SCROLL_TO_MESSAGE, { + conversationId, + messageId, + childConversationId + }) + } + return newTabId + } + async getActiveConversation(tabId: number): Promise { return this.conversationManager.getActiveConversation(tabId) } @@ -696,6 +773,118 @@ export class ThreadPresenter implements IThreadPresenter { ) } + async createChildConversationFromSelection(payload: { + parentConversationId: string + parentMessageId: string + parentSelection: ParentSelection | string + title: string + settings?: Partial + tabId?: number + openInNewTab?: boolean + }): Promise { + const { + parentConversationId, + parentMessageId, + parentSelection, + title, + settings, + tabId, + openInNewTab + } = payload + + const parentConversation = await this.sqlitePresenter.getConversation(parentConversationId) + if (!parentConversation) { + throw new Error('Parent conversation not found') + } + + await this.messageManager.getMessage(parentMessageId) + + const mergedSettings = { + ...parentConversation.settings, + ...settings + } + mergedSettings.selectedVariantsMap = {} + + const newConversationId = await this.sqlitePresenter.createConversation(title, mergedSettings) + const resolvedParentSelection = + typeof parentSelection === 'string' + ? (() => { + try { + return JSON.parse(parentSelection) as ParentSelection + } catch { + throw new Error('Invalid parent selection payload') + } + })() + : parentSelection + await this.sqlitePresenter.updateConversation(newConversationId, { + is_new: 0, + parentConversationId, + parentMessageId, + parentSelection: resolvedParentSelection + }) + + const shouldOpenInNewTab = openInNewTab ?? true + if (shouldOpenInNewTab) { + const sourceWindowId = + typeof tabId === 'number' + ? presenter.tabPresenter.getWindowIdByWebContentsId(tabId) + : undefined + const fallbackWindowId = presenter.windowPresenter.getFocusedWindow()?.id + const windowId = sourceWindowId ?? fallbackWindowId + + if (windowId) { + const newTabId = await presenter.tabPresenter.createTab(windowId, 'local://chat', { + active: true + }) + if (newTabId) { + await this.waitForTabReady(newTabId) + await this.conversationManager.setActiveConversation(newConversationId, newTabId) + await this.broadcastThreadListUpdate() + return newConversationId + } + } + } + + if (typeof tabId === 'number') { + await this.conversationManager.setActiveConversation(newConversationId, tabId) + } + + await this.broadcastThreadListUpdate() + return newConversationId + } + + async listChildConversationsByParent(parentConversationId: string): Promise { + return this.sqlitePresenter.listChildConversationsByParent(parentConversationId) + } + + async listChildConversationsByMessageIds(parentMessageIds: string[]): Promise { + return this.sqlitePresenter.listChildConversationsByMessageIds(parentMessageIds) + } + + private async waitForTabReady(tabId: number): Promise { + return new Promise((resolve) => { + let resolved = false + const onTabReady = (readyTabId: number) => { + if (readyTabId === tabId && !resolved) { + resolved = true + eventBus.off(TAB_EVENTS.RENDERER_TAB_READY, onTabReady) + clearTimeout(timeoutId) + resolve() + } + } + + eventBus.on(TAB_EVENTS.RENDERER_TAB_READY, onTabReady) + + const timeoutId = setTimeout(() => { + if (!resolved) { + resolved = true + eventBus.off(TAB_EVENTS.RENDERER_TAB_READY, onTabReady) + resolve() + } + }, 3000) + }) + } + // 翻译文本 async translateText(text: string, tabId: number): Promise { return this.utilityHandler.translateText(text, tabId) diff --git a/src/main/presenter/threadPresenter/managers/conversationManager.ts b/src/main/presenter/threadPresenter/managers/conversationManager.ts index f5b7d32ee..31b353729 100644 --- a/src/main/presenter/threadPresenter/managers/conversationManager.ts +++ b/src/main/presenter/threadPresenter/managers/conversationManager.ts @@ -183,6 +183,8 @@ export class ConversationManager { defaultSettings.forcedSearch = undefined defaultSettings.searchStrategy = undefined defaultSettings.selectedVariantsMap = {} + defaultSettings.acpWorkdirMap = {} + defaultSettings.agentWorkspacePath = null } const sanitizedSettings: Partial = { ...settings } @@ -193,7 +195,6 @@ export class ConversationManager { delete sanitizedSettings[typedKey] } }) - const mergedSettings = { ...defaultSettings } const previewSettings = { ...mergedSettings, ...sanitizedSettings } @@ -223,7 +224,6 @@ export class ConversationManager { if (mergedSettings.temperature === undefined || mergedSettings.temperature === null) { mergedSettings.temperature = defaultModelsSettings?.temperature ?? 0.7 } - const conversationId = await this.sqlitePresenter.createConversation(title, mergedSettings) if (options.forceNewAndActivate) { diff --git a/src/main/presenter/threadPresenter/managers/messageManager.ts b/src/main/presenter/threadPresenter/managers/messageManager.ts index 148a5f198..48370d923 100644 --- a/src/main/presenter/threadPresenter/managers/messageManager.ts +++ b/src/main/presenter/threadPresenter/managers/messageManager.ts @@ -14,7 +14,6 @@ import { UserMessageMentionBlock, UserMessageCodeBlock } from '@shared/chat' -import { formatUserMessageContent } from '../utils/messageContent' import { eventBus, SendTarget } from '@/eventbus' import { CONVERSATION_EVENTS } from '@/events' @@ -29,7 +28,17 @@ export class MessageManager implements IMessageManager { msgContentBlock: (UserMessageTextBlock | UserMessageMentionBlock | UserMessageCodeBlock)[] ): string { if (!Array.isArray(msgContentBlock)) return '' - return msgContentBlock.map((block) => block.content || '').join('') + return msgContentBlock + .map((block) => { + if (block.type === 'mention') { + if (block.category === 'context') { + const label = block.id?.trim() || 'context' + return `@${label}` + } + } + return block.content || '' + }) + .join('') } private convertToMessage(sqliteMessage: SQLITE_MESSAGE): Message { @@ -266,7 +275,7 @@ export class MessageManager implements IMessageManager { ...msg, content: { ...userContent, - text: formatUserMessageContent(userContent.content) + text: this.formatUserMessageContentForDisplay(userContent.content) } } } diff --git a/src/main/presenter/threadPresenter/utils/messageContent.ts b/src/main/presenter/threadPresenter/utils/messageContent.ts index 0932376e2..11034d7c0 100644 --- a/src/main/presenter/threadPresenter/utils/messageContent.ts +++ b/src/main/presenter/threadPresenter/utils/messageContent.ts @@ -88,6 +88,8 @@ export function formatUserMessageContent(msgContentBlock: UserMessageRichBlock[] return `@${block.id}` } else if (block.category === 'files') { return `@${block.id}` + } else if (block.category === 'context') { + return block.content } else if (block.category === 'prompts') { try { const promptData = JSON.parse(block.content) diff --git a/src/main/presenter/threadPresenter/utils/promptBuilder.ts b/src/main/presenter/threadPresenter/utils/promptBuilder.ts index abb467c63..d6da46cb3 100644 --- a/src/main/presenter/threadPresenter/utils/promptBuilder.ts +++ b/src/main/presenter/threadPresenter/utils/promptBuilder.ts @@ -78,6 +78,12 @@ export async function preparePromptContent({ promptTokens: number }> { const { systemPrompt, contextLength, artifacts, enabledMcpTools } = conversation.settings + const chatMode = + ((await presenter.configPresenter.getSetting('input_chatMode')) as + | 'chat' + | 'agent' + | 'acp agent') || 'chat' + const isAgentMode = chatMode === 'agent' const isImageGeneration = modelType === ModelType.ImageGeneration const enrichedUserMessage = @@ -86,6 +92,13 @@ export async function preparePromptContent({ : '' const finalSystemPrompt = enhanceSystemPromptWithDateTime(systemPrompt, isImageGeneration) + const agentWorkspacePath = conversation.settings.agentWorkspacePath?.trim() + const finalSystemPromptWithWorkspace = + isAgentMode && agentWorkspacePath + ? finalSystemPrompt + ? `${finalSystemPrompt}\n\nCurrent working directory: ${agentWorkspacePath}` + : `Current working directory: ${agentWorkspacePath}` + : finalSystemPrompt let mcpTools: MCPToolDefinition[] = [] if (!isImageGeneration) { @@ -102,9 +115,7 @@ export async function preparePromptContent({ let browserContextPrompt = '' const { providerId, modelId } = conversation.settings - // Check if browser window is open - independent of MCP - const hasBrowserWindow = await presenter.yoBrowserPresenter.hasWindow() - if (!isImageGeneration && hasBrowserWindow) { + if (!isImageGeneration && isAgentMode) { try { const supportsVision = modelCapabilities.supportsVision(providerId, modelId) const browserTools = await presenter.yoBrowserPresenter.getToolDefinitions(supportsVision) @@ -121,8 +132,10 @@ export async function preparePromptContent({ } const finalSystemPromptWithBrowser = browserContextPrompt - ? `${finalSystemPrompt}\n${browserContextPrompt}` - : finalSystemPrompt + ? finalSystemPromptWithWorkspace + ? `${finalSystemPromptWithWorkspace}\n${browserContextPrompt}` + : browserContextPrompt + : finalSystemPromptWithWorkspace const systemPromptTokens = !isImageGeneration && finalSystemPromptWithBrowser @@ -912,5 +925,5 @@ function enhanceSystemPromptWithDateTime( hour12: false }) - return `${systemPrompt}\nToday's date and time is ${currentDateTime}` + return `${systemPrompt}\nToday is ${currentDateTime}` } diff --git a/src/main/presenter/toolPresenter/index.ts b/src/main/presenter/toolPresenter/index.ts new file mode 100644 index 000000000..41ec59fb1 --- /dev/null +++ b/src/main/presenter/toolPresenter/index.ts @@ -0,0 +1,145 @@ +import type { + IConfigPresenter, + IMCPPresenter, + IYoBrowserPresenter, + MCPToolDefinition, + MCPToolCall, + MCPToolResponse +} from '@shared/presenter' +import { ToolMapper } from './toolMapper' +import { AgentToolManager } from '../llmProviderPresenter/agent/agentToolManager' +import { jsonrepair } from 'jsonrepair' + +export interface IToolPresenter { + getAllToolDefinitions(context: { + enabledMcpTools?: string[] + chatMode?: 'chat' | 'agent' | 'acp agent' + supportsVision?: boolean + agentWorkspacePath?: string | null + }): Promise + callTool(request: MCPToolCall): Promise<{ content: unknown; rawData: MCPToolResponse }> +} + +interface ToolPresenterOptions { + mcpPresenter: IMCPPresenter + yoBrowserPresenter: IYoBrowserPresenter + configPresenter: IConfigPresenter +} + +/** + * ToolPresenter - Unified tool routing presenter + * Manages all tool sources (MCP, Agent) and provides unified interface + */ +export class ToolPresenter implements IToolPresenter { + private readonly mapper: ToolMapper + private readonly options: ToolPresenterOptions + private agentToolManager: AgentToolManager | null = null + + constructor(options: ToolPresenterOptions) { + this.options = options + this.mapper = new ToolMapper() + } + + /** + * Get all tool definitions from all sources + * Returns unified MCP-format tool definitions + */ + async getAllToolDefinitions(context: { + enabledMcpTools?: string[] + chatMode?: 'chat' | 'agent' | 'acp agent' + supportsVision?: boolean + agentWorkspacePath?: string | null + }): Promise { + const defs: MCPToolDefinition[] = [] + this.mapper.clear() + + const chatMode = context.chatMode || 'chat' + const supportsVision = context.supportsVision || false + const agentWorkspacePath = context.agentWorkspacePath || null + + // 1. Get MCP tools + const mcpDefs = await this.options.mcpPresenter.getAllToolDefinitions(context.enabledMcpTools) + defs.push(...mcpDefs) + this.mapper.registerTools(mcpDefs, 'mcp') + + // 2. Get Agent tools (only in agent or acp agent mode) + if (chatMode !== 'chat') { + // Initialize or update AgentToolManager if workspace path changed + if (!this.agentToolManager) { + this.agentToolManager = new AgentToolManager({ + yoBrowserPresenter: this.options.yoBrowserPresenter, + agentWorkspacePath + }) + } + + try { + const agentDefs = await this.agentToolManager.getAllToolDefinitions({ + chatMode, + supportsVision, + agentWorkspacePath + }) + const filteredAgentDefs = agentDefs.filter((tool) => { + if (!this.mapper.hasTool(tool.function.name)) return true + console.warn( + `[ToolPresenter] Tool name conflict for '${tool.function.name}', preferring MCP tool.` + ) + return false + }) + defs.push(...filteredAgentDefs) + this.mapper.registerTools(filteredAgentDefs, 'agent') + } catch (error) { + console.warn('[ToolPresenter] Failed to load Agent tool definitions', error) + } + } + + return defs + } + + /** + * Call a tool, routing to the appropriate source based on mapping + */ + async callTool(request: MCPToolCall): Promise<{ content: unknown; rawData: MCPToolResponse }> { + const toolName = request.function.name + const source = this.mapper.getToolSource(toolName) + + if (!source) { + throw new Error(`Tool ${toolName} not found in any source`) + } + + if (source === 'agent') { + if (!this.agentToolManager) { + throw new Error(`Agent tool manager not initialized for tool ${toolName}`) + } + // Route to Agent tool manager + let args: Record = {} + const argsString = request.function.arguments || '' + if (argsString.trim().length > 0) { + try { + args = JSON.parse(argsString) as Record + } catch (error) { + console.warn('[ToolPresenter] Failed to parse tool arguments, trying jsonrepair:', error) + try { + args = JSON.parse(jsonrepair(argsString)) as Record + } catch (error) { + console.warn( + '[ToolPresenter] Failed to repair tool arguments, using empty args.', + error + ) + args = {} + } + } + } + const response = await this.agentToolManager.callTool(toolName, args) + return { + content: typeof response === 'string' ? response : JSON.stringify(response), + rawData: { + toolCallId: request.id, + content: response + } + } + } + + // Route to MCP (default) + return await this.options.mcpPresenter.callTool(request) + } +} diff --git a/src/main/presenter/toolPresenter/toolMapper.ts b/src/main/presenter/toolPresenter/toolMapper.ts new file mode 100644 index 000000000..ba7247258 --- /dev/null +++ b/src/main/presenter/toolPresenter/toolMapper.ts @@ -0,0 +1,81 @@ +import type { MCPToolDefinition } from '@shared/presenter' + +export type ToolSource = 'mcp' | 'agent' + +export interface ToolMapping { + toolName: string + source: ToolSource + originalName?: string +} + +/** + * ToolMapper - Maps tool names to their sources (MCP or Agent) + * Supports future tool deduplication and mapping features + */ +export class ToolMapper { + private toolNameToSource = new Map() + private toolMappings: ToolMapping[] = [] + + /** + * Register a tool mapping + */ + registerTool(toolName: string, source: ToolSource, originalName?: string): void { + this.toolNameToSource.set(toolName, source) + this.toolMappings.push({ + toolName, + source, + originalName: originalName || toolName + }) + } + + /** + * Register multiple tools from tool definitions + */ + registerTools(tools: MCPToolDefinition[], source: ToolSource): void { + for (const tool of tools) { + this.registerTool(tool.function.name, source) + } + } + + /** + * Get the source for a tool name + */ + getToolSource(toolName: string): ToolSource | undefined { + return this.toolNameToSource.get(toolName) + } + + /** + * Check if a tool is mapped + */ + hasTool(toolName: string): boolean { + return this.toolNameToSource.has(toolName) + } + + /** + * Clear all mappings + */ + clear(): void { + this.toolNameToSource.clear() + this.toolMappings = [] + } + + /** + * Get all mappings + */ + getAllMappings(): ToolMapping[] { + return [...this.toolMappings] + } + + /** + * Future: Support tool deduplication + * If MCP and Agent have the same tool name, map to MCP by default + */ + resolveDuplicate(toolName: string, preferredSource?: ToolSource): ToolSource { + const existing = this.toolNameToSource.get(toolName) + if (existing && preferredSource && existing !== preferredSource) { + // Future: Allow configuration to prefer one source over another + return preferredSource + } + return existing || 'mcp' + } +} diff --git a/src/main/presenter/upgradePresenter/index.ts b/src/main/presenter/upgradePresenter/index.ts index 9d9584eb1..737dc5a0e 100644 --- a/src/main/presenter/upgradePresenter/index.ts +++ b/src/main/presenter/upgradePresenter/index.ts @@ -8,13 +8,22 @@ import { import { eventBus, SendTarget } from '@/eventbus' import { UPDATE_EVENTS, WINDOW_EVENTS } from '@/events' import electronUpdater from 'electron-updater' -import axios from 'axios' -import { compare } from 'compare-versions' +import type { UpdateInfo } from 'electron-updater' import fs from 'fs' import path from 'path' const { autoUpdater } = electronUpdater +const GITHUB_OWNER = 'ThinkInAIXYZ' +const GITHUB_REPO = 'deepchat' +const UPDATE_CHANNEL_STABLE = 'stable' +const UPDATE_CHANNEL_BETA = 'beta' + +type ReleaseNoteItem = { + version?: string | null + note?: string | null +} + // 版本信息接口 interface VersionInfo { version: string @@ -24,26 +33,41 @@ interface VersionInfo { downloadUrl: string } -// 获取平台和架构信息 -const getPlatformInfo = () => { - const platform = process.platform - const arch = process.arch - let platformString = '' - - if (platform === 'win32') { - platformString = arch === 'arm64' ? 'winarm' : 'winx64' - } else if (platform === 'darwin') { - platformString = arch === 'arm64' ? 'macarm' : 'macx64' - } else if (platform === 'linux') { - platformString = arch === 'arm64' ? 'linuxarm' : 'linuxx64' - } +const normalizeUpdateChannel = (channel?: string): 'stable' | 'beta' => { + return channel === UPDATE_CHANNEL_BETA ? UPDATE_CHANNEL_BETA : UPDATE_CHANNEL_STABLE +} - return platformString +const formatTagVersion = (version: string): string => { + return version.startsWith('v') ? version : `v${version}` } -// 获取版本检查的基础URL -const getVersionCheckBaseUrl = () => { - return 'https://cdn.deepchatai.cn' +const buildReleaseUrl = (version: string): string => { + return `https://github.com/${GITHUB_OWNER}/${GITHUB_REPO}/releases/tag/${formatTagVersion(version)}` +} + +const formatReleaseNotes = (notes?: string | ReleaseNoteItem[] | null): string => { + if (!notes) return '' + if (typeof notes === 'string') return notes + if (!Array.isArray(notes)) return String(notes) + const blocks = notes + .map((note) => { + const title = note.version ? `## ${note.version}` : '' + const body = note.note ?? '' + return [title, body].filter(Boolean).join('\n') + }) + .filter((entry) => entry.length > 0) + return blocks.join('\n\n') +} + +const toVersionInfo = (info: UpdateInfo): VersionInfo => { + const releaseUrl = buildReleaseUrl(info.version) + return { + version: info.version, + releaseDate: info.releaseDate || '', + releaseNotes: formatReleaseNotes(info.releaseNotes), + githubUrl: releaseUrl, + downloadUrl: releaseUrl + } } // 获取自动更新状态文件路径 @@ -57,8 +81,8 @@ export class UpgradePresenter implements IUpgradePresenter { private _progress: UpdateProgress | null = null private _error: string | null = null private _versionInfo: VersionInfo | null = null - private _baseUrl: string private _lastCheckTime: number = 0 // 上次检查更新的时间戳 + private _lastCheckType?: string private _updateMarkerPath: string private _previousUpdateFailed: boolean = false // 标记上次更新是否失败 private _configPresenter: IConfigPresenter // 配置presenter @@ -66,7 +90,6 @@ export class UpgradePresenter implements IUpgradePresenter { constructor(configPresenter: IConfigPresenter) { this._configPresenter = configPresenter - this._baseUrl = getVersionCheckBaseUrl() this._updateMarkerPath = getUpdateMarkerFilePath() // 配置自动更新 @@ -98,18 +121,33 @@ export class UpgradePresenter implements IUpgradePresenter { this._lock = false this._status = 'not-available' eventBus.sendToRenderer(UPDATE_EVENTS.STATUS_CHANGED, SendTarget.ALL_WINDOWS, { - status: this._status + status: this._status, + type: this._lastCheckType }) }) // 有可用更新 autoUpdater.on('update-available', (info) => { console.log('检测到新版本', info) - this._status = 'available' + this._versionInfo = toVersionInfo(info) - // 重要:这里不再使用info中的信息更新this._versionInfo - // 而是确保使用之前从versionUrl获取的原始信息 - console.log('使用已保存的版本信息:', this._versionInfo) + if (this._previousUpdateFailed) { + console.log('上次更新失败,本次不进行自动更新,改为手动更新') + this._status = 'error' + this._error = '自动更新可能不稳定,请手动下载更新' + eventBus.sendToRenderer(UPDATE_EVENTS.STATUS_CHANGED, SendTarget.ALL_WINDOWS, { + status: this._status, + error: this._error, + info: this._versionInfo + }) + return + } + + this._status = 'available' + eventBus.sendToRenderer(UPDATE_EVENTS.STATUS_CHANGED, SendTarget.ALL_WINDOWS, { + status: this._status, + info: this._versionInfo + }) // 检测到更新后自动开始下载 this.startDownloadUpdate() }) @@ -137,6 +175,10 @@ export class UpgradePresenter implements IUpgradePresenter { this._lock = false this._status = 'downloaded' + if (!this._versionInfo) { + this._versionInfo = toVersionInfo(info) + } + // 写入更新标记文件 this.writeUpdateMarker(this._versionInfo?.version || info.version) @@ -250,83 +292,17 @@ export class UpgradePresenter implements IUpgradePresenter { try { this._status = 'checking' + this._lastCheckType = type eventBus.sendToRenderer(UPDATE_EVENTS.STATUS_CHANGED, SendTarget.ALL_WINDOWS, { status: this._status }) - // 首先获取版本信息文件 - const platformString = getPlatformInfo() - const rawChannel = this._configPresenter.getUpdateChannel() - const updateChannel = rawChannel === 'canary' ? 'canary' : 'upgrade' // Sanitize channel - const randomId = Math.floor(Date.now() / 3600000) // Timestamp truncated to hour - const versionPath = updateChannel - const versionUrl = `${this._baseUrl}/${versionPath}/${platformString}.json?noCache=${randomId}` - console.log('versionUrl', versionUrl) - const response = await axios.get(versionUrl, { timeout: 60000 }) // Add network timeout - const remoteVersion = response.data - const currentVersion = app.getVersion() - - // 保存完整的远程版本信息到内存中,作为唯一的标准信息源 - this._versionInfo = { - version: remoteVersion.version, - releaseDate: remoteVersion.releaseDate, - releaseNotes: remoteVersion.releaseNotes, - githubUrl: remoteVersion.githubUrl, - downloadUrl: remoteVersion.downloadUrl - } - - console.log('cache versionInfo:', this._versionInfo) + const updateChannel = normalizeUpdateChannel(this._configPresenter.getUpdateChannel()) + autoUpdater.allowPrerelease = updateChannel === UPDATE_CHANNEL_BETA + autoUpdater.channel = updateChannel === UPDATE_CHANNEL_BETA ? UPDATE_CHANNEL_BETA : 'latest' - // 更新上次检查时间 + await autoUpdater.checkForUpdates() this._lastCheckTime = Date.now() - - // 比较版本号 - if (compare(remoteVersion.version, currentVersion, '>')) { - // 有新版本 - - // 如果上次更新失败,这次不再尝试自动更新,直接进入错误状态让用户手动更新 - if (this._previousUpdateFailed) { - console.log('上次更新失败,本次不进行自动更新,改为手动更新') - this._status = 'error' - this._error = '自动更新可能不稳定,请手动下载更新' - - eventBus.sendToRenderer(UPDATE_EVENTS.STATUS_CHANGED, SendTarget.ALL_WINDOWS, { - status: this._status, - error: this._error, - info: this._versionInfo - }) - return - } - - // 设置自动更新的URL - const autoUpdateUrl = - updateChannel === 'canary' - ? `${this._baseUrl}/canary/${platformString}` - : `${this._baseUrl}/upgrade/v${remoteVersion.version}/${platformString}` - console.log('设置自动更新URL:', autoUpdateUrl) - autoUpdater.setFeedURL(autoUpdateUrl) - - try { - // 使用electron-updater检查更新,但不自动下载 - await autoUpdater.checkForUpdates() - } catch (err) { - console.error('自动更新检查失败,回退到手动更新', err) - // 如果自动更新失败,回退到手动更新 - this._status = 'available' - - eventBus.sendToRenderer(UPDATE_EVENTS.STATUS_CHANGED, SendTarget.ALL_WINDOWS, { - status: this._status, - info: this._versionInfo // 使用已保存的版本信息 - }) - } - } else { - // 没有新版本 - this._status = 'not-available' - eventBus.sendToRenderer(UPDATE_EVENTS.STATUS_CHANGED, SendTarget.ALL_WINDOWS, { - status: this._status, - type - }) - } } catch (error: Error | unknown) { this._status = 'error' this._error = error instanceof Error ? error.message : String(error) @@ -355,13 +331,14 @@ export class UpgradePresenter implements IUpgradePresenter { } async goDownloadUpgrade(type: 'github' | 'netdisk'): Promise { + const fallbackUrl = `https://github.com/${GITHUB_OWNER}/${GITHUB_REPO}/releases` if (type === 'github') { - const url = this._versionInfo?.githubUrl + const url = this._versionInfo?.githubUrl || fallbackUrl if (url) { shell.openExternal(url) } } else if (type === 'netdisk') { - const url = this._versionInfo?.downloadUrl + const url = this._versionInfo?.downloadUrl || fallbackUrl if (url) { shell.openExternal(url) } diff --git a/src/main/presenter/windowPresenter/index.ts b/src/main/presenter/windowPresenter/index.ts index ccda1f77e..c07cd1d4a 100644 --- a/src/main/presenter/windowPresenter/index.ts +++ b/src/main/presenter/windowPresenter/index.ts @@ -387,8 +387,9 @@ export class WindowPresenter implements IWindowPresenter { /** * 显示指定 ID 的窗口。如果未指定 ID,则显示焦点窗口或第一个窗口。 * @param windowId 可选。要显示的窗口 ID。 + * @param shouldFocus 可选。是否获取焦点,默认为 true。 */ - show(windowId?: number): void { + show(windowId?: number, shouldFocus: boolean = true): void { let targetWindow: BrowserWindow | undefined if (windowId === undefined) { // 未指定 ID,查找焦点窗口或第一个窗口 @@ -410,7 +411,9 @@ export class WindowPresenter implements IWindowPresenter { } targetWindow.show() - targetWindow.focus() // Bring to foreground + if (shouldFocus) { + targetWindow.focus() // Bring to foreground + } // 触发恢复逻辑以确保活动标签页可见且位置正确 this.handleWindowRestore(targetWindow.id).catch((error) => { console.error(`Error handling restore logic after showing window ${targetWindow!.id}:`, error) @@ -678,10 +681,14 @@ export class WindowPresenter implements IWindowPresenter { // 根据平台选择图标 const iconFile = nativeImage.createFromPath(process.platform === 'win32' ? iconWin : icon) + // 根据窗口类型设置默认宽度 + const defaultWidth = windowType === 'browser' ? 600 : 800 + const defaultHeight = 620 + // 使用窗口状态管理器恢复位置和尺寸 const shellWindowState = windowStateManager({ - defaultWidth: 800, - defaultHeight: 620 + defaultWidth, + defaultHeight }) // 计算初始位置,确保窗口完全在屏幕范围内 @@ -757,7 +764,16 @@ export class WindowPresenter implements IWindowPresenter { shellWindow.on('ready-to-show', () => { console.log(`Window ${windowId} is ready to show.`) if (!shellWindow.isDestroyed()) { - shellWindow.show() // 显示窗口避免白屏 + // For browser windows, don't auto-show/focus to prevent stealing focus from chat windows + // Browser windows should only be shown when explicitly requested by user (e.g., clicking browser button) + const tabPresenterInstance = presenter.tabPresenter as TabPresenter + const windowType = tabPresenterInstance.getWindowType(windowId) + const shouldAutoShow = windowType !== 'browser' + + if (shouldAutoShow) { + shellWindow.show() + shellWindow.focus() + } eventBus.sendToMain(WINDOW_EVENTS.WINDOW_CREATED, windowId) } else { console.warn(`Window ${windowId} was destroyed before ready-to-show.`) @@ -1029,10 +1045,7 @@ export class WindowPresenter implements IWindowPresenter { }) } - // 开发模式下可选开启 DevTools - if (is.dev) { - shellWindow.webContents.openDevTools({ mode: 'detach' }) - } + // DevTools 不再自动打开,需要手动通过菜单或快捷键打开 console.log(`Shell window ${windowId} created successfully.`) @@ -1084,14 +1097,30 @@ export class WindowPresenter implements IWindowPresenter { overlay.setIgnoreMouseEvents(true, { forward: true }) - const sync = () => { + const syncOnMoved = () => { const current = this.tooltipOverlayWindows.get(parentWindow.id) if (!current || current.isDestroyed() || parentWindow.isDestroyed()) return this.syncTooltipOverlayBounds(parentWindow, current) } - parentWindow.on('move', sync) - parentWindow.on('resize', sync) + // Debounce resize to avoid excessive sync during window resize. + let resizeSyncTimer: NodeJS.Timeout | null = null + const syncOnResize = () => { + const current = this.tooltipOverlayWindows.get(parentWindow.id) + if (!current || current.isDestroyed() || parentWindow.isDestroyed()) return + + if (resizeSyncTimer) { + clearTimeout(resizeSyncTimer) + } + + resizeSyncTimer = setTimeout(() => { + this.syncTooltipOverlayBounds(parentWindow, current) + resizeSyncTimer = null + }, 100) + } + + parentWindow.on('moved', syncOnMoved) + parentWindow.on('resize', syncOnResize) parentWindow.on('show', () => { if (!overlay.isDestroyed()) overlay.showInactive() }) diff --git a/src/main/presenter/workspacePresenter/concurrencyLimiter.ts b/src/main/presenter/workspacePresenter/concurrencyLimiter.ts new file mode 100644 index 000000000..d6456dfe9 --- /dev/null +++ b/src/main/presenter/workspacePresenter/concurrencyLimiter.ts @@ -0,0 +1,25 @@ +export class ConcurrencyLimiter { + private activeCount = 0 + private readonly queue: Array<() => void> = [] + + constructor(private readonly limit: number = 10) {} + + async run(task: () => Promise): Promise { + if (this.activeCount >= this.limit) { + await new Promise((resolve) => { + this.queue.push(resolve) + }) + } + + this.activeCount += 1 + try { + return await task() + } finally { + this.activeCount -= 1 + const next = this.queue.shift() + if (next) { + next() + } + } + } +} diff --git a/src/main/presenter/acpWorkspacePresenter/directoryReader.ts b/src/main/presenter/workspacePresenter/directoryReader.ts similarity index 87% rename from src/main/presenter/acpWorkspacePresenter/directoryReader.ts rename to src/main/presenter/workspacePresenter/directoryReader.ts index 483a77be0..b23ab436d 100644 --- a/src/main/presenter/acpWorkspacePresenter/directoryReader.ts +++ b/src/main/presenter/workspacePresenter/directoryReader.ts @@ -1,6 +1,6 @@ import fs from 'fs/promises' import path from 'path' -import type { AcpFileNode } from '@shared/presenter' +import type { WorkspaceFileNode } from '@shared/presenter' // Ignored directory/file patterns const IGNORED_PATTERNS = [ @@ -27,10 +27,10 @@ const IGNORED_PATTERNS = [ * Directories will have children = undefined, indicating not yet loaded * @param dirPath Directory path */ -export async function readDirectoryShallow(dirPath: string): Promise { +export async function readDirectoryShallow(dirPath: string): Promise { try { const entries = await fs.readdir(dirPath, { withFileTypes: true }) - const nodes: AcpFileNode[] = [] + const nodes: WorkspaceFileNode[] = [] for (const entry of entries) { // Skip ignored files/directories @@ -44,7 +44,7 @@ export async function readDirectoryShallow(dirPath: string): Promise { +): Promise { // Boundary check: depth limit if (currentDepth >= maxDepth) { return [] @@ -90,7 +90,7 @@ export async function readDirectoryTree( try { const entries = await fs.readdir(dirPath, { withFileTypes: true }) - const nodes: AcpFileNode[] = [] + const nodes: WorkspaceFileNode[] = [] for (const entry of entries) { // Skip ignored files/directories @@ -104,7 +104,7 @@ export async function readDirectoryTree( } const fullPath = path.join(dirPath, entry.name) - const node: AcpFileNode = { + const node: WorkspaceFileNode = { name: entry.name, path: fullPath, isDirectory: entry.isDirectory() @@ -127,7 +127,7 @@ export async function readDirectoryTree( return a.name.localeCompare(b.name) }) } catch (error) { - console.error(`[AcpWorkspace] Failed to read directory ${dirPath}:`, error) + console.error(`[Workspace] Failed to read directory ${dirPath}:`, error) return [] } } diff --git a/src/main/presenter/workspacePresenter/fileCache.ts b/src/main/presenter/workspacePresenter/fileCache.ts new file mode 100644 index 000000000..e92e79d95 --- /dev/null +++ b/src/main/presenter/workspacePresenter/fileCache.ts @@ -0,0 +1,77 @@ +export type FileCacheEntry = { + content: string + mtimeMs: number + cachedAt: number +} + +export interface FileCacheOptions { + maxEntries?: number + ttlMs?: number + maxBytes?: number +} + +const DEFAULT_MAX_ENTRIES = 200 +const DEFAULT_TTL_MS = 60_000 +const DEFAULT_MAX_BYTES = 256 * 1024 + +export class FileCache { + private readonly cache = new Map() + private readonly maxEntries: number + private readonly ttlMs: number + private readonly maxBytes: number + + constructor(options: FileCacheOptions = {}) { + this.maxEntries = options.maxEntries ?? DEFAULT_MAX_ENTRIES + this.ttlMs = options.ttlMs ?? DEFAULT_TTL_MS + this.maxBytes = options.maxBytes ?? DEFAULT_MAX_BYTES + } + + get(filePath: string, mtimeMs?: number): FileCacheEntry | null { + const entry = this.cache.get(filePath) + if (!entry) return null + + if (Date.now() - entry.cachedAt > this.ttlMs) { + this.cache.delete(filePath) + return null + } + + if (mtimeMs !== undefined && entry.mtimeMs !== mtimeMs) { + this.cache.delete(filePath) + return null + } + + // Refresh LRU order + this.cache.delete(filePath) + this.cache.set(filePath, entry) + + return entry + } + + set(filePath: string, entry: FileCacheEntry): void { + if (Buffer.byteLength(entry.content, 'utf8') > this.maxBytes) { + return + } + + this.cache.delete(filePath) + this.cache.set(filePath, entry) + this.prune() + } + + delete(filePath: string): void { + this.cache.delete(filePath) + } + + clear(): void { + this.cache.clear() + } + + private prune(): void { + while (this.cache.size > this.maxEntries) { + const oldestKey = this.cache.keys().next().value + if (!oldestKey) { + return + } + this.cache.delete(oldestKey) + } + } +} diff --git a/src/main/presenter/workspacePresenter/fileSearcher.ts b/src/main/presenter/workspacePresenter/fileSearcher.ts new file mode 100644 index 000000000..8a1e0cdd1 --- /dev/null +++ b/src/main/presenter/workspacePresenter/fileSearcher.ts @@ -0,0 +1,184 @@ +import fs from 'fs/promises' +import path from 'path' +import { ConcurrencyLimiter } from './concurrencyLimiter' +import { RipgrepSearcher } from './ripgrepSearcher' + +export interface SearchOptions { + maxResults?: number + cursor?: string + sortBy?: 'name' | 'modified' + excludePatterns?: string[] +} + +export interface SearchResult { + files: string[] + hasMore: boolean + nextCursor?: string + total?: number +} + +const DEFAULT_PAGE_SIZE = 50 +const DEFAULT_CACHE_LIMIT = 200 +const MAX_CACHE_FILES = 500 +const CACHE_TTL_MS = 30_000 +const MAX_CACHE_ENTRIES = 50 +const MTIME_CACHE_TTL_MS = 60_000 + +const statLimiter = new ConcurrencyLimiter(10) +const mtimeCache = new Map() + +type CacheEntry = { + files: string[] + createdAt: number + complete: boolean +} + +const searchCache = new Map() + +const encodeCursor = (offset: number) => Buffer.from(String(offset)).toString('base64') + +const decodeCursor = (cursor?: string) => { + if (!cursor) return 0 + try { + const decoded = Buffer.from(cursor, 'base64').toString('utf8') + const offset = Number(decoded) + return Number.isFinite(offset) && offset >= 0 ? offset : 0 + } catch { + return 0 + } +} + +const getCacheKey = ( + workspacePath: string, + pattern: string, + sortBy: SearchOptions['sortBy'], + excludePatterns?: string[] +) => { + const excludes = excludePatterns?.slice().sort().join(',') ?? '' + return `${workspacePath}::${pattern}::${sortBy ?? 'name'}::${excludes}` +} + +const getCachedEntry = (key: string) => { + const entry = searchCache.get(key) + if (!entry) return null + if (Date.now() - entry.createdAt > CACHE_TTL_MS) { + searchCache.delete(key) + return null + } + + // Refresh LRU order + searchCache.delete(key) + searchCache.set(key, entry) + + return entry +} + +const setCacheEntry = (key: string, entry: CacheEntry) => { + searchCache.set(key, entry) + while (searchCache.size > MAX_CACHE_ENTRIES) { + const oldestKey = searchCache.keys().next().value + if (!oldestKey) return + searchCache.delete(oldestKey) + } +} + +const getMtime = async (filePath: string): Promise => { + const cached = mtimeCache.get(filePath) + if (cached && Date.now() - cached.cachedAt <= MTIME_CACHE_TTL_MS) { + return cached.mtimeMs + } + + const mtimeMs = await statLimiter.run(async () => { + try { + const stats = await fs.stat(filePath) + return stats.mtimeMs + } catch { + return 0 + } + }) + + mtimeCache.set(filePath, { mtimeMs, cachedAt: Date.now() }) + return mtimeMs +} + +const sortFilesByName = (files: string[]) => files.sort((a, b) => a.localeCompare(b)) + +const sortFilesByModified = async (files: string[]) => { + const entries = await Promise.all( + files.map(async (file) => ({ file, mtimeMs: await getMtime(file) })) + ) + + entries.sort((a, b) => { + if (a.mtimeMs !== b.mtimeMs) { + return b.mtimeMs - a.mtimeMs + } + return a.file.localeCompare(b.file) + }) + + return entries.map((entry) => entry.file) +} + +export async function searchFiles( + workspacePath: string, + pattern: string, + options: SearchOptions = {} +): Promise { + const pageSize = options.maxResults ?? DEFAULT_PAGE_SIZE + const offset = decodeCursor(options.cursor) + const sortBy = options.sortBy ?? 'name' + + const cacheKey = getCacheKey(workspacePath, pattern, sortBy, options.excludePatterns) + let cached = getCachedEntry(cacheKey) + + if (!cached) { + const targetLimit = Math.min( + Math.max(offset + pageSize + 1, DEFAULT_CACHE_LIMIT), + MAX_CACHE_FILES + ) + const maxResults = Math.min(targetLimit + 1, MAX_CACHE_FILES + 1) + + const seen = new Set() + const files: string[] = [] + + try { + for await (const filePath of RipgrepSearcher.files(pattern, workspacePath, { + maxResults, + excludePatterns: options.excludePatterns + })) { + const normalized = path.normalize(filePath) + if (seen.has(normalized)) continue + seen.add(normalized) + files.push(normalized) + } + } catch (error) { + console.warn('[WorkspaceSearch] Ripgrep search failed:', error) + } + + const complete = files.length <= targetLimit + const trimmedFiles = complete ? files : files.slice(0, targetLimit) + + const sortedFiles = + sortBy === 'modified' + ? await sortFilesByModified(trimmedFiles) + : sortFilesByName(trimmedFiles) + + cached = { + files: sortedFiles, + createdAt: Date.now(), + complete + } + + setCacheEntry(cacheKey, cached) + } + + const files = cached.files.slice(offset, offset + pageSize) + const hasMore = offset + pageSize < cached.files.length || !cached.complete + const nextCursor = hasMore ? encodeCursor(offset + pageSize) : undefined + + return { + files, + hasMore, + nextCursor, + total: cached.complete ? cached.files.length : undefined + } +} diff --git a/src/main/presenter/workspacePresenter/fileSecurity.ts b/src/main/presenter/workspacePresenter/fileSecurity.ts new file mode 100644 index 000000000..cb2dad920 --- /dev/null +++ b/src/main/presenter/workspacePresenter/fileSecurity.ts @@ -0,0 +1,76 @@ +import path from 'path' + +const SENSITIVE_PATTERNS = ['.env', '.pem', '.key', 'credentials', 'secret', 'password'] + +const DEFAULT_ALLOWLIST = ['.env.example'] + +const BINARY_EXTENSIONS = new Set([ + 'exe', + 'dll', + 'bin', + 'so', + 'dylib', + 'class', + 'jar', + 'zip', + 'tar', + 'gz', + '7z', + 'rar', + 'pdf', + 'png', + 'jpg', + 'jpeg', + 'gif', + 'webp', + 'ico', + 'mp3', + 'wav', + 'flac', + 'mp4', + 'mov', + 'avi', + 'mkv' +]) + +export function checkSensitiveFile( + filePath: string, + allowList: string[] = DEFAULT_ALLOWLIST +): void { + const normalized = filePath.toLowerCase() + + for (const allow of allowList) { + const allowNormalized = path.normalize(allow).toLowerCase() + if (normalized === allowNormalized || normalized.endsWith(path.sep + allowNormalized)) { + return + } + } + + for (const pattern of SENSITIVE_PATTERNS) { + if (normalized.includes(pattern)) { + throw new Error(`Sensitive file access blocked: ${filePath}`) + } + } +} + +export function isBinaryFile(filePath: string): boolean { + const ext = path.extname(filePath).slice(1).toLowerCase() + if (!ext) return false + return BINARY_EXTENSIONS.has(ext) +} + +export function isBinaryContent(content: string): boolean { + const length = Math.min(content.length, 10000) + if (length === 0) return false + + let nonPrintable = 0 + for (let i = 0; i < length; i++) { + const code = content.charCodeAt(i) + if (code === 0) return true + if (code < 32 && code !== 9 && code !== 10 && code !== 13) { + nonPrintable++ + } + } + + return nonPrintable / length > 0.3 +} diff --git a/src/main/presenter/workspacePresenter/index.ts b/src/main/presenter/workspacePresenter/index.ts new file mode 100644 index 000000000..4fdb054dd --- /dev/null +++ b/src/main/presenter/workspacePresenter/index.ts @@ -0,0 +1,211 @@ +import path from 'path' +import fs from 'fs' +import { shell } from 'electron' +import { eventBus, SendTarget } from '@/eventbus' +import { WORKSPACE_EVENTS } from '@/events' +import { readDirectoryShallow } from './directoryReader' +import { PlanStateManager } from './planStateManager' +import { searchWorkspaceFiles } from './workspaceFileSearch' +import type { + IWorkspacePresenter, + WorkspaceFileNode, + WorkspacePlanEntry, + WorkspaceTerminalSnippet, + WorkspaceRawPlanEntry +} from '@shared/presenter' + +export class WorkspacePresenter implements IWorkspacePresenter { + private readonly planManager = new PlanStateManager() + // Allowed workspace paths (registered by Agent and ACP sessions) + private readonly allowedPaths = new Set() + + /** + * Register a workspace path as allowed for reading + * Returns Promise to ensure IPC call completion + */ + async registerWorkspace(workspacePath: string): Promise { + const normalized = path.resolve(workspacePath) + this.allowedPaths.add(normalized) + } + + /** + * Register a workdir path as allowed for reading (ACP alias) + */ + async registerWorkdir(workdir: string): Promise { + await this.registerWorkspace(workdir) + } + + /** + * Unregister a workspace path + */ + async unregisterWorkspace(workspacePath: string): Promise { + const normalized = path.resolve(workspacePath) + this.allowedPaths.delete(normalized) + } + + /** + * Unregister a workdir path (ACP alias) + */ + async unregisterWorkdir(workdir: string): Promise { + await this.unregisterWorkspace(workdir) + } + + /** + * Check if a path is within allowed workspaces + * Uses realpathSync to resolve symlinks and prevent bypass attacks + */ + private isPathAllowed(targetPath: string): boolean { + try { + // Resolve symlinks for target path + const realTargetPath = fs.realpathSync(targetPath) + const normalizedTarget = path.normalize(realTargetPath) + const targetWithSep = normalizedTarget.endsWith(path.sep) + ? normalizedTarget + : `${normalizedTarget}${path.sep}` + + for (const workspace of this.allowedPaths) { + try { + // Resolve symlinks for each allowed workspace + const realWorkspace = fs.realpathSync(workspace) + const normalizedWorkspace = path.normalize(realWorkspace) + const workspaceWithSep = normalizedWorkspace.endsWith(path.sep) + ? normalizedWorkspace + : `${normalizedWorkspace}${path.sep}` + + // Check if targetPath is equal to or under the workspace + if ( + normalizedTarget === normalizedWorkspace || + targetWithSep.startsWith(workspaceWithSep) + ) { + return true + } + } catch { + // If workspace path resolution fails, skip this workspace + continue + } + } + return false + } catch { + // If target path resolution fails, treat as not allowed + return false + } + } + + /** + * Read directory (shallow, only first level) + * Use expandDirectory to load subdirectory contents + */ + async readDirectory(dirPath: string): Promise { + // Security check: only allow reading within registered workspaces + if (!this.isPathAllowed(dirPath)) { + console.warn(`[Workspace] Blocked read attempt for unauthorized path: ${dirPath}`) + return [] + } + return readDirectoryShallow(dirPath) + } + + /** + * Expand a directory to load its children (lazy loading) + * @param dirPath Directory path to expand + */ + async expandDirectory(dirPath: string): Promise { + // Security check: only allow reading within registered workspaces + if (!this.isPathAllowed(dirPath)) { + console.warn(`[Workspace] Blocked expand attempt for unauthorized path: ${dirPath}`) + return [] + } + return readDirectoryShallow(dirPath) + } + + /** + * Reveal a file or directory in the system file manager + */ + async revealFileInFolder(filePath: string): Promise { + // Security check: only allow revealing within registered workspaces + if (!this.isPathAllowed(filePath)) { + console.warn(`[Workspace] Blocked reveal attempt for unauthorized path: ${filePath}`) + return + } + + const normalizedPath = path.resolve(filePath) + + try { + shell.showItemInFolder(normalizedPath) + } catch (error) { + console.error(`[Workspace] Failed to reveal path: ${normalizedPath}`, error) + } + } + + /** + * Open a file or directory with the system default application + */ + async openFile(filePath: string): Promise { + if (!this.isPathAllowed(filePath)) { + console.warn(`[Workspace] Blocked open attempt for unauthorized path: ${filePath}`) + return + } + + const normalizedPath = path.resolve(filePath) + + try { + const errorMessage = await shell.openPath(normalizedPath) + if (errorMessage) { + console.error(`[Workspace] Failed to open path: ${normalizedPath}`, errorMessage) + } + } catch (error) { + console.error(`[Workspace] Failed to open path: ${normalizedPath}`, error) + } + } + + /** + * Get plan entries + */ + async getPlanEntries(conversationId: string): Promise { + return this.planManager.getEntries(conversationId) + } + + /** + * Update plan entries (called by agent content mapper) + */ + async updatePlanEntries(conversationId: string, entries: WorkspaceRawPlanEntry[]): Promise { + const updated = this.planManager.updateEntries(conversationId, entries) + + // Send event to renderer + eventBus.sendToRenderer(WORKSPACE_EVENTS.PLAN_UPDATED, SendTarget.ALL_WINDOWS, { + conversationId, + entries: updated + }) + } + + /** + * Emit terminal output snippet (called by agent content mapper) + */ + async emitTerminalSnippet( + conversationId: string, + snippet: WorkspaceTerminalSnippet + ): Promise { + eventBus.sendToRenderer(WORKSPACE_EVENTS.TERMINAL_OUTPUT, SendTarget.ALL_WINDOWS, { + conversationId, + snippet + }) + } + + /** + * Clear workspace data for a conversation + */ + async clearWorkspaceData(conversationId: string): Promise { + this.planManager.clear(conversationId) + } + + /** + * Search workspace files by query (query does not include @) + */ + async searchFiles(workspacePath: string, query: string): Promise { + if (!this.isPathAllowed(workspacePath)) { + console.warn(`[Workspace] Blocked search attempt for unauthorized path: ${workspacePath}`) + return [] + } + const results = await searchWorkspaceFiles(workspacePath, query) + return results + } +} diff --git a/src/main/presenter/workspacePresenter/pathResolver.ts b/src/main/presenter/workspacePresenter/pathResolver.ts new file mode 100644 index 000000000..5908e0422 --- /dev/null +++ b/src/main/presenter/workspacePresenter/pathResolver.ts @@ -0,0 +1,34 @@ +import fs from 'fs' +import os from 'os' +import path from 'path' + +export function resolveWorkspacePath(workspaceRoot: string, inputPath: string): string | null { + const trimmed = inputPath.trim() + if (!trimmed) return null + + const expanded = trimmed.replace(/^~(?=$|[\\/])/, os.homedir()) + const absolute = path.isAbsolute(expanded) + ? path.resolve(expanded) + : path.resolve(workspaceRoot, expanded) + const normalized = path.normalize(absolute) + + let realPath: string + let workspaceReal: string + + try { + realPath = fs.realpathSync(normalized) + workspaceReal = fs.realpathSync(workspaceRoot) + } catch { + return null + } + + const workspaceWithSep = workspaceReal.endsWith(path.sep) + ? workspaceReal + : `${workspaceReal}${path.sep}` + + if (realPath === workspaceReal || realPath.startsWith(workspaceWithSep)) { + return realPath + } + + return null +} diff --git a/src/main/presenter/acpWorkspacePresenter/planStateManager.ts b/src/main/presenter/workspacePresenter/planStateManager.ts similarity index 82% rename from src/main/presenter/acpWorkspacePresenter/planStateManager.ts rename to src/main/presenter/workspacePresenter/planStateManager.ts index ab548ae20..7edd7a355 100644 --- a/src/main/presenter/acpWorkspacePresenter/planStateManager.ts +++ b/src/main/presenter/workspacePresenter/planStateManager.ts @@ -1,6 +1,10 @@ import crypto from 'crypto' import { nanoid } from 'nanoid' -import type { AcpPlanEntry, AcpPlanStatus, AcpRawPlanEntry } from '@shared/presenter' +import type { + WorkspacePlanEntry, + WorkspacePlanStatus, + WorkspaceRawPlanEntry +} from '@shared/presenter' // Maximum number of completed entries to retain per conversation const MAX_COMPLETED_ENTRIES = 10 @@ -10,8 +14,8 @@ const MAX_COMPLETED_ENTRIES = 10 * Maintains plan entries for each conversation, supports incremental updates */ export class PlanStateManager { - // Map> - private readonly planStore = new Map>() + // Map> + private readonly planStore = new Map>() /** * Update plan entries (incremental merge) @@ -19,7 +23,7 @@ export class PlanStateManager { * @param rawEntries Raw plan entries * @returns Updated complete entries list */ - updateEntries(conversationId: string, rawEntries: AcpRawPlanEntry[]): AcpPlanEntry[] { + updateEntries(conversationId: string, rawEntries: WorkspaceRawPlanEntry[]): WorkspacePlanEntry[] { if (!this.planStore.has(conversationId)) { this.planStore.set(conversationId, new Map()) } @@ -55,7 +59,7 @@ export class PlanStateManager { /** * Get all plan entries for a conversation */ - getEntries(conversationId: string): AcpPlanEntry[] { + getEntries(conversationId: string): WorkspacePlanEntry[] { const store = this.planStore.get(conversationId) if (!store) return [] return Array.from(store.values()) @@ -71,8 +75,8 @@ export class PlanStateManager { /** * Prune completed entries, keeping only the latest MAX_COMPLETED_ENTRIES */ - private pruneCompletedEntries(store: Map): void { - const completedEntries: Array<{ key: string; entry: AcpPlanEntry }> = [] + private pruneCompletedEntries(store: Map): void { + const completedEntries: Array<{ key: string; entry: WorkspacePlanEntry }> = [] for (const [key, entry] of store) { if (entry.status === 'completed') { @@ -101,7 +105,7 @@ export class PlanStateManager { return crypto.createHash('sha256').update(normalized).digest('hex') } - private normalizeStatus(status?: string | null): AcpPlanStatus { + private normalizeStatus(status?: string | null): WorkspacePlanStatus { switch (status) { case 'completed': case 'done': diff --git a/src/main/presenter/workspacePresenter/ripgrepSearcher.ts b/src/main/presenter/workspacePresenter/ripgrepSearcher.ts new file mode 100644 index 000000000..78e40e88c --- /dev/null +++ b/src/main/presenter/workspacePresenter/ripgrepSearcher.ts @@ -0,0 +1,176 @@ +import { spawn } from 'child_process' +import os from 'os' +import path from 'path' +import readline from 'readline' +import { RuntimeHelper } from '@/lib/runtimeHelper' + +export interface RipgrepSearchOptions { + maxResults?: number + excludePatterns?: string[] + timeoutMs?: number +} + +const DEFAULT_EXCLUDES = [ + '.git', + 'node_modules', + '.DS_Store', + 'dist', + 'build', + 'out', + '.turbo', + '.next', + '.nuxt', + '.cache', + 'coverage' +] + +const DEFAULT_TIMEOUT_MS = 15_000 +const DEFAULT_MAX_COLUMNS = 2_000 +const DEFAULT_MAX_FILESIZE = '5M' + +export class RipgrepSearcher { + static async *files( + pattern: string, + workspacePath: string, + options: RipgrepSearchOptions = {} + ): AsyncGenerator { + const runtimeHelper = RuntimeHelper.getInstance() + runtimeHelper.initializeRuntimes() + const ripgrepPath = runtimeHelper.getRipgrepRuntimePath() + + const rgExecutable = ripgrepPath + ? path.join(ripgrepPath, process.platform === 'win32' ? 'rg.exe' : 'rg') + : 'rg' + + const excludePatterns = [...new Set([...(options.excludePatterns ?? []), ...DEFAULT_EXCLUDES])] + const maxResults = options.maxResults + const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS + const threads = Math.max(1, Math.min(os.cpus().length, 4)) + + const args: string[] = [ + '--files', + '--json', + '--threads', + String(threads), + '--max-filesize', + DEFAULT_MAX_FILESIZE, + '--max-columns', + String(DEFAULT_MAX_COLUMNS) + ] + + // Handle glob pattern + // For "**/*" or "**", we want to match all files, so we don't need --glob + // For other patterns, use --glob + // Note: ripgrep uses gitignore-style globs + // Patterns like "*query*" work better than "**/*query*" for filename matching + if (pattern && pattern !== '**/*' && pattern !== '**' && pattern !== '*') { + // If pattern starts with "**/*", simplify it to just "*" + rest + // e.g., "**/*src*" -> "*src*" (matches files with "src" in name anywhere) + let simplifiedPattern = pattern + if (pattern.startsWith('**/*')) { + simplifiedPattern = '*' + pattern.slice(4) // Remove "**/" prefix + } else if (pattern.startsWith('**/')) { + simplifiedPattern = pattern.slice(3) // Remove "**/" prefix + } + args.push('--glob', simplifiedPattern) + } + + for (const exclude of excludePatterns) { + args.push('--glob', `!${exclude}`) + } + + // For --files mode, we need a search pattern (even if it's just '.') + // The pattern is used to match file contents, but with --files we only care about file paths + args.push('.') // Search pattern: match any character (will match all files) + args.push(workspacePath) + + const proc = spawn(rgExecutable, args, { stdio: ['ignore', 'pipe', 'pipe'] }) + const rl = readline.createInterface({ input: proc.stdout }) + + let count = 0 + let terminatedEarly = false + let timeoutHandle: NodeJS.Timeout | null = null + let stderrOutput = '' // Move stderrOutput to outer scope + let exitCode: number | null = null + let exitError: Error | null = null + let runError: unknown = null + + const exitPromise = new Promise<{ code: number | null }>((resolve, reject) => { + proc.once('close', (code) => resolve({ code })) + proc.once('error', (error) => reject(error)) + }) + + if (timeoutMs > 0) { + timeoutHandle = setTimeout(() => { + terminatedEarly = true + proc.kill() + }, timeoutMs) + } + + // Capture stderr for debugging + proc.stderr?.on('data', (chunk) => { + stderrOutput += chunk.toString() + }) + + try { + for await (const line of rl) { + if (!line.trim()) continue + + let parsed: { type?: string; data?: { path?: { text?: string } | string } } + try { + parsed = JSON.parse(line) + } catch { + continue + } + + const pathValue = + typeof parsed.data?.path === 'string' ? parsed.data.path : parsed.data?.path?.text + + // ripgrep with --files returns 'begin' type for each file + if (parsed.type === 'begin' && pathValue) { + yield pathValue + count += 1 + if (maxResults && count >= maxResults) { + terminatedEarly = true + proc.kill() + break + } + } + } + } catch (error) { + runError = error + } finally { + if (timeoutHandle) { + clearTimeout(timeoutHandle) + } + rl.close() + if (!proc.killed && proc.exitCode === null) { + proc.kill() + } + try { + const { code } = await exitPromise + exitCode = code + } catch (error) { + exitError = error instanceof Error ? error : new Error(String(error)) + } + } + + if (runError) { + throw runError + } + + // Exit code 0: matches found + // Exit code 1: no matches found (not an error) + // Exit code 2: error (e.g., "no files were searched" due to glob filter) + // For code 2, we've already logged stderr, and count is 0, so just return empty + // Only throw for unexpected errors (code > 2) + if (!terminatedEarly) { + if (exitError) { + throw exitError + } + if (exitCode !== null && exitCode > 2) { + throw new Error(`Ripgrep exited with code ${exitCode}: ${stderrOutput.substring(0, 200)}`) + } + } + } +} diff --git a/src/main/presenter/workspacePresenter/workspaceFileSearch.ts b/src/main/presenter/workspacePresenter/workspaceFileSearch.ts new file mode 100644 index 000000000..16842fb6e --- /dev/null +++ b/src/main/presenter/workspacePresenter/workspaceFileSearch.ts @@ -0,0 +1,113 @@ +import fs from 'fs/promises' +import path from 'path' +import type { WorkspaceFileNode } from '@shared/presenter' +import { searchFiles } from './fileSearcher' +import { resolveWorkspacePath } from './pathResolver' +import { checkSensitiveFile, isBinaryFile } from './fileSecurity' + +const DEFAULT_RESULT_LIMIT = 50 + +const escapeGlob = (input: string) => input.replace(/[[\\*?\]]/g, '\\$&') + +const buildFileNode = (filePath: string): WorkspaceFileNode => ({ + name: path.basename(filePath), + path: filePath, + isDirectory: false +}) + +const scoreMatch = (workspaceRoot: string, filePath: string, query: string): number => { + const normalizedPath = path.normalize(filePath) + const normalizedQuery = query.toLowerCase() + const baseName = path.basename(normalizedPath).toLowerCase() + const relativePath = path + .relative(workspaceRoot, normalizedPath) + .split(path.sep) + .join('/') + .toLowerCase() + + if (normalizedPath.toLowerCase() === query.toLowerCase()) return 100 + if (relativePath === normalizedQuery) return 95 + if (baseName === normalizedQuery) return 90 + if (baseName.startsWith(normalizedQuery)) return 80 + if (baseName.includes(normalizedQuery)) return 70 + if (relativePath.includes(normalizedQuery)) return 60 + return 50 +} + +export async function searchWorkspaceFiles( + workspacePath: string, + query: string +): Promise { + const trimmed = query.trim() + if (!trimmed) { + return [] + } + + // Handle special case: if query is "**/*", use it directly as glob pattern + // This is used when user just types "@" to show some files + if (trimmed === '**/*') { + const result = await searchFiles(workspacePath, trimmed, { + maxResults: DEFAULT_RESULT_LIMIT, + sortBy: 'name' + }) + + const filtered = result.files + .filter((filePath) => { + try { + checkSensitiveFile(filePath) + return !isBinaryFile(filePath) + } catch { + return false + } + }) + .map((filePath) => buildFileNode(filePath)) + return filtered + } + + const resolved = resolveWorkspacePath(workspacePath, trimmed) + if (resolved) { + try { + const stats = await fs.stat(resolved) + if (stats.isFile()) { + checkSensitiveFile(resolved) + if (!isBinaryFile(resolved)) { + return [buildFileNode(resolved)] + } + } + } catch { + // Fall through to fuzzy search. + } + } + + const hasSeparator = trimmed.includes('/') || trimmed.includes('\\') + const escaped = escapeGlob(trimmed) + // For ripgrep, use simpler glob patterns + // If has separator, use the path as-is with wildcards + // Otherwise, use *query* to match anywhere in filename + const globPattern = hasSeparator + ? `**/${escaped}*` // Path-based: **/path/to/file* + : `*${escaped}*` // Filename-based: *query* (matches anywhere in filename) + + const result = await searchFiles(workspacePath, globPattern, { + maxResults: DEFAULT_RESULT_LIMIT, + sortBy: 'name' + }) + + const ranked = result.files + .map((filePath) => ({ + filePath, + score: scoreMatch(workspacePath, filePath, trimmed) + })) + .filter(({ filePath }) => { + try { + checkSensitiveFile(filePath) + return !isBinaryFile(filePath) + } catch { + return false + } + }) + .sort((a, b) => b.score - a.score || a.filePath.localeCompare(b.filePath)) + + const finalResults = ranked.map(({ filePath }) => buildFileNode(filePath)) + return finalResults +} diff --git a/src/renderer/settings/components/AboutUsSettings.vue b/src/renderer/settings/components/AboutUsSettings.vue index 5d008ec8e..c7afb4f0d 100644 --- a/src/renderer/settings/components/AboutUsSettings.vue +++ b/src/renderer/settings/components/AboutUsSettings.vue @@ -57,8 +57,8 @@ {{ t('about.stableChannel') }} - - {{ t('about.canaryChannel') }} + + {{ t('about.betaChannel') }} @@ -67,6 +67,17 @@
+ + +
+
-
-
{{ t('settings.provider.bedrockLimitTip') }}
+
+ {{ t('settings.provider.bedrockLimitTip') }} +
{ await initData() } - - diff --git a/src/renderer/settings/components/ModelProviderSettings.vue b/src/renderer/settings/components/ModelProviderSettings.vue index 35ac98069..5832abde0 100644 --- a/src/renderer/settings/components/ModelProviderSettings.vue +++ b/src/renderer/settings/components/ModelProviderSettings.vue @@ -58,9 +58,27 @@ :custom-class="'w-4 h-4 text-muted-foreground'" :is-dark="themeStore.isDark" /> - {{ - t(provider.name) - }} + + - {{ - t(provider.name) - }} + + searchQueryBase.value.trim().length > 0) +const editingProviderId = ref(null) +const editingName = ref('') +const editInputRef = ref(null) + +const startEditingName = (provider: LLM_PROVIDER, event: Event) => { + event.stopPropagation() + editingProviderId.value = provider.id + editingName.value = provider.name + nextTick(() => { + editInputRef.value?.focus() + editInputRef.value?.select() + }) +} + +const saveEditingName = async () => { + if (!editingProviderId.value || !editingName.value.trim()) { + cancelEditingName() + return + } + const trimmedName = editingName.value.trim() + const providerId = editingProviderId.value + editingProviderId.value = null + await providerStore.updateProviderConfig(providerId, { name: trimmedName }) +} + +const cancelEditingName = () => { + editingProviderId.value = null + editingName.value = '' +} + +const handleEditKeydown = (event: KeyboardEvent) => { + if (event.key === 'Enter') { + saveEditingName() + } else if (event.key === 'Escape') { + cancelEditingName() + } +} + const clearSearch = () => { searchQueryBase.value = '' } diff --git a/src/renderer/settings/components/ProviderApiConfig.vue b/src/renderer/settings/components/ProviderApiConfig.vue index 35f199023..2723eced9 100644 --- a/src/renderer/settings/components/ProviderApiConfig.vue +++ b/src/renderer/settings/components/ProviderApiConfig.vue @@ -97,7 +97,6 @@ }} -

{{ t('mcp.tools.disabled') }}

-

{{ t('mcp.tools.loading') }}

-

{{ t('mcp.tools.error') }}

-

- {{ t('mcp.tools.available', { count: getTotalEnabledToolCount() }) }} -

-

{{ t('mcp.tools.none') }}

+ +
+
+ {{ t('mcp.tools.acpManagedHint') }} +
-
+
{{ t('mcp.tools.enabled') }}
@@ -154,7 +194,7 @@ const getLocalizedServerName = (serverName: string) => {
-
+
{{ t('mcp.tools.enableToUse') }}
-
-
- -

- {{ t('chat.acp.workspace.title') }} -

-
- -
- - -
- - - - - - - - -
- - - - diff --git a/src/renderer/src/components/chat-input/ChatInput.vue b/src/renderer/src/components/chat-input/ChatInput.vue index 072c9e13f..51f8074ed 100644 --- a/src/renderer/src/components/chat-input/ChatInput.vue +++ b/src/renderer/src/components/chat-input/ChatInput.vue @@ -70,6 +70,93 @@
+ + + + + + + + + +
+
+ + {{ mode.label }} + +
+
+
+
+
+
+ + {{ t('chat.mode.current', { mode: chatMode.currentLabel.value }) }} + +
+ + + + + + + +

+ {{ workspace.tooltipTitle }} +

+

+ {{ workspace.tooltipCurrent }} +

+

+ {{ workspace.tooltipSelect }} +

+
+
+ - - -

- {{ t('chat.input.acpWorkdirTooltip') }} -

-

- {{ t('chat.input.acpWorkdirCurrent', { path: acpWorkdir.workdir.value }) }} -

-

- {{ t('chat.input.acpWorkdirSelect') }} -

-
-
-
@@ -377,6 +430,7 @@ import { import { Popover, PopoverContent, PopoverTrigger } from '@shadcn/components/ui/popover' import { Icon } from '@iconify/vue' import { Editor, EditorContent } from '@tiptap/vue-3' +import { TextSelection } from '@tiptap/pm/state' import Document from '@tiptap/extension-document' import Paragraph from '@tiptap/extension-paragraph' import Text from '@tiptap/extension-text' @@ -404,6 +458,9 @@ import { useContextLength } from './composables/useContextLength' import { useSendButtonState } from './composables/useSendButtonState' import { useAcpWorkdir } from './composables/useAcpWorkdir' import { useAcpMode } from './composables/useAcpMode' +import { useChatMode, type ChatMode } from './composables/useChatMode' +import { useAgentWorkspace } from './composables/useAgentWorkspace' +import { useWorkspaceMention } from './composables/useWorkspaceMention' // === Stores === import { useChatStore } from '@/stores/chat' @@ -412,8 +469,11 @@ import { useThemeStore } from '@/stores/theme' // === Mention System === import { Mention } from '../editor/mention/mention' -import suggestion, { setPromptFilesHandler } from '../editor/mention/suggestion' -import { mentionData } from '../editor/mention/suggestion' +import suggestion, { + setPromptFilesHandler, + setWorkspaceMention +} from '../editor/mention/suggestion' +import { mentionData, type CategorizedData } from '../editor/mention/suggestion' import { useEventListener } from '@vueuse/core' // === Props & Emits === @@ -502,7 +562,12 @@ const showFakeCaret = computed(() => caretVisible.value && !props.disabled) // === Composable Integrations === // Initialize settings management -const { settings, toggleWebSearch } = useInputSettings() +const { settings, setWebSearch, toggleWebSearch } = useInputSettings() + +// Initialize chat mode management +const chatMode = useChatMode() +const modeSelectOpen = ref(false) +const canUseWebSearch = computed(() => chatMode.currentMode.value === 'chat') // Initialize history composable first (needed for editor placeholder) const history = useInputHistory(null as any, t) @@ -674,6 +739,20 @@ const acpWorkdir = useAcpWorkdir({ conversationId }) +// Unified workspace management (for agent and acp agent modes) +const workspace = useAgentWorkspace({ + conversationId, + activeModel: activeModelSource, + chatMode +}) + +const workspaceMention = useWorkspaceMention({ + workspacePath: workspace.workspacePath, + chatMode: chatMode.currentMode, + conversationId +}) +setWorkspaceMention(workspaceMention) + // Extract isStreaming first so we can pass it to useAcpMode const { disabledSend, isStreaming } = sendButtonState @@ -716,7 +795,7 @@ const emitSend = async () => { text: editorComposable.inputText.value.trim(), files: files.selectedFiles.value, links: [], - search: settings.value.webSearch, + search: canUseWebSearch.value ? settings.value.webSearch : false, think: settings.value.deepThinking, content: blocks } @@ -735,9 +814,22 @@ const emitSend = async () => { } const onWebSearchClick = async () => { + if (!canUseWebSearch.value) return await toggleWebSearch() } +const handleModeSelect = async (mode: ChatMode) => { + await chatMode.setMode(mode) + if (conversationId.value && chatMode.currentMode.value === mode) { + try { + await chatStore.updateChatConfig({ chatMode: mode }) + } catch (error) { + console.warn('Failed to update chat mode in conversation settings:', error) + } + } + modeSelectOpen.value = false +} + const onKeydown = (e: KeyboardEvent) => { if (e.code === 'Enter' && !e.shiftKey) { editorComposable.handleEditorEnter(e, disabledSend.value, emitSend) @@ -787,6 +879,57 @@ const handleVisibilityChange = () => { } } +const hasContextMention = () => { + let found = false + editor.state.doc.descendants((node) => { + if (node.type.name === 'mention' && node.attrs?.category === 'context') { + found = true + return false + } + return true + }) + return found +} + +const setCaretToEnd = () => { + if (editor.isDestroyed) return + const { state, view } = editor + const endSelection = TextSelection.atEnd(state.doc) + view.dispatch(state.tr.setSelection(endSelection)) + editor.commands.focus() +} + +const scheduleCaretToEnd = () => { + const delays = [0, 50, 120] + for (const delay of delays) { + setTimeout(() => { + if (editor.isDestroyed) return + requestAnimationFrame(() => { + setCaretToEnd() + }) + }, delay) + } +} + +const appendCustomMention = (mention: CategorizedData) => { + const shouldInsertAtEnd = mention.category === 'context' + if (shouldInsertAtEnd && hasContextMention()) { + scheduleCaretToEnd() + return true + } + if (shouldInsertAtEnd) { + setCaretToEnd() + } + const insertPosition = shouldInsertAtEnd + ? editor.state.selection.to + : editor.state.selection.anchor + const inserted = editorComposable.insertMentionToEditor(mention, insertPosition) + if (inserted && shouldInsertAtEnd) { + scheduleCaretToEnd() + } + return inserted +} + useEventListener(window, 'resize', updateFakeCaretPosition) useEventListener(editorContainer, 'scroll', updateFakeCaretPosition) @@ -831,6 +974,8 @@ onUnmounted(() => { if (caretAnimationFrame) { cancelAnimationFrame(caretAnimationFrame) } + + setWorkspaceMention(null) }) // === Watchers === @@ -856,12 +1001,48 @@ watch( } ) +watch( + () => [chatMode.currentMode.value, settings.value.webSearch] as const, + ([mode, webSearch]) => { + if (mode !== 'chat' && webSearch) { + void setWebSearch(false) + } + }, + { immediate: true } +) + +watch( + () => [conversationId.value, chatStore.chatConfig.chatMode] as const, + async ([activeId, storedMode]) => { + if (!activeId) return + try { + if (!storedMode) { + await chatStore.updateChatConfig({ chatMode: chatMode.currentMode.value }) + return + } + if (chatMode.currentMode.value !== storedMode) { + await chatMode.setMode(storedMode) + } + } catch (error) { + console.warn('Failed to sync chat mode for conversation:', error) + } + }, + { immediate: true } +) + // === Expose === defineExpose({ clearContent: editorComposable.clearContent, appendText: editorComposable.appendText, appendMention: (name: string) => editorComposable.appendMention(name, mentionData), - restoreFocus + appendCustomMention, + restoreFocus, + getAgentWorkspacePath: () => { + const mode = chatMode.currentMode.value + if (mode !== 'agent') return null + return workspace.workspacePath.value + }, + getChatMode: () => chatMode.currentMode.value }) diff --git a/src/renderer/src/components/chat-input/composables/useAcpWorkdir.ts b/src/renderer/src/components/chat-input/composables/useAcpWorkdir.ts index 67a4a7d59..654845cbb 100644 --- a/src/renderer/src/components/chat-input/composables/useAcpWorkdir.ts +++ b/src/renderer/src/components/chat-input/composables/useAcpWorkdir.ts @@ -33,6 +33,19 @@ export function useAcpWorkdir(options: UseAcpWorkdirOptions) { chatStore.setAcpWorkdirPreference(agentId.value, value) } + const hydrateFromPreference = () => { + if (!agentId.value) return + const stored = chatStore.chatConfig.acpWorkdirMap?.[agentId.value] ?? null + if (stored) { + workdir.value = stored + isCustom.value = true + pendingWorkdir.value = stored + } else { + pendingWorkdir.value = null + resetToDefault() + } + } + const resetToDefault = () => { workdir.value = '' isCustom.value = false @@ -65,7 +78,7 @@ export function useAcpWorkdir(options: UseAcpWorkdirOptions) { if (!options.conversationId.value || !agentId.value) { if (!pendingWorkdir.value) { - resetToDefault() + hydrateFromPreference() } return } @@ -126,8 +139,7 @@ export function useAcpWorkdir(options: UseAcpWorkdirOptions) { watch(agentId, () => { if (!hasConversation.value) { - pendingWorkdir.value = null - resetToDefault() + hydrateFromPreference() } lastWarmupKey.value = null }) diff --git a/src/renderer/src/components/chat-input/composables/useAgentMcpData.ts b/src/renderer/src/components/chat-input/composables/useAgentMcpData.ts new file mode 100644 index 000000000..c89d5d600 --- /dev/null +++ b/src/renderer/src/components/chat-input/composables/useAgentMcpData.ts @@ -0,0 +1,47 @@ +import { computed } from 'vue' +import { useChatStore } from '@/stores/chat' +import { useMcpStore } from '@/stores/mcp' + +const CUSTOM_PROMPTS_CLIENT = 'deepchat/custom-prompts-server' + +export function useAgentMcpData() { + const chatStore = useChatStore() + const mcpStore = useMcpStore() + + const selectionSet = computed(() => { + const selections = chatStore.activeAgentMcpSelections + if (!chatStore.isAcpMode || !selections?.length) return null + return new Set(selections) + }) + + const tools = computed(() => { + if (!chatStore.isAcpMode) return mcpStore.tools + const set = selectionSet.value + if (!set) return [] + return mcpStore.tools.filter((tool) => set.has(tool.server.name)) + }) + + const resources = computed(() => { + if (!chatStore.isAcpMode) return mcpStore.resources + const set = selectionSet.value + if (!set) return [] + return mcpStore.resources.filter((resource) => set.has(resource.client.name)) + }) + + const prompts = computed(() => { + if (!chatStore.isAcpMode) return mcpStore.prompts + const set = selectionSet.value + if (!set) + return mcpStore.prompts.filter((prompt) => prompt.client?.name === CUSTOM_PROMPTS_CLIENT) + return mcpStore.prompts.filter( + (prompt) => prompt.client?.name === CUSTOM_PROMPTS_CLIENT || set.has(prompt.client?.name) + ) + }) + + return { + tools, + resources, + prompts, + selectionSet + } +} diff --git a/src/renderer/src/components/chat-input/composables/useAgentWorkspace.ts b/src/renderer/src/components/chat-input/composables/useAgentWorkspace.ts new file mode 100644 index 000000000..b2e8956da --- /dev/null +++ b/src/renderer/src/components/chat-input/composables/useAgentWorkspace.ts @@ -0,0 +1,239 @@ +// === Vue Core === +import { ref, computed, watch } from 'vue' +import { useI18n } from 'vue-i18n' + +// === Composables === +import { usePresenter } from '@/composables/usePresenter' +import { useChatMode } from './useChatMode' +import { useAcpWorkdir } from './useAcpWorkdir' +import { useChatStore } from '@/stores/chat' + +// === Types === +import type { Ref } from 'vue' + +export interface UseAgentWorkspaceOptions { + conversationId: Ref + activeModel: Ref<{ id: string; providerId: string } | null> + chatMode?: ReturnType +} + +/** + * Unified workspace path management composable + * Handles workspace path selection for both agent and acp agent modes + */ +export function useAgentWorkspace(options: UseAgentWorkspaceOptions) { + const { t } = useI18n() + const threadPresenter = usePresenter('threadPresenter') + const chatMode = options.chatMode ?? useChatMode() + const chatStore = useChatStore() + + // Use ACP workdir for acp agent mode + const acpWorkdir = useAcpWorkdir({ + conversationId: options.conversationId, + activeModel: options.activeModel + }) + + // Agent workspace path (for agent mode) + const agentWorkspacePath = ref(null) + const pendingWorkspacePath = ref(null) + const loading = ref(false) + const syncPreference = (workspacePath: string | null) => { + const setPreference = ( + chatStore as { + setAgentWorkspacePreference?: (path: string | null) => void + updateChatConfig?: (config: { agentWorkspacePath?: string | null }) => Promise + } + ).setAgentWorkspacePreference + + if (typeof setPreference === 'function') { + setPreference(workspacePath) + return + } + + if (typeof chatStore.updateChatConfig === 'function') { + void chatStore.updateChatConfig({ agentWorkspacePath: workspacePath }) + } + } + + const hydrateWorkspaceFromPreference = () => { + if (pendingWorkspacePath.value || agentWorkspacePath.value) return + const storedPath = chatStore.chatConfig.agentWorkspacePath ?? null + if (storedPath) { + agentWorkspacePath.value = storedPath + } + } + + // === Computed === + const hasWorkspace = computed(() => { + if (chatMode.currentMode.value === 'acp agent') { + return acpWorkdir.hasWorkdir.value + } + return Boolean(pendingWorkspacePath.value ?? agentWorkspacePath.value) + }) + + const workspacePath = computed(() => { + if (chatMode.currentMode.value === 'acp agent') { + return acpWorkdir.workdir.value + } + return pendingWorkspacePath.value ?? agentWorkspacePath.value + }) + + const tooltipTitle = computed(() => { + if (chatMode.currentMode.value === 'acp agent') { + return t('chat.input.acpWorkdirTooltip') + } + return t('chat.input.agentWorkspaceTooltip') + }) + + const tooltipCurrent = computed(() => { + if (!hasWorkspace.value) return '' + if (chatMode.currentMode.value === 'acp agent') { + return t('chat.input.acpWorkdirCurrent', { path: workspacePath.value || '' }) + } + return t('chat.input.agentWorkspaceCurrent', { path: workspacePath.value || '' }) + }) + + const tooltipSelect = computed(() => { + if (chatMode.currentMode.value === 'acp agent') { + return t('chat.input.acpWorkdirSelect') + } + return t('chat.input.agentWorkspaceSelect') + }) + + // === Methods === + const selectWorkspace = async () => { + if (chatMode.currentMode.value === 'acp agent') { + // Use ACP workdir selection + await acpWorkdir.selectWorkdir() + return + } + + // For agent mode, select workspace path + loading.value = true + try { + const devicePresenter = usePresenter('devicePresenter') + const result = await devicePresenter.selectDirectory() + + if (!result.canceled && result.filePaths && result.filePaths.length > 0) { + const selectedPath = result.filePaths[0] + agentWorkspacePath.value = selectedPath + syncPreference(selectedPath) + + // Save to conversation settings when available + if (options.conversationId.value) { + await threadPresenter.updateConversationSettings(options.conversationId.value, { + agentWorkspacePath: selectedPath + }) + pendingWorkspacePath.value = null + } else { + pendingWorkspacePath.value = selectedPath + } + + // Register workspace with presenter + const workspacePresenter = usePresenter('workspacePresenter') + await workspacePresenter.registerWorkspace(selectedPath) + } + } catch (error) { + console.error('[useAgentWorkspace] Failed to select workspace:', error) + } finally { + loading.value = false + } + } + + // Load workspace path from conversation settings + const loadWorkspacePath = async () => { + if (chatMode.currentMode.value === 'acp agent') { + // ACP workdir is loaded by useAcpWorkdir + return + } + + if (!options.conversationId.value) { + hydrateWorkspaceFromPreference() + return + } + + try { + // Load agent workspace path from conversation settings + const conversation = await threadPresenter.getConversation(options.conversationId.value) + const savedPath = conversation?.settings?.agentWorkspacePath ?? null + if (savedPath) { + agentWorkspacePath.value = savedPath + pendingWorkspacePath.value = null + syncPreference(savedPath) + // Register workspace with presenter + const workspacePresenter = usePresenter('workspacePresenter') + await workspacePresenter.registerWorkspace(savedPath) + } else if (!pendingWorkspacePath.value) { + agentWorkspacePath.value = null + } + } catch (error) { + console.error('[useAgentWorkspace] Failed to load workspace path:', error) + } + } + + const syncPendingWorkspaceWhenReady = async () => { + if (chatMode.currentMode.value !== 'agent') return + const selectedPath = pendingWorkspacePath.value + if (!selectedPath || !options.conversationId.value) return + + loading.value = true + try { + await threadPresenter.updateConversationSettings(options.conversationId.value, { + agentWorkspacePath: selectedPath + }) + agentWorkspacePath.value = selectedPath + pendingWorkspacePath.value = null + + const workspacePresenter = usePresenter('workspacePresenter') + await workspacePresenter.registerWorkspace(selectedPath) + } catch (error) { + console.error('[useAgentWorkspace] Failed to sync pending workspace:', error) + } finally { + loading.value = false + } + } + + watch( + () => options.conversationId.value, + () => { + if (pendingWorkspacePath.value) { + void syncPendingWorkspaceWhenReady() + } + } + ) + + // Watch for chatMode and conversationId changes + watch( + [() => chatMode.currentMode.value, () => options.conversationId.value], + async ([newMode, conversationId]) => { + if (newMode === 'agent') { + if (pendingWorkspacePath.value && conversationId) { + await syncPendingWorkspaceWhenReady() + } + if (conversationId) { + await loadWorkspacePath() + } else { + hydrateWorkspaceFromPreference() + } + return + } + + if (newMode === 'acp agent') { + // ACP workdir is handled by useAcpWorkdir + return + } + }, + { immediate: true } + ) + + return { + hasWorkspace, + workspacePath, + loading, + tooltipTitle, + tooltipCurrent, + tooltipSelect, + selectWorkspace, + loadWorkspacePath + } +} diff --git a/src/renderer/src/components/chat-input/composables/useChatMode.ts b/src/renderer/src/components/chat-input/composables/useChatMode.ts new file mode 100644 index 000000000..164994ba4 --- /dev/null +++ b/src/renderer/src/components/chat-input/composables/useChatMode.ts @@ -0,0 +1,178 @@ +// === Vue Core === +import { ref, computed, watch } from 'vue' +import { useI18n } from 'vue-i18n' + +// === Composables === +import { usePresenter } from '@/composables/usePresenter' +import { CONFIG_EVENTS } from '@/events' + +export type ChatMode = 'chat' | 'agent' | 'acp agent' + +const MODE_ICONS = { + chat: 'lucide:message-circle-more', + agent: 'lucide:bot', + 'acp agent': 'lucide:bot-message-square' +} as const + +// Shared state so all callers observe the same mode. +const currentMode = ref('chat') +const hasAcpAgents = ref(false) +let hasLoaded = false +let loadPromise: Promise | null = null +let modeUpdateVersion = 0 +let hasAcpListener = false + +/** + * Manages chat mode selection (chat, agent, acp agent) + * Similar to useInputSettings, stores mode in database via configPresenter + */ +export function useChatMode() { + // === Presenters === + const configPresenter = usePresenter('configPresenter') + const { t } = useI18n() + + // === Computed === + const currentIcon = computed(() => MODE_ICONS[currentMode.value]) + const currentLabel = computed(() => { + if (currentMode.value === 'chat') return t('chat.mode.chat') + if (currentMode.value === 'agent') return t('chat.mode.agent') + return t('chat.mode.acpAgent') + }) + const isAgentMode = computed( + () => currentMode.value === 'agent' || currentMode.value === 'acp agent' + ) + + const modes = computed(() => { + const allModes = [ + { value: 'chat' as ChatMode, label: t('chat.mode.chat'), icon: MODE_ICONS.chat }, + { value: 'agent' as ChatMode, label: t('chat.mode.agent'), icon: MODE_ICONS.agent }, + { + value: 'acp agent' as ChatMode, + label: t('chat.mode.acpAgent'), + icon: MODE_ICONS['acp agent'] + } + ] + // Filter out 'acp agent' mode if no ACP agents are configured + if (!hasAcpAgents.value) { + return allModes.filter((mode) => mode.value !== 'acp agent') + } + return allModes + }) + + // === Public Methods === + const setMode = async (mode: ChatMode) => { + // Prevent setting 'acp agent' mode if no agents are configured + if (mode === 'acp agent' && !hasAcpAgents.value) { + console.warn('Cannot set acp agent mode: no ACP agents configured') + return + } + + const previousValue = currentMode.value + const updateVersion = ++modeUpdateVersion + currentMode.value = mode + + try { + await configPresenter.setSetting('input_chatMode', mode) + } catch (error) { + // Revert to previous value on error + if (modeUpdateVersion === updateVersion) { + currentMode.value = previousValue + } + console.error('Failed to save chat mode:', error) + // TODO: Show user-facing notification when toast system is available + } + } + + const checkAcpAgents = async () => { + try { + const acpEnabled = await configPresenter.getAcpEnabled() + if (!acpEnabled) { + hasAcpAgents.value = false + return + } + const agents = await configPresenter.getAcpAgents() + hasAcpAgents.value = agents.length > 0 + } catch (error) { + console.warn('Failed to check ACP agents:', error) + hasAcpAgents.value = false + } + } + + const loadMode = async () => { + const loadVersion = modeUpdateVersion + try { + // Check ACP agents availability first + await checkAcpAgents() + + const saved = await configPresenter.getSetting('input_chatMode') + if (modeUpdateVersion === loadVersion) { + const savedMode = (saved as ChatMode) || 'chat' + // If saved mode is 'acp agent' but no agents are configured, fall back to 'chat' + if (savedMode === 'acp agent' && !hasAcpAgents.value) { + currentMode.value = 'chat' + // Save the fallback mode + await configPresenter.setSetting('input_chatMode', 'chat') + } else { + currentMode.value = savedMode + } + } + } catch (error) { + // Fall back to safe defaults on error + if (modeUpdateVersion === loadVersion) { + currentMode.value = 'chat' + } + console.error('Failed to load chat mode, using default:', error) + } finally { + hasLoaded = true + } + } + + const ensureLoaded = () => { + if (hasLoaded) return + if (!loadPromise) { + loadPromise = loadMode().finally(() => { + loadPromise = null + }) + } + } + + ensureLoaded() + + if (!hasAcpListener && window.electron?.ipcRenderer) { + hasAcpListener = true + window.electron.ipcRenderer.on(CONFIG_EVENTS.MODEL_LIST_CHANGED, (_, providerId?: string) => { + if (!providerId || providerId === 'acp') { + void checkAcpAgents() + } + }) + } + + // Watch for ACP agents changes and update availability + // This will be triggered when ACP agents are added/removed + watch( + () => hasAcpAgents.value, + (hasAgents) => { + // If current mode is 'acp agent' but agents are removed, switch to 'chat' + if (!hasAgents && currentMode.value === 'acp agent') { + setMode('chat') + } + } + ) + + // Periodically check for ACP agents changes (in case they're updated elsewhere) + // This is a simple approach; in production, you might want to use events + const refreshAcpAgents = async () => { + await checkAcpAgents() + } + + return { + currentMode, + currentIcon, + currentLabel, + isAgentMode, + modes, + setMode, + loadMode, + refreshAcpAgents + } +} diff --git a/src/renderer/src/components/chat-input/composables/useInputSettings.ts b/src/renderer/src/components/chat-input/composables/useInputSettings.ts index 396597b0f..1a5c83b28 100644 --- a/src/renderer/src/components/chat-input/composables/useInputSettings.ts +++ b/src/renderer/src/components/chat-input/composables/useInputSettings.ts @@ -18,9 +18,10 @@ export function useInputSettings() { }) // === Public Methods === - const toggleWebSearch = async () => { + const setWebSearch = async (value: boolean) => { const previousValue = settings.value.webSearch - settings.value.webSearch = !settings.value.webSearch + if (previousValue === value) return + settings.value.webSearch = value try { await configPresenter.setSetting('input_webSearch', settings.value.webSearch) @@ -32,6 +33,10 @@ export function useInputSettings() { } } + const toggleWebSearch = async () => { + await setWebSearch(!settings.value.webSearch) + } + const toggleDeepThinking = async () => { const previousValue = settings.value.deepThinking settings.value.deepThinking = !settings.value.deepThinking @@ -69,6 +74,7 @@ export function useInputSettings() { return { settings, + setWebSearch, toggleWebSearch, toggleDeepThinking, loadSettings diff --git a/src/renderer/src/components/chat-input/composables/useMentionData.ts b/src/renderer/src/components/chat-input/composables/useMentionData.ts index b0b08b5ae..152d15a73 100644 --- a/src/renderer/src/components/chat-input/composables/useMentionData.ts +++ b/src/renderer/src/components/chat-input/composables/useMentionData.ts @@ -6,7 +6,7 @@ import type { MessageFile } from '@shared/chat' import type { CategorizedData } from '../../editor/mention/suggestion' // === Stores === -import { useMcpStore } from '@/stores/mcp' +import { useAgentMcpData } from './useAgentMcpData' // === Mention System === import { mentionData } from '../../editor/mention/suggestion' @@ -16,8 +16,7 @@ import { mentionData } from '../../editor/mention/suggestion' * Watches various data sources (files, MCP resources/tools/prompts) and updates mention data */ export function useMentionData(selectedFiles: Ref) { - // === Stores === - const mcpStore = useMcpStore() + const { tools, resources, prompts } = useAgentMcpData() // === Watchers === /** @@ -45,12 +44,12 @@ export function useMentionData(selectedFiles: Ref) { * Watch MCP resources and update mention data */ watch( - () => mcpStore.resources, + () => resources.value, () => { mentionData.value = mentionData.value .filter((item) => item.type !== 'item' || item.category !== 'resources') .concat( - mcpStore.resources.map((resource) => ({ + resources.value.map((resource) => ({ id: `${resource.client.name}.${resource.name ?? ''}`, label: resource.name ?? '', icon: 'lucide:tag', @@ -67,12 +66,12 @@ export function useMentionData(selectedFiles: Ref) { * Watch MCP tools and update mention data */ watch( - () => mcpStore.tools, + () => tools.value, () => { mentionData.value = mentionData.value .filter((item) => item.type !== 'item' || item.category !== 'tools') .concat( - mcpStore.tools.map((tool) => ({ + tools.value.map((tool) => ({ id: `${tool.server.name}.${tool.function.name ?? ''}`, label: `${tool.server.icons}${' '}${tool.function.name ?? ''}`, icon: undefined, @@ -89,12 +88,12 @@ export function useMentionData(selectedFiles: Ref) { * Watch MCP prompts and update mention data */ watch( - () => mcpStore.prompts, + () => prompts.value, () => { mentionData.value = mentionData.value .filter((item) => item.type !== 'item' || item.category !== 'prompts') .concat( - mcpStore.prompts.map((prompt) => ({ + prompts.value.map((prompt) => ({ id: prompt.name, label: prompt.name, icon: undefined, diff --git a/src/renderer/src/components/chat-input/composables/usePromptInputEditor.ts b/src/renderer/src/components/chat-input/composables/usePromptInputEditor.ts index d4e0a0806..ac6bcf07f 100644 --- a/src/renderer/src/components/chat-input/composables/usePromptInputEditor.ts +++ b/src/renderer/src/components/chat-input/composables/usePromptInputEditor.ts @@ -107,6 +107,10 @@ export function usePromptInputEditor( fetchingMcpEntry.value = false } + if (subBlock.attrs?.category === 'context' && subBlock.attrs?.content) { + content = subBlock.attrs.content as string + } + if (subBlock.attrs?.category === 'prompts') { fetchingMcpEntry.value = true try { @@ -266,11 +270,13 @@ export function usePromptInputEditor( */ const insertMentionToEditor = (mentionData: CategorizedData, position: number): boolean => { try { + const mentionContent = + mentionData.content ?? (mentionData.mcpEntry ? JSON.stringify(mentionData.mcpEntry) : '') const mentionAttrs = { id: mentionData.id, label: mentionData.label, category: mentionData.category, - content: mentionData.mcpEntry ? JSON.stringify(mentionData.mcpEntry) : '' + content: mentionContent } const success = editor diff --git a/src/renderer/src/components/chat-input/composables/useWorkspaceMention.ts b/src/renderer/src/components/chat-input/composables/useWorkspaceMention.ts new file mode 100644 index 000000000..d2e8a3e8c --- /dev/null +++ b/src/renderer/src/components/chat-input/composables/useWorkspaceMention.ts @@ -0,0 +1,101 @@ +import { computed, ref, watch, type Ref } from 'vue' +import { useDebounceFn } from '@vueuse/core' +import { usePresenter } from '@/composables/usePresenter' +import type { WorkspaceFileNode } from '@shared/presenter' +import type { CategorizedData } from '../../editor/mention/suggestion' + +export function useWorkspaceMention(options: { + workspacePath: Ref + chatMode: Ref<'chat' | 'agent' | 'acp agent'> + conversationId: Ref +}) { + const workspacePresenter = usePresenter('workspacePresenter') + const workspaceFileResults = ref([]) + + const isEnabled = computed(() => { + const hasPath = !!options.workspacePath.value + const isAgentMode = options.chatMode.value === 'agent' || options.chatMode.value === 'acp agent' + const enabled = hasPath && isAgentMode + return enabled + }) + + const toDisplayPath = (filePath: string) => { + const root = options.workspacePath.value + if (!root) return filePath + const trimmedRoot = root.replace(/[\\/]+$/, '') + if (!filePath.startsWith(trimmedRoot)) return filePath + const relative = filePath.slice(trimmedRoot.length).replace(/^[\\/]+/, '') + return relative || filePath + } + + const mapResults = (files: WorkspaceFileNode[]) => + files.map((file) => { + const relativePath = toDisplayPath(file.path) + return { + id: file.path, + label: relativePath || file.name, + description: file.path, + icon: file.isDirectory ? 'lucide:folder' : 'lucide:file', + type: 'item' as const, + category: 'workspace' as const + } + }) + + const clearResults = () => { + workspaceFileResults.value = [] + } + + const searchWorkspaceFiles = useDebounceFn(async (query: string) => { + // Allow empty query to show some files when user just types "@" + // Empty query means show a limited list of files + if (!isEnabled.value || !options.workspacePath.value) { + clearResults() + return + } + + const trimmed = query.trim() + // If query is empty, use "**/*" to show some files (limited by searchFiles) + // This is a standard glob pattern to match all files + const searchQuery = trimmed || '**/*' + + try { + if (options.chatMode.value === 'acp agent') { + await workspacePresenter.registerWorkdir(options.workspacePath.value) + } else { + await workspacePresenter.registerWorkspace(options.workspacePath.value) + } + const results = + (await workspacePresenter.searchFiles(options.workspacePath.value, searchQuery)) ?? [] + workspaceFileResults.value = mapResults(results) + } catch (error) { + console.error('[WorkspaceMention] Failed to search workspace files:', error) + clearResults() + } + }, 300) + + watch(isEnabled, (enabled) => { + if (!enabled) { + clearResults() + } + }) + + watch( + () => options.workspacePath.value, + () => { + clearResults() + } + ) + + watch( + () => options.conversationId.value, + () => { + clearResults() + } + ) + + return { + searchWorkspaceFiles, + workspaceFileResults, + isEnabled + } +} diff --git a/src/renderer/src/components/editor/mention/suggestion.ts b/src/renderer/src/components/editor/mention/suggestion.ts index f95cf6ea2..7c7c780b2 100644 --- a/src/renderer/src/components/editor/mention/suggestion.ts +++ b/src/renderer/src/components/editor/mention/suggestion.ts @@ -14,10 +14,12 @@ export interface CategorizedData { category?: string description?: string mcpEntry?: ResourceListEntry | PromptListEntry + content?: string } // Sample categorized items const categorizedData: CategorizedData[] = [ + { label: 'context', icon: 'lucide:quote', type: 'category' }, { label: 'files', icon: 'lucide:files', type: 'category' }, { label: 'resources', icon: 'lucide:swatch-book', type: 'category' }, { label: 'tools', icon: 'lucide:hammer', type: 'category' }, @@ -28,6 +30,18 @@ const categorizedData: CategorizedData[] = [ export const mentionSelected = ref(false) export const mentionData: Ref = ref(categorizedData) +export type WorkspaceMentionHandler = { + searchWorkspaceFiles: (query: string) => void + workspaceFileResults: Ref + isEnabled: Ref +} + +let workspaceMentionHandler: WorkspaceMentionHandler | null = null + +export const setWorkspaceMention = (handler: WorkspaceMentionHandler | null) => { + workspaceMentionHandler = handler +} + // 存储文件处理回调函数 let promptFilesHandler: | (( @@ -53,24 +67,39 @@ export const setPromptFilesHandler = (handler: typeof promptFilesHandler) => { export const getPromptFilesHandler = () => promptFilesHandler export default { - allowedPrefixes: null, + char: '@', + allowedPrefixes: null, // null means allow @ after any character items: ({ query }) => { - // If there's a query, search across all categories - if (query) { - const allItems: CategorizedData[] = [] - // Flatten the structure and search in all categories + // Note: TipTap mention passes query WITHOUT the trigger character (@) + // So if user types "@", query is "" + // If user types "@p", query is "p" + + // Collect workspace results if enabled + let workspaceResults: CategorizedData[] = [] + if (workspaceMentionHandler?.isEnabled.value) { + workspaceMentionHandler.searchWorkspaceFiles(query) + workspaceResults = workspaceMentionHandler.workspaceFileResults.value + } + // Collect other mention data (prompts, tools, files, resources) + let otherItems: CategorizedData[] = [] + if (query) { + // Search across all categories for (const item of mentionData.value) { if (item.label.toLowerCase().includes(query.toLowerCase())) { - allItems.push(item) + otherItems.push(item) } } - - return allItems.slice(0, 5) + otherItems = otherItems.slice(0, 5) + } else { + // If no query, return all mention data + otherItems = mentionData.value } - // If no query, return the full list - return mentionData.value + // Combine workspace results with other mention data + // Workspace results come first, then other mention data + const combined = [...workspaceResults, ...otherItems] + return combined }, render: () => { diff --git a/src/renderer/src/components/mcp-config/AgentMcpSelector.vue b/src/renderer/src/components/mcp-config/AgentMcpSelector.vue new file mode 100644 index 000000000..46f35e62a --- /dev/null +++ b/src/renderer/src/components/mcp-config/AgentMcpSelector.vue @@ -0,0 +1,135 @@ + + + diff --git a/src/renderer/src/components/message/MessageContent.vue b/src/renderer/src/components/message/MessageContent.vue index 78707bbdd..c3d809987 100644 --- a/src/renderer/src/components/message/MessageContent.vue +++ b/src/renderer/src/components/message/MessageContent.vue @@ -8,11 +8,11 @@ - {{ block.category === 'prompts' ? block.id : block.content }} + {{ getMentionLabel(block) }} @@ -59,6 +59,7 @@ const handleMentionClick = (block: UserMessageMentionBlock) => { // 根据 category 获取对应的图标 const getMentionIcon = (category: string) => { const iconMap: Record = { + context: 'lucide:quote', prompts: 'lucide:message-square-quote', files: 'lucide:file-text', tools: 'lucide:wrench', @@ -72,4 +73,21 @@ const getMentionIcon = (category: string) => { return iconMap[category] || iconMap.default } + +const getMentionLabel = (block: UserMessageMentionBlock) => { + if (block.category === 'prompts') { + return block.id || block.content + } + if (block.category === 'context') { + return block.id || block.category + } + return block.content +} + +const getMentionTitle = (block: UserMessageMentionBlock) => { + if (block.category === 'context') { + return block.id || '' + } + return block.content +} diff --git a/src/renderer/src/components/message/MessageItemAssistant.vue b/src/renderer/src/components/message/MessageItemAssistant.vue index 5db60d49e..754b16387 100644 --- a/src/renderer/src/components/message/MessageItemAssistant.vue +++ b/src/renderer/src/components/message/MessageItemAssistant.vue @@ -22,7 +22,7 @@
-
+