mirror of
https://github.com/hwchase17/langchain.git
synced 2026-03-17 18:45:44 +00:00
feat(model-profiles): new fields + Makefile target (#35788)
Extract additional fields from models.dev into `_model_data_to_profile`: `name`, `status`, `release_date`, `last_updated`, `open_weights`, `attachment`, `temperature` Move the model profile refresh logic from an inline bash script in the GitHub Actions workflow into a `make refresh-profiles` target in `libs/model-profiles/Makefile`. This makes it runnable locally with a single command and keeps the provider map in one place instead of duplicated between CI and developer docs.
This commit is contained in:
23
.github/workflows/refresh_model_profiles.yml
vendored
23
.github/workflows/refresh_model_profiles.yml
vendored
@@ -36,28 +36,7 @@ jobs:
|
||||
|
||||
- name: "🔄 Refresh profiles"
|
||||
working-directory: libs/model-profiles
|
||||
run: |
|
||||
declare -A PROVIDERS=(
|
||||
[anthropic]=anthropic
|
||||
[deepseek]=deepseek
|
||||
[fireworks]=fireworks-ai
|
||||
[groq]=groq
|
||||
[huggingface]=huggingface
|
||||
[mistralai]=mistral
|
||||
[openai]=openai
|
||||
[openrouter]=openrouter
|
||||
[perplexity]=perplexity
|
||||
[xai]=xai
|
||||
)
|
||||
|
||||
for partner in "${!PROVIDERS[@]}"; do
|
||||
provider="${PROVIDERS[$partner]}"
|
||||
data_dir="../../libs/partners/${partner}/langchain_${partner//-/_}/data"
|
||||
echo "--- Refreshing ${partner} (provider: ${provider}) ---"
|
||||
echo y | uv run langchain-profiles refresh \
|
||||
--provider "$provider" \
|
||||
--data-dir "$data_dir"
|
||||
done
|
||||
run: make refresh-profiles
|
||||
|
||||
- name: "🔑 Generate GitHub App token"
|
||||
id: app-token
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.PHONY: all format lint type test tests integration_tests help extended_tests
|
||||
.PHONY: all format lint type test tests integration_tests help extended_tests refresh-profiles
|
||||
|
||||
# Default target executed when no arguments are given to make.
|
||||
all: help
|
||||
@@ -6,6 +6,37 @@ all: help
|
||||
.EXPORT_ALL_VARIABLES:
|
||||
UV_FROZEN = true
|
||||
|
||||
######################
|
||||
# MODEL PROFILE REFRESH
|
||||
######################
|
||||
|
||||
# Provider map: partner directory name -> models.dev provider ID.
|
||||
# Used by .github/workflows/refresh_model_profiles.yml via `make refresh-profiles`.
|
||||
PROFILE_PROVIDERS := \
|
||||
anthropic=anthropic \
|
||||
deepseek=deepseek \
|
||||
fireworks=fireworks-ai \
|
||||
groq=groq \
|
||||
huggingface=huggingface \
|
||||
mistralai=mistral \
|
||||
openai=openai \
|
||||
openrouter=openrouter \
|
||||
perplexity=perplexity \
|
||||
xai=xai
|
||||
|
||||
# Refresh model profiles for all supported partners in libs/partners/.
|
||||
# Requires network access, so UV_FROZEN is overridden for this target.
|
||||
refresh-profiles:
|
||||
@for entry in $(PROFILE_PROVIDERS); do \
|
||||
partner=$${entry%%=*}; \
|
||||
provider=$${entry##*=}; \
|
||||
data_dir="../partners/$${partner}/langchain_$${partner//-/_}/data"; \
|
||||
echo "--- Refreshing $${partner} (provider: $${provider}) ---"; \
|
||||
echo y | UV_FROZEN=false uv run langchain-profiles refresh \
|
||||
--provider "$${provider}" \
|
||||
--data-dir "$${data_dir}"; \
|
||||
done
|
||||
|
||||
# Define a variable for the test file path.
|
||||
TEST_FILE ?= tests/unit_tests/
|
||||
|
||||
@@ -66,3 +97,4 @@ help:
|
||||
@echo 'test - run unit tests'
|
||||
@echo 'tests - run unit tests'
|
||||
@echo 'test TEST_FILE=<test_file> - run all tests in file'
|
||||
@echo 'refresh-profiles - refresh model profiles for all supported partners'
|
||||
|
||||
@@ -106,6 +106,11 @@ def _model_data_to_profile(model_data: dict[str, Any]) -> dict[str, Any]:
|
||||
output_modalities = modalities.get("output") or []
|
||||
|
||||
profile = {
|
||||
"name": model_data.get("name"),
|
||||
"status": model_data.get("status"),
|
||||
"release_date": model_data.get("release_date"),
|
||||
"last_updated": model_data.get("last_updated"),
|
||||
"open_weights": model_data.get("open_weights"),
|
||||
"max_input_tokens": limit.get("context"),
|
||||
"max_output_tokens": limit.get("output"),
|
||||
"text_inputs": "text" in input_modalities,
|
||||
@@ -121,6 +126,8 @@ def _model_data_to_profile(model_data: dict[str, Any]) -> dict[str, Any]:
|
||||
"tool_calling": model_data.get("tool_call"),
|
||||
"tool_choice": model_data.get("tool_choice"),
|
||||
"structured_output": model_data.get("structured_output"),
|
||||
"attachment": model_data.get("attachment"),
|
||||
"temperature": model_data.get("temperature"),
|
||||
"image_url_inputs": model_data.get("image_url_inputs"),
|
||||
"image_tool_message": model_data.get("image_tool_message"),
|
||||
"pdf_tool_message": model_data.get("pdf_tool_message"),
|
||||
|
||||
@@ -272,6 +272,70 @@ def test_refresh_generates_sorted_profiles(
|
||||
assert model_ids == sorted(model_ids), f"Profile keys are not sorted: {model_ids}"
|
||||
|
||||
|
||||
def test_model_data_to_profile_captures_all_models_dev_fields() -> None:
|
||||
"""Test that all models.dev fields are captured in the profile."""
|
||||
model_data = {
|
||||
"id": "claude-opus-4-6",
|
||||
"name": "Claude Opus 4.6",
|
||||
"status": "deprecated",
|
||||
"release_date": "2025-06-01",
|
||||
"last_updated": "2025-07-01",
|
||||
"open_weights": False,
|
||||
"reasoning": True,
|
||||
"tool_call": True,
|
||||
"tool_choice": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"limit": {"context": 200000, "output": 64000},
|
||||
"modalities": {
|
||||
"input": ["text", "image", "pdf"],
|
||||
"output": ["text"],
|
||||
},
|
||||
}
|
||||
profile = _model_data_to_profile(model_data)
|
||||
|
||||
# Metadata
|
||||
assert profile["name"] == "Claude Opus 4.6"
|
||||
assert profile["status"] == "deprecated"
|
||||
assert profile["release_date"] == "2025-06-01"
|
||||
assert profile["last_updated"] == "2025-07-01"
|
||||
assert profile["open_weights"] is False
|
||||
|
||||
# Limits
|
||||
assert profile["max_input_tokens"] == 200000
|
||||
assert profile["max_output_tokens"] == 64000
|
||||
|
||||
# Capabilities
|
||||
assert profile["reasoning_output"] is True
|
||||
assert profile["tool_calling"] is True
|
||||
assert profile["tool_choice"] is True
|
||||
assert profile["structured_output"] is True
|
||||
assert profile["attachment"] is True
|
||||
|
||||
# Modalities
|
||||
assert profile["text_inputs"] is True
|
||||
assert profile["image_inputs"] is True
|
||||
assert profile["pdf_inputs"] is True
|
||||
assert profile["text_outputs"] is True
|
||||
|
||||
|
||||
def test_model_data_to_profile_omits_absent_fields() -> None:
|
||||
"""Test that fields not present in source data are omitted (not None)."""
|
||||
minimal = {
|
||||
"modalities": {"input": ["text"], "output": ["text"]},
|
||||
"limit": {"context": 8192, "output": 4096},
|
||||
}
|
||||
profile = _model_data_to_profile(minimal)
|
||||
|
||||
assert "status" not in profile
|
||||
assert "family" not in profile
|
||||
assert "knowledge_cutoff" not in profile
|
||||
assert "cost_input" not in profile
|
||||
assert "interleaved" not in profile
|
||||
assert None not in profile.values()
|
||||
|
||||
|
||||
def test_model_data_to_profile_text_modalities() -> None:
|
||||
"""Test that text input/output modalities are correctly mapped."""
|
||||
# Model with text in both input and output
|
||||
|
||||
22
libs/model-profiles/uv.lock
generated
22
libs/model-profiles/uv.lock
generated
@@ -459,7 +459,7 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "langchain"
|
||||
version = "1.2.10"
|
||||
version = "1.2.12"
|
||||
source = { editable = "../langchain_v1" }
|
||||
dependencies = [
|
||||
{ name = "langchain-core" },
|
||||
@@ -491,7 +491,7 @@ requires-dist = [
|
||||
{ name = "langchain-perplexity", marker = "extra == 'perplexity'" },
|
||||
{ name = "langchain-together", marker = "extra == 'together'" },
|
||||
{ name = "langchain-xai", marker = "extra == 'xai'" },
|
||||
{ name = "langgraph", specifier = ">=1.0.8,<1.1.0" },
|
||||
{ name = "langgraph", specifier = ">=1.1.1,<1.2.0" },
|
||||
{ name = "pydantic", specifier = ">=2.7.4,<3.0.0" },
|
||||
]
|
||||
provides-extras = ["community", "anthropic", "openai", "azure-ai", "google-vertexai", "google-genai", "fireworks", "ollama", "together", "mistralai", "huggingface", "groq", "aws", "deepseek", "xai", "perplexity"]
|
||||
@@ -527,7 +527,7 @@ typing = [
|
||||
|
||||
[[package]]
|
||||
name = "langchain-core"
|
||||
version = "1.2.17"
|
||||
version = "1.2.18"
|
||||
source = { editable = "../core" }
|
||||
dependencies = [
|
||||
{ name = "jsonpatch" },
|
||||
@@ -655,7 +655,7 @@ typing = [
|
||||
|
||||
[[package]]
|
||||
name = "langchain-openai"
|
||||
version = "1.1.10"
|
||||
version = "1.1.11"
|
||||
source = { editable = "../partners/openai" }
|
||||
dependencies = [
|
||||
{ name = "langchain-core" },
|
||||
@@ -666,7 +666,7 @@ dependencies = [
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "langchain-core", editable = "../core" },
|
||||
{ name = "openai", specifier = ">=2.20.0,<3.0.0" },
|
||||
{ name = "openai", specifier = ">=2.26.0,<3.0.0" },
|
||||
{ name = "tiktoken", specifier = ">=0.7.0,<1.0.0" },
|
||||
]
|
||||
|
||||
@@ -705,7 +705,7 @@ typing = [
|
||||
|
||||
[[package]]
|
||||
name = "langgraph"
|
||||
version = "1.0.10rc1"
|
||||
version = "1.1.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "langchain-core" },
|
||||
@@ -715,9 +715,9 @@ dependencies = [
|
||||
{ name = "pydantic" },
|
||||
{ name = "xxhash" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/59/33/34c8ab47938ac2ac6df1d2696e28b6000e98c2a783b89655fe2261b7f93b/langgraph-1.0.10rc1.tar.gz", hash = "sha256:4042dc1f33297ccbd593bddc5a4e77dc7e0f37c7ac19d48551c53a22287bacaa", size = 511667, upload-time = "2026-02-26T20:13:38.38Z" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/6d/1a/6dbad0c87fb39a58e5ced85297511cc4bcad06cc420b20898eecafece2a2/langgraph-1.1.1.tar.gz", hash = "sha256:cd6282efc657c955b41bff6bd9693de58137ad18f7e7f16b4d17c7d2118d53e1", size = 544040, upload-time = "2026-03-11T22:14:47.845Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/df/61/b6e7fd50c70116369874d681e3aa14bf32adbdde6c05014e5260c081452f/langgraph-1.0.10rc1-py3-none-any.whl", hash = "sha256:10750c035cc48b6809a4657ad0c9fd63fb6ee47dd2f1f2a57adb940381d096e5", size = 160950, upload-time = "2026-02-26T20:13:37.223Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/dc/c1/572187bb61a534050ef2d5030e7abe46b19694ec106604fe12ddcb8672c7/langgraph-1.1.1-py3-none-any.whl", hash = "sha256:d0cc8d347131cbfc010e65aad9b0f1afbd0e151f470c288bec1f3df8336c50c6", size = 167502, upload-time = "2026-03-11T22:14:46.121Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -908,7 +908,7 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "openai"
|
||||
version = "2.21.0"
|
||||
version = "2.26.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "anyio" },
|
||||
@@ -920,9 +920,9 @@ dependencies = [
|
||||
{ name = "tqdm" },
|
||||
{ name = "typing-extensions" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/92/e5/3d197a0947a166649f566706d7a4c8f7fe38f1fa7b24c9bcffe4c7591d44/openai-2.21.0.tar.gz", hash = "sha256:81b48ce4b8bbb2cc3af02047ceb19561f7b1dc0d4e52d1de7f02abfd15aa59b7", size = 644374, upload-time = "2026-02-14T00:12:01.577Z" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/d7/91/2a06c4e9597c338cac1e5e5a8dd6f29e1836fc229c4c523529dca387fda8/openai-2.26.0.tar.gz", hash = "sha256:b41f37c140ae0034a6e92b0c509376d907f3a66109935fba2c1b471a7c05a8fb", size = 666702, upload-time = "2026-03-05T23:17:35.874Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/cc/56/0a89092a453bb2c676d66abee44f863e742b2110d4dbb1dbcca3f7e5fc33/openai-2.21.0-py3-none-any.whl", hash = "sha256:0bc1c775e5b1536c294eded39ee08f8407656537ccc71b1004104fe1602e267c", size = 1103065, upload-time = "2026-02-14T00:11:59.603Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/c6/2e/3f73e8ca53718952222cacd0cf7eecc9db439d020f0c1fe7ae717e4e199a/openai-2.26.0-py3-none-any.whl", hash = "sha256:6151bf8f83802f036117f06cc8a57b3a4da60da9926826cc96747888b57f394f", size = 1136409, upload-time = "2026-03-05T23:17:34.072Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
@@ -17,6 +17,10 @@ from typing import Any
|
||||
|
||||
_PROFILES: dict[str, dict[str, Any]] = {
|
||||
"claude-3-5-haiku-20241022": {
|
||||
"name": "Claude Haiku 3.5",
|
||||
"release_date": "2024-10-22",
|
||||
"last_updated": "2024-10-22",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -30,12 +34,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-3-5-haiku-latest": {
|
||||
"name": "Claude Haiku 3.5 (latest)",
|
||||
"release_date": "2024-10-22",
|
||||
"last_updated": "2024-10-22",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -49,12 +59,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-3-5-sonnet-20240620": {
|
||||
"name": "Claude Sonnet 3.5",
|
||||
"release_date": "2024-06-20",
|
||||
"last_updated": "2024-06-20",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -68,12 +84,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-3-5-sonnet-20241022": {
|
||||
"name": "Claude Sonnet 3.5 v2",
|
||||
"release_date": "2024-10-22",
|
||||
"last_updated": "2024-10-22",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -87,12 +109,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-3-7-sonnet-20250219": {
|
||||
"name": "Claude Sonnet 3.7",
|
||||
"release_date": "2025-02-19",
|
||||
"last_updated": "2025-02-19",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 64000,
|
||||
"text_inputs": True,
|
||||
@@ -106,12 +134,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-3-7-sonnet-latest": {
|
||||
"name": "Claude Sonnet 3.7 (latest)",
|
||||
"release_date": "2025-02-19",
|
||||
"last_updated": "2025-02-19",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 64000,
|
||||
"text_inputs": True,
|
||||
@@ -125,12 +159,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-3-haiku-20240307": {
|
||||
"name": "Claude Haiku 3",
|
||||
"release_date": "2024-03-13",
|
||||
"last_updated": "2024-03-13",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -144,12 +184,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-3-opus-20240229": {
|
||||
"name": "Claude Opus 3",
|
||||
"release_date": "2024-02-29",
|
||||
"last_updated": "2024-02-29",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -163,12 +209,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-3-sonnet-20240229": {
|
||||
"name": "Claude Sonnet 3",
|
||||
"release_date": "2024-03-04",
|
||||
"last_updated": "2024-03-04",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -182,12 +234,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-haiku-4-5": {
|
||||
"name": "Claude Haiku 4.5 (latest)",
|
||||
"release_date": "2025-10-15",
|
||||
"last_updated": "2025-10-15",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 64000,
|
||||
"text_inputs": True,
|
||||
@@ -201,12 +259,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-haiku-4-5-20251001": {
|
||||
"name": "Claude Haiku 4.5",
|
||||
"release_date": "2025-10-15",
|
||||
"last_updated": "2025-10-15",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 64000,
|
||||
"text_inputs": True,
|
||||
@@ -220,12 +284,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-opus-4-0": {
|
||||
"name": "Claude Opus 4 (latest)",
|
||||
"release_date": "2025-05-22",
|
||||
"last_updated": "2025-05-22",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 32000,
|
||||
"text_inputs": True,
|
||||
@@ -239,12 +309,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-opus-4-1": {
|
||||
"name": "Claude Opus 4.1 (latest)",
|
||||
"release_date": "2025-08-05",
|
||||
"last_updated": "2025-08-05",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 32000,
|
||||
"text_inputs": True,
|
||||
@@ -258,12 +334,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": True,
|
||||
},
|
||||
"claude-opus-4-1-20250805": {
|
||||
"name": "Claude Opus 4.1",
|
||||
"release_date": "2025-08-05",
|
||||
"last_updated": "2025-08-05",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 32000,
|
||||
"text_inputs": True,
|
||||
@@ -277,12 +359,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-opus-4-20250514": {
|
||||
"name": "Claude Opus 4",
|
||||
"release_date": "2025-05-22",
|
||||
"last_updated": "2025-05-22",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 32000,
|
||||
"text_inputs": True,
|
||||
@@ -296,12 +384,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-opus-4-5": {
|
||||
"name": "Claude Opus 4.5 (latest)",
|
||||
"release_date": "2025-11-24",
|
||||
"last_updated": "2025-11-24",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 64000,
|
||||
"text_inputs": True,
|
||||
@@ -315,12 +409,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-opus-4-5-20251101": {
|
||||
"name": "Claude Opus 4.5",
|
||||
"release_date": "2025-11-01",
|
||||
"last_updated": "2025-11-01",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 64000,
|
||||
"text_inputs": True,
|
||||
@@ -334,12 +434,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-opus-4-6": {
|
||||
"name": "Claude Opus 4.6",
|
||||
"release_date": "2026-02-05",
|
||||
"last_updated": "2026-02-05",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -353,12 +459,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-sonnet-4-0": {
|
||||
"name": "Claude Sonnet 4 (latest)",
|
||||
"release_date": "2025-05-22",
|
||||
"last_updated": "2025-05-22",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 64000,
|
||||
"text_inputs": True,
|
||||
@@ -372,12 +484,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-sonnet-4-20250514": {
|
||||
"name": "Claude Sonnet 4",
|
||||
"release_date": "2025-05-22",
|
||||
"last_updated": "2025-05-22",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 64000,
|
||||
"text_inputs": True,
|
||||
@@ -391,12 +509,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-sonnet-4-5": {
|
||||
"name": "Claude Sonnet 4.5 (latest)",
|
||||
"release_date": "2025-09-29",
|
||||
"last_updated": "2025-09-29",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 64000,
|
||||
"text_inputs": True,
|
||||
@@ -410,12 +534,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": True,
|
||||
},
|
||||
"claude-sonnet-4-5-20250929": {
|
||||
"name": "Claude Sonnet 4.5",
|
||||
"release_date": "2025-09-29",
|
||||
"last_updated": "2025-09-29",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 64000,
|
||||
"text_inputs": True,
|
||||
@@ -429,12 +559,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"structured_output": False,
|
||||
},
|
||||
"claude-sonnet-4-6": {
|
||||
"name": "Claude Sonnet 4.6",
|
||||
"release_date": "2026-02-17",
|
||||
"last_updated": "2026-02-17",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 64000,
|
||||
"text_inputs": True,
|
||||
@@ -448,6 +584,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
|
||||
@@ -17,6 +17,10 @@ from typing import Any
|
||||
|
||||
_PROFILES: dict[str, dict[str, Any]] = {
|
||||
"deepseek-chat": {
|
||||
"name": "DeepSeek Chat",
|
||||
"release_date": "2025-12-01",
|
||||
"last_updated": "2026-02-28",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -29,8 +33,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"deepseek-reasoner": {
|
||||
"name": "DeepSeek Reasoner",
|
||||
"release_date": "2025-12-01",
|
||||
"last_updated": "2026-02-28",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 64000,
|
||||
"text_inputs": True,
|
||||
@@ -43,5 +53,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -17,6 +17,10 @@ from typing import Any
|
||||
|
||||
_PROFILES: dict[str, dict[str, Any]] = {
|
||||
"accounts/fireworks/models/deepseek-v3p1": {
|
||||
"name": "DeepSeek V3.1",
|
||||
"release_date": "2025-08-21",
|
||||
"last_updated": "2025-08-21",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 163840,
|
||||
"max_output_tokens": 163840,
|
||||
"text_inputs": True,
|
||||
@@ -29,8 +33,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"accounts/fireworks/models/deepseek-v3p2": {
|
||||
"name": "DeepSeek V3.2",
|
||||
"release_date": "2025-12-01",
|
||||
"last_updated": "2025-12-01",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 160000,
|
||||
"max_output_tokens": 160000,
|
||||
"text_inputs": True,
|
||||
@@ -43,8 +53,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"accounts/fireworks/models/glm-4p5": {
|
||||
"name": "GLM 4.5",
|
||||
"release_date": "2025-07-29",
|
||||
"last_updated": "2025-07-29",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 131072,
|
||||
"text_inputs": True,
|
||||
@@ -57,8 +73,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"accounts/fireworks/models/glm-4p5-air": {
|
||||
"name": "GLM 4.5 Air",
|
||||
"release_date": "2025-08-01",
|
||||
"last_updated": "2025-08-01",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 131072,
|
||||
"text_inputs": True,
|
||||
@@ -71,8 +93,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"accounts/fireworks/models/glm-4p7": {
|
||||
"name": "GLM 4.7",
|
||||
"release_date": "2025-12-22",
|
||||
"last_updated": "2025-12-22",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 198000,
|
||||
"max_output_tokens": 198000,
|
||||
"text_inputs": True,
|
||||
@@ -85,8 +113,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"accounts/fireworks/models/glm-5": {
|
||||
"name": "GLM 5",
|
||||
"release_date": "2026-02-11",
|
||||
"last_updated": "2026-02-11",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 202752,
|
||||
"max_output_tokens": 131072,
|
||||
"text_inputs": True,
|
||||
@@ -99,8 +133,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"accounts/fireworks/models/gpt-oss-120b": {
|
||||
"name": "GPT OSS 120B",
|
||||
"release_date": "2025-08-05",
|
||||
"last_updated": "2025-08-05",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 32768,
|
||||
"text_inputs": True,
|
||||
@@ -113,8 +153,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"accounts/fireworks/models/gpt-oss-20b": {
|
||||
"name": "GPT OSS 20B",
|
||||
"release_date": "2025-08-05",
|
||||
"last_updated": "2025-08-05",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 32768,
|
||||
"text_inputs": True,
|
||||
@@ -127,8 +173,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"accounts/fireworks/models/kimi-k2-instruct": {
|
||||
"name": "Kimi K2 Instruct",
|
||||
"release_date": "2025-07-11",
|
||||
"last_updated": "2025-07-11",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -141,8 +193,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"accounts/fireworks/models/kimi-k2-thinking": {
|
||||
"name": "Kimi K2 Thinking",
|
||||
"release_date": "2025-11-06",
|
||||
"last_updated": "2025-11-06",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 256000,
|
||||
"max_output_tokens": 256000,
|
||||
"text_inputs": True,
|
||||
@@ -155,8 +213,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"accounts/fireworks/models/kimi-k2p5": {
|
||||
"name": "Kimi K2.5",
|
||||
"release_date": "2026-01-27",
|
||||
"last_updated": "2026-01-27",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 256000,
|
||||
"max_output_tokens": 256000,
|
||||
"text_inputs": True,
|
||||
@@ -169,8 +233,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"accounts/fireworks/models/minimax-m2p1": {
|
||||
"name": "MiniMax-M2.1",
|
||||
"release_date": "2025-12-23",
|
||||
"last_updated": "2025-12-23",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 200000,
|
||||
"text_inputs": True,
|
||||
@@ -183,8 +253,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"accounts/fireworks/models/minimax-m2p5": {
|
||||
"name": "MiniMax-M2.5",
|
||||
"release_date": "2026-02-12",
|
||||
"last_updated": "2026-02-12",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 196608,
|
||||
"max_output_tokens": 196608,
|
||||
"text_inputs": True,
|
||||
@@ -197,5 +273,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -17,6 +17,11 @@ from typing import Any
|
||||
|
||||
_PROFILES: dict[str, dict[str, Any]] = {
|
||||
"deepseek-r1-distill-llama-70b": {
|
||||
"name": "DeepSeek R1 Distill Llama 70B",
|
||||
"status": "deprecated",
|
||||
"release_date": "2025-01-20",
|
||||
"last_updated": "2025-01-20",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -29,8 +34,15 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"gemma2-9b-it": {
|
||||
"name": "Gemma 2 9B",
|
||||
"status": "deprecated",
|
||||
"release_date": "2024-06-27",
|
||||
"last_updated": "2024-06-27",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 8192,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -43,8 +55,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"llama-3.1-8b-instant": {
|
||||
"name": "Llama 3.1 8B Instant",
|
||||
"release_date": "2024-07-23",
|
||||
"last_updated": "2024-07-23",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 131072,
|
||||
"text_inputs": True,
|
||||
@@ -57,8 +75,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"llama-3.3-70b-versatile": {
|
||||
"name": "Llama 3.3 70B Versatile",
|
||||
"release_date": "2024-12-06",
|
||||
"last_updated": "2024-12-06",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 32768,
|
||||
"text_inputs": True,
|
||||
@@ -71,8 +95,15 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"llama-guard-3-8b": {
|
||||
"name": "Llama Guard 3 8B",
|
||||
"status": "deprecated",
|
||||
"release_date": "2024-07-23",
|
||||
"last_updated": "2024-07-23",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 8192,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -85,8 +116,15 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": False,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"llama3-70b-8192": {
|
||||
"name": "Llama 3 70B",
|
||||
"status": "deprecated",
|
||||
"release_date": "2024-04-18",
|
||||
"last_updated": "2024-04-18",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 8192,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -99,8 +137,15 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"llama3-8b-8192": {
|
||||
"name": "Llama 3 8B",
|
||||
"status": "deprecated",
|
||||
"release_date": "2024-04-18",
|
||||
"last_updated": "2024-04-18",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 8192,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -113,8 +158,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"meta-llama/llama-4-maverick-17b-128e-instruct": {
|
||||
"name": "Llama 4 Maverick 17B",
|
||||
"release_date": "2025-04-05",
|
||||
"last_updated": "2025-04-05",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -128,8 +179,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"meta-llama/llama-4-scout-17b-16e-instruct": {
|
||||
"name": "Llama 4 Scout 17B",
|
||||
"release_date": "2025-04-05",
|
||||
"last_updated": "2025-04-05",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -143,8 +200,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"meta-llama/llama-guard-4-12b": {
|
||||
"name": "Llama Guard 4 12B",
|
||||
"release_date": "2025-04-05",
|
||||
"last_updated": "2025-04-05",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 1024,
|
||||
"text_inputs": True,
|
||||
@@ -157,8 +220,15 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": False,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"mistral-saba-24b": {
|
||||
"name": "Mistral Saba 24B",
|
||||
"status": "deprecated",
|
||||
"release_date": "2025-02-06",
|
||||
"last_updated": "2025-02-06",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 32768,
|
||||
"max_output_tokens": 32768,
|
||||
"text_inputs": True,
|
||||
@@ -171,8 +241,15 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"moonshotai/kimi-k2-instruct": {
|
||||
"name": "Kimi K2 Instruct",
|
||||
"status": "deprecated",
|
||||
"release_date": "2025-07-14",
|
||||
"last_updated": "2025-07-14",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -185,8 +262,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"moonshotai/kimi-k2-instruct-0905": {
|
||||
"name": "Kimi K2 Instruct 0905",
|
||||
"release_date": "2025-09-05",
|
||||
"last_updated": "2025-09-05",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -200,8 +283,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"openai/gpt-oss-120b": {
|
||||
"name": "GPT OSS 120B",
|
||||
"release_date": "2025-08-05",
|
||||
"last_updated": "2025-08-05",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 65536,
|
||||
"text_inputs": True,
|
||||
@@ -215,8 +304,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"openai/gpt-oss-20b": {
|
||||
"name": "GPT OSS 20B",
|
||||
"release_date": "2025-08-05",
|
||||
"last_updated": "2025-08-05",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 65536,
|
||||
"text_inputs": True,
|
||||
@@ -230,8 +325,15 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"qwen-qwq-32b": {
|
||||
"name": "Qwen QwQ 32B",
|
||||
"status": "deprecated",
|
||||
"release_date": "2024-11-27",
|
||||
"last_updated": "2024-11-27",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -244,8 +346,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"qwen/qwen3-32b": {
|
||||
"name": "Qwen3 32B",
|
||||
"release_date": "2024-12-23",
|
||||
"last_updated": "2024-12-23",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -258,5 +366,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -17,6 +17,10 @@ from typing import Any
|
||||
|
||||
_PROFILES: dict[str, dict[str, Any]] = {
|
||||
"MiniMaxAI/MiniMax-M2.1": {
|
||||
"name": "MiniMax-M2.1",
|
||||
"release_date": "2025-12-23",
|
||||
"last_updated": "2025-12-23",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 204800,
|
||||
"max_output_tokens": 131072,
|
||||
"text_inputs": True,
|
||||
@@ -29,8 +33,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"MiniMaxAI/MiniMax-M2.5": {
|
||||
"name": "MiniMax-M2.5",
|
||||
"release_date": "2026-02-12",
|
||||
"last_updated": "2026-02-12",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 204800,
|
||||
"max_output_tokens": 131072,
|
||||
"text_inputs": True,
|
||||
@@ -43,8 +53,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"Qwen/Qwen3-235B-A22B-Thinking-2507": {
|
||||
"name": "Qwen3-235B-A22B-Thinking-2507",
|
||||
"release_date": "2025-07-25",
|
||||
"last_updated": "2025-07-25",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 131072,
|
||||
"text_inputs": True,
|
||||
@@ -57,8 +73,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"Qwen/Qwen3-Coder-480B-A35B-Instruct": {
|
||||
"name": "Qwen3-Coder-480B-A35B-Instruct",
|
||||
"release_date": "2025-07-23",
|
||||
"last_updated": "2025-07-23",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 66536,
|
||||
"text_inputs": True,
|
||||
@@ -71,8 +93,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"Qwen/Qwen3-Coder-Next": {
|
||||
"name": "Qwen3-Coder-Next",
|
||||
"release_date": "2026-02-03",
|
||||
"last_updated": "2026-02-03",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 65536,
|
||||
"text_inputs": True,
|
||||
@@ -85,8 +113,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"Qwen/Qwen3-Embedding-4B": {
|
||||
"name": "Qwen 3 Embedding 4B",
|
||||
"release_date": "2025-01-01",
|
||||
"last_updated": "2025-01-01",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 32000,
|
||||
"max_output_tokens": 2048,
|
||||
"text_inputs": True,
|
||||
@@ -99,8 +133,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": False,
|
||||
"attachment": False,
|
||||
"temperature": False,
|
||||
},
|
||||
"Qwen/Qwen3-Embedding-8B": {
|
||||
"name": "Qwen 3 Embedding 8B",
|
||||
"release_date": "2025-01-01",
|
||||
"last_updated": "2025-01-01",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 32000,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -113,8 +153,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": False,
|
||||
"attachment": False,
|
||||
"temperature": False,
|
||||
},
|
||||
"Qwen/Qwen3-Next-80B-A3B-Instruct": {
|
||||
"name": "Qwen3-Next-80B-A3B-Instruct",
|
||||
"release_date": "2025-09-11",
|
||||
"last_updated": "2025-09-11",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 66536,
|
||||
"text_inputs": True,
|
||||
@@ -127,8 +173,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"Qwen/Qwen3-Next-80B-A3B-Thinking": {
|
||||
"name": "Qwen3-Next-80B-A3B-Thinking",
|
||||
"release_date": "2025-09-11",
|
||||
"last_updated": "2025-09-11",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 131072,
|
||||
"text_inputs": True,
|
||||
@@ -141,8 +193,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"Qwen/Qwen3.5-397B-A17B": {
|
||||
"name": "Qwen3.5-397B-A17B",
|
||||
"release_date": "2026-02-01",
|
||||
"last_updated": "2026-02-01",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 32768,
|
||||
"text_inputs": True,
|
||||
@@ -155,8 +213,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"XiaomiMiMo/MiMo-V2-Flash": {
|
||||
"name": "MiMo-V2-Flash",
|
||||
"release_date": "2025-12-16",
|
||||
"last_updated": "2025-12-16",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -169,8 +233,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"deepseek-ai/DeepSeek-R1-0528": {
|
||||
"name": "DeepSeek-R1-0528",
|
||||
"release_date": "2025-05-28",
|
||||
"last_updated": "2025-05-28",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 163840,
|
||||
"max_output_tokens": 163840,
|
||||
"text_inputs": True,
|
||||
@@ -183,8 +253,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"deepseek-ai/DeepSeek-V3.2": {
|
||||
"name": "DeepSeek-V3.2",
|
||||
"release_date": "2025-12-01",
|
||||
"last_updated": "2025-12-01",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 163840,
|
||||
"max_output_tokens": 65536,
|
||||
"text_inputs": True,
|
||||
@@ -197,8 +273,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"moonshotai/Kimi-K2-Instruct": {
|
||||
"name": "Kimi-K2-Instruct",
|
||||
"release_date": "2025-07-14",
|
||||
"last_updated": "2025-07-14",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -211,8 +293,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"moonshotai/Kimi-K2-Instruct-0905": {
|
||||
"name": "Kimi-K2-Instruct-0905",
|
||||
"release_date": "2025-09-04",
|
||||
"last_updated": "2025-09-04",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -225,8 +313,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"moonshotai/Kimi-K2-Thinking": {
|
||||
"name": "Kimi-K2-Thinking",
|
||||
"release_date": "2025-11-06",
|
||||
"last_updated": "2025-11-06",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 262144,
|
||||
"text_inputs": True,
|
||||
@@ -239,8 +333,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"moonshotai/Kimi-K2.5": {
|
||||
"name": "Kimi-K2.5",
|
||||
"release_date": "2026-01-01",
|
||||
"last_updated": "2026-01-01",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 262144,
|
||||
"text_inputs": True,
|
||||
@@ -253,8 +353,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"zai-org/GLM-4.7": {
|
||||
"name": "GLM-4.7",
|
||||
"release_date": "2025-12-22",
|
||||
"last_updated": "2025-12-22",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 204800,
|
||||
"max_output_tokens": 131072,
|
||||
"text_inputs": True,
|
||||
@@ -267,8 +373,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"zai-org/GLM-4.7-Flash": {
|
||||
"name": "GLM-4.7-Flash",
|
||||
"release_date": "2025-08-08",
|
||||
"last_updated": "2025-08-08",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -281,8 +393,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"zai-org/GLM-5": {
|
||||
"name": "GLM-5",
|
||||
"release_date": "2026-02-11",
|
||||
"last_updated": "2026-02-11",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 202752,
|
||||
"max_output_tokens": 131072,
|
||||
"text_inputs": True,
|
||||
@@ -295,5 +413,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -17,6 +17,10 @@ from typing import Any
|
||||
|
||||
_PROFILES: dict[str, dict[str, Any]] = {
|
||||
"codestral-latest": {
|
||||
"name": "Codestral (latest)",
|
||||
"release_date": "2024-05-29",
|
||||
"last_updated": "2025-01-04",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 256000,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -29,8 +33,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"devstral-2512": {
|
||||
"name": "Devstral 2",
|
||||
"release_date": "2025-12-09",
|
||||
"last_updated": "2025-12-09",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 262144,
|
||||
"text_inputs": True,
|
||||
@@ -43,8 +53,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"devstral-medium-2507": {
|
||||
"name": "Devstral Medium",
|
||||
"release_date": "2025-07-10",
|
||||
"last_updated": "2025-07-10",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -57,8 +73,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"devstral-medium-latest": {
|
||||
"name": "Devstral 2 (latest)",
|
||||
"release_date": "2025-12-02",
|
||||
"last_updated": "2025-12-02",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 262144,
|
||||
"text_inputs": True,
|
||||
@@ -71,8 +93,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"devstral-small-2505": {
|
||||
"name": "Devstral Small 2505",
|
||||
"release_date": "2025-05-07",
|
||||
"last_updated": "2025-05-07",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -85,8 +113,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"devstral-small-2507": {
|
||||
"name": "Devstral Small",
|
||||
"release_date": "2025-07-10",
|
||||
"last_updated": "2025-07-10",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -99,8 +133,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"labs-devstral-small-2512": {
|
||||
"name": "Devstral Small 2",
|
||||
"release_date": "2025-12-09",
|
||||
"last_updated": "2025-12-09",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 256000,
|
||||
"max_output_tokens": 256000,
|
||||
"text_inputs": True,
|
||||
@@ -113,8 +153,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"magistral-medium-latest": {
|
||||
"name": "Magistral Medium (latest)",
|
||||
"release_date": "2025-03-17",
|
||||
"last_updated": "2025-03-20",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -127,8 +173,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"magistral-small": {
|
||||
"name": "Magistral Small",
|
||||
"release_date": "2025-03-17",
|
||||
"last_updated": "2025-03-17",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -141,8 +193,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"ministral-3b-latest": {
|
||||
"name": "Ministral 3B (latest)",
|
||||
"release_date": "2024-10-01",
|
||||
"last_updated": "2024-10-04",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -155,8 +213,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"ministral-8b-latest": {
|
||||
"name": "Ministral 8B (latest)",
|
||||
"release_date": "2024-10-01",
|
||||
"last_updated": "2024-10-04",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -169,8 +233,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"mistral-embed": {
|
||||
"name": "Mistral Embed",
|
||||
"release_date": "2023-12-11",
|
||||
"last_updated": "2023-12-11",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 8000,
|
||||
"max_output_tokens": 3072,
|
||||
"text_inputs": True,
|
||||
@@ -183,8 +253,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": False,
|
||||
"attachment": False,
|
||||
"temperature": False,
|
||||
},
|
||||
"mistral-large-2411": {
|
||||
"name": "Mistral Large 2.1",
|
||||
"release_date": "2024-11-01",
|
||||
"last_updated": "2024-11-04",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -197,8 +273,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"mistral-large-2512": {
|
||||
"name": "Mistral Large 3",
|
||||
"release_date": "2024-11-01",
|
||||
"last_updated": "2025-12-02",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 262144,
|
||||
"text_inputs": True,
|
||||
@@ -211,8 +293,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"mistral-large-latest": {
|
||||
"name": "Mistral Large (latest)",
|
||||
"release_date": "2024-11-01",
|
||||
"last_updated": "2025-12-02",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 262144,
|
||||
"text_inputs": True,
|
||||
@@ -225,8 +313,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"mistral-medium-2505": {
|
||||
"name": "Mistral Medium 3",
|
||||
"release_date": "2025-05-07",
|
||||
"last_updated": "2025-05-07",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 131072,
|
||||
"text_inputs": True,
|
||||
@@ -239,8 +333,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"mistral-medium-2508": {
|
||||
"name": "Mistral Medium 3.1",
|
||||
"release_date": "2025-08-12",
|
||||
"last_updated": "2025-08-12",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 262144,
|
||||
"text_inputs": True,
|
||||
@@ -253,8 +353,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"mistral-medium-latest": {
|
||||
"name": "Mistral Medium (latest)",
|
||||
"release_date": "2025-05-07",
|
||||
"last_updated": "2025-05-10",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -267,8 +373,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"mistral-nemo": {
|
||||
"name": "Mistral Nemo",
|
||||
"release_date": "2024-07-01",
|
||||
"last_updated": "2024-07-01",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -281,8 +393,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"mistral-small-2506": {
|
||||
"name": "Mistral Small 3.2",
|
||||
"release_date": "2025-06-20",
|
||||
"last_updated": "2025-06-20",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -295,8 +413,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"mistral-small-latest": {
|
||||
"name": "Mistral Small (latest)",
|
||||
"release_date": "2024-09-01",
|
||||
"last_updated": "2024-09-04",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -309,8 +433,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"open-mistral-7b": {
|
||||
"name": "Mistral 7B",
|
||||
"release_date": "2023-09-27",
|
||||
"last_updated": "2023-09-27",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 8000,
|
||||
"max_output_tokens": 8000,
|
||||
"text_inputs": True,
|
||||
@@ -323,8 +453,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"open-mixtral-8x22b": {
|
||||
"name": "Mixtral 8x22B",
|
||||
"release_date": "2024-04-17",
|
||||
"last_updated": "2024-04-17",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 64000,
|
||||
"max_output_tokens": 64000,
|
||||
"text_inputs": True,
|
||||
@@ -337,8 +473,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"open-mixtral-8x7b": {
|
||||
"name": "Mixtral 8x7B",
|
||||
"release_date": "2023-12-11",
|
||||
"last_updated": "2023-12-11",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 32000,
|
||||
"max_output_tokens": 32000,
|
||||
"text_inputs": True,
|
||||
@@ -351,8 +493,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"pixtral-12b": {
|
||||
"name": "Pixtral 12B",
|
||||
"release_date": "2024-09-01",
|
||||
"last_updated": "2024-09-01",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -365,8 +513,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"pixtral-large-latest": {
|
||||
"name": "Pixtral Large (latest)",
|
||||
"release_date": "2024-11-01",
|
||||
"last_updated": "2024-11-04",
|
||||
"open_weights": True,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -379,5 +533,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -17,6 +17,10 @@ from typing import Any
|
||||
|
||||
_PROFILES: dict[str, dict[str, Any]] = {
|
||||
"codex-mini-latest": {
|
||||
"name": "Codex Mini",
|
||||
"release_date": "2025-05-16",
|
||||
"last_updated": "2025-05-16",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 100000,
|
||||
"text_inputs": True,
|
||||
@@ -29,6 +33,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -36,6 +42,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-3.5-turbo": {
|
||||
"name": "GPT-3.5-turbo",
|
||||
"release_date": "2023-03-01",
|
||||
"last_updated": "2023-11-06",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 16385,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -49,6 +59,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": False,
|
||||
"tool_calling": False,
|
||||
"structured_output": False,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"image_url_inputs": False,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
@@ -56,6 +68,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-4": {
|
||||
"name": "GPT-4",
|
||||
"release_date": "2023-11-06",
|
||||
"last_updated": "2024-04-09",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 8192,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -69,6 +85,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"structured_output": False,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -76,6 +94,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-4-turbo": {
|
||||
"name": "GPT-4 Turbo",
|
||||
"release_date": "2023-11-06",
|
||||
"last_updated": "2024-04-09",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -89,6 +111,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"structured_output": False,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -96,6 +120,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-4.1": {
|
||||
"name": "GPT-4.1",
|
||||
"release_date": "2025-04-14",
|
||||
"last_updated": "2025-04-14",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 1047576,
|
||||
"max_output_tokens": 32768,
|
||||
"text_inputs": True,
|
||||
@@ -109,6 +137,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -116,6 +146,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-4.1-mini": {
|
||||
"name": "GPT-4.1 mini",
|
||||
"release_date": "2025-04-14",
|
||||
"last_updated": "2025-04-14",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 1047576,
|
||||
"max_output_tokens": 32768,
|
||||
"text_inputs": True,
|
||||
@@ -129,6 +163,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -136,6 +172,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-4.1-nano": {
|
||||
"name": "GPT-4.1 nano",
|
||||
"release_date": "2025-04-14",
|
||||
"last_updated": "2025-04-14",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 1047576,
|
||||
"max_output_tokens": 32768,
|
||||
"text_inputs": True,
|
||||
@@ -149,6 +189,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -156,6 +198,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-4o": {
|
||||
"name": "GPT-4o",
|
||||
"release_date": "2024-05-13",
|
||||
"last_updated": "2024-08-06",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -169,6 +215,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -176,6 +224,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-4o-2024-05-13": {
|
||||
"name": "GPT-4o (2024-05-13)",
|
||||
"release_date": "2024-05-13",
|
||||
"last_updated": "2024-05-13",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -189,6 +241,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -196,6 +250,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-4o-2024-08-06": {
|
||||
"name": "GPT-4o (2024-08-06)",
|
||||
"release_date": "2024-08-06",
|
||||
"last_updated": "2024-08-06",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -209,6 +267,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -216,6 +276,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-4o-2024-11-20": {
|
||||
"name": "GPT-4o (2024-11-20)",
|
||||
"release_date": "2024-11-20",
|
||||
"last_updated": "2024-11-20",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -229,6 +293,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -236,6 +302,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-4o-mini": {
|
||||
"name": "GPT-4o mini",
|
||||
"release_date": "2024-07-18",
|
||||
"last_updated": "2024-07-18",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -249,6 +319,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -256,6 +328,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5": {
|
||||
"name": "GPT-5",
|
||||
"release_date": "2025-08-07",
|
||||
"last_updated": "2025-08-07",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -269,6 +345,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -276,6 +354,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5-chat-latest": {
|
||||
"name": "GPT-5 Chat (latest)",
|
||||
"release_date": "2025-08-07",
|
||||
"last_updated": "2025-08-07",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -289,6 +371,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": False,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -296,6 +380,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5-codex": {
|
||||
"name": "GPT-5-Codex",
|
||||
"release_date": "2025-09-15",
|
||||
"last_updated": "2025-09-15",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -309,6 +397,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": False,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -316,6 +406,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5-mini": {
|
||||
"name": "GPT-5 Mini",
|
||||
"release_date": "2025-08-07",
|
||||
"last_updated": "2025-08-07",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -329,6 +423,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -336,6 +432,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5-nano": {
|
||||
"name": "GPT-5 Nano",
|
||||
"release_date": "2025-08-07",
|
||||
"last_updated": "2025-08-07",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -349,6 +449,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -356,6 +458,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5-pro": {
|
||||
"name": "GPT-5 Pro",
|
||||
"release_date": "2025-10-06",
|
||||
"last_updated": "2025-10-06",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 272000,
|
||||
"text_inputs": True,
|
||||
@@ -369,6 +475,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -376,6 +484,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5.1": {
|
||||
"name": "GPT-5.1",
|
||||
"release_date": "2025-11-13",
|
||||
"last_updated": "2025-11-13",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -389,6 +501,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -396,6 +510,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5.1-chat-latest": {
|
||||
"name": "GPT-5.1 Chat",
|
||||
"release_date": "2025-11-13",
|
||||
"last_updated": "2025-11-13",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -409,6 +527,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -416,6 +536,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5.1-codex": {
|
||||
"name": "GPT-5.1 Codex",
|
||||
"release_date": "2025-11-13",
|
||||
"last_updated": "2025-11-13",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -429,6 +553,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -436,6 +562,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5.1-codex-max": {
|
||||
"name": "GPT-5.1 Codex Max",
|
||||
"release_date": "2025-11-13",
|
||||
"last_updated": "2025-11-13",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -449,6 +579,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -456,6 +588,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5.1-codex-mini": {
|
||||
"name": "GPT-5.1 Codex mini",
|
||||
"release_date": "2025-11-13",
|
||||
"last_updated": "2025-11-13",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -469,6 +605,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -476,6 +614,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5.2": {
|
||||
"name": "GPT-5.2",
|
||||
"release_date": "2025-12-11",
|
||||
"last_updated": "2025-12-11",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -489,6 +631,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -496,6 +640,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5.2-chat-latest": {
|
||||
"name": "GPT-5.2 Chat",
|
||||
"release_date": "2025-12-11",
|
||||
"last_updated": "2025-12-11",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 16384,
|
||||
"text_inputs": True,
|
||||
@@ -509,6 +657,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -516,6 +666,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5.2-codex": {
|
||||
"name": "GPT-5.2 Codex",
|
||||
"release_date": "2025-12-11",
|
||||
"last_updated": "2025-12-11",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 400000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -530,12 +684,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5.2-pro": {
|
||||
"name": "GPT-5.2 Pro",
|
||||
"release_date": "2025-12-11",
|
||||
"last_updated": "2025-12-11",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -549,6 +709,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": False,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -556,6 +718,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5.3-codex": {
|
||||
"name": "GPT-5.3 Codex",
|
||||
"release_date": "2026-02-05",
|
||||
"last_updated": "2026-02-05",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 400000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -570,12 +736,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5.3-codex-spark": {
|
||||
"name": "GPT-5.3 Codex Spark",
|
||||
"release_date": "2026-02-05",
|
||||
"last_updated": "2026-02-05",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 32000,
|
||||
"text_inputs": True,
|
||||
@@ -590,12 +762,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5.4": {
|
||||
"name": "GPT-5.4",
|
||||
"release_date": "2026-03-05",
|
||||
"last_updated": "2026-03-05",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 1050000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -610,12 +788,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
"image_tool_message": True,
|
||||
"tool_choice": True,
|
||||
},
|
||||
"gpt-5.4-pro": {
|
||||
"name": "GPT-5.4 Pro",
|
||||
"release_date": "2026-03-05",
|
||||
"last_updated": "2026-03-05",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 1050000,
|
||||
"max_output_tokens": 128000,
|
||||
"text_inputs": True,
|
||||
@@ -629,6 +813,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": False,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -636,6 +822,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"o1": {
|
||||
"name": "o1",
|
||||
"release_date": "2024-12-05",
|
||||
"last_updated": "2024-12-05",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 100000,
|
||||
"text_inputs": True,
|
||||
@@ -649,6 +839,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -656,6 +848,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"o1-mini": {
|
||||
"name": "o1-mini",
|
||||
"release_date": "2024-09-12",
|
||||
"last_updated": "2024-09-12",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 65536,
|
||||
"text_inputs": True,
|
||||
@@ -669,6 +865,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": False,
|
||||
"structured_output": True,
|
||||
"attachment": False,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -676,6 +874,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"o1-preview": {
|
||||
"name": "o1-preview",
|
||||
"release_date": "2024-09-12",
|
||||
"last_updated": "2024-09-12",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 32768,
|
||||
"text_inputs": True,
|
||||
@@ -688,6 +890,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": False,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -695,6 +899,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"o1-pro": {
|
||||
"name": "o1-pro",
|
||||
"release_date": "2025-03-19",
|
||||
"last_updated": "2025-03-19",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 100000,
|
||||
"text_inputs": True,
|
||||
@@ -708,6 +916,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -715,6 +925,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"o3": {
|
||||
"name": "o3",
|
||||
"release_date": "2025-04-16",
|
||||
"last_updated": "2025-04-16",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 100000,
|
||||
"text_inputs": True,
|
||||
@@ -728,6 +942,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -735,6 +951,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"o3-deep-research": {
|
||||
"name": "o3-deep-research",
|
||||
"release_date": "2024-06-26",
|
||||
"last_updated": "2024-06-26",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 100000,
|
||||
"text_inputs": True,
|
||||
@@ -747,6 +967,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -754,6 +976,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"o3-mini": {
|
||||
"name": "o3-mini",
|
||||
"release_date": "2024-12-20",
|
||||
"last_updated": "2025-01-29",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 100000,
|
||||
"text_inputs": True,
|
||||
@@ -767,6 +993,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": False,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -774,6 +1002,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"o3-pro": {
|
||||
"name": "o3-pro",
|
||||
"release_date": "2025-06-10",
|
||||
"last_updated": "2025-06-10",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 100000,
|
||||
"text_inputs": True,
|
||||
@@ -787,6 +1019,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -794,6 +1028,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"o4-mini": {
|
||||
"name": "o4-mini",
|
||||
"release_date": "2025-04-16",
|
||||
"last_updated": "2025-04-16",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 100000,
|
||||
"text_inputs": True,
|
||||
@@ -807,6 +1045,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"structured_output": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -814,6 +1054,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"o4-mini-deep-research": {
|
||||
"name": "o4-mini-deep-research",
|
||||
"release_date": "2024-06-26",
|
||||
"last_updated": "2024-06-26",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 100000,
|
||||
"text_inputs": True,
|
||||
@@ -826,6 +1070,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -833,6 +1079,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"text-embedding-3-large": {
|
||||
"name": "text-embedding-3-large",
|
||||
"release_date": "2024-01-25",
|
||||
"last_updated": "2024-01-25",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 8191,
|
||||
"max_output_tokens": 3072,
|
||||
"text_inputs": True,
|
||||
@@ -845,6 +1095,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": False,
|
||||
"attachment": False,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -852,6 +1104,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"text-embedding-3-small": {
|
||||
"name": "text-embedding-3-small",
|
||||
"release_date": "2024-01-25",
|
||||
"last_updated": "2024-01-25",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 8191,
|
||||
"max_output_tokens": 1536,
|
||||
"text_inputs": True,
|
||||
@@ -864,6 +1120,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": False,
|
||||
"attachment": False,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
@@ -871,6 +1129,10 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_choice": True,
|
||||
},
|
||||
"text-embedding-ada-002": {
|
||||
"name": "text-embedding-ada-002",
|
||||
"release_date": "2022-12-15",
|
||||
"last_updated": "2022-12-15",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 8192,
|
||||
"max_output_tokens": 1536,
|
||||
"text_inputs": True,
|
||||
@@ -883,6 +1145,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": False,
|
||||
"attachment": False,
|
||||
"temperature": False,
|
||||
"image_url_inputs": True,
|
||||
"pdf_inputs": True,
|
||||
"pdf_tool_message": True,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -17,6 +17,10 @@ from typing import Any
|
||||
|
||||
_PROFILES: dict[str, dict[str, Any]] = {
|
||||
"sonar": {
|
||||
"name": "Sonar",
|
||||
"release_date": "2024-01-01",
|
||||
"last_updated": "2025-09-01",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -29,8 +33,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": False,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"sonar-deep-research": {
|
||||
"name": "Perplexity Sonar Deep Research",
|
||||
"release_date": "2025-02-01",
|
||||
"last_updated": "2025-09-01",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -43,8 +53,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": False,
|
||||
"attachment": False,
|
||||
"temperature": False,
|
||||
},
|
||||
"sonar-pro": {
|
||||
"name": "Sonar Pro",
|
||||
"release_date": "2024-01-01",
|
||||
"last_updated": "2025-09-01",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -57,8 +73,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": False,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"sonar-reasoning-pro": {
|
||||
"name": "Sonar Reasoning Pro",
|
||||
"release_date": "2024-01-01",
|
||||
"last_updated": "2025-09-01",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -71,5 +93,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": False,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -17,6 +17,10 @@ from typing import Any
|
||||
|
||||
_PROFILES: dict[str, dict[str, Any]] = {
|
||||
"grok-2": {
|
||||
"name": "Grok 2",
|
||||
"release_date": "2024-08-20",
|
||||
"last_updated": "2024-08-20",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -29,8 +33,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-2-1212": {
|
||||
"name": "Grok 2 (1212)",
|
||||
"release_date": "2024-12-12",
|
||||
"last_updated": "2024-12-12",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -43,8 +53,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-2-latest": {
|
||||
"name": "Grok 2 Latest",
|
||||
"release_date": "2024-08-20",
|
||||
"last_updated": "2024-12-12",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -57,8 +73,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-2-vision": {
|
||||
"name": "Grok 2 Vision",
|
||||
"release_date": "2024-08-20",
|
||||
"last_updated": "2024-08-20",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 8192,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -71,8 +93,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-2-vision-1212": {
|
||||
"name": "Grok 2 Vision (1212)",
|
||||
"release_date": "2024-08-20",
|
||||
"last_updated": "2024-12-12",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 8192,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -85,8 +113,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-2-vision-latest": {
|
||||
"name": "Grok 2 Vision Latest",
|
||||
"release_date": "2024-08-20",
|
||||
"last_updated": "2024-12-12",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 8192,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -99,8 +133,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-3": {
|
||||
"name": "Grok 3",
|
||||
"release_date": "2025-02-17",
|
||||
"last_updated": "2025-02-17",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -113,8 +153,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-3-fast": {
|
||||
"name": "Grok 3 Fast",
|
||||
"release_date": "2025-02-17",
|
||||
"last_updated": "2025-02-17",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -127,8 +173,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-3-fast-latest": {
|
||||
"name": "Grok 3 Fast Latest",
|
||||
"release_date": "2025-02-17",
|
||||
"last_updated": "2025-02-17",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -141,8 +193,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-3-latest": {
|
||||
"name": "Grok 3 Latest",
|
||||
"release_date": "2025-02-17",
|
||||
"last_updated": "2025-02-17",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -155,8 +213,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-3-mini": {
|
||||
"name": "Grok 3 Mini",
|
||||
"release_date": "2025-02-17",
|
||||
"last_updated": "2025-02-17",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -169,8 +233,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-3-mini-fast": {
|
||||
"name": "Grok 3 Mini Fast",
|
||||
"release_date": "2025-02-17",
|
||||
"last_updated": "2025-02-17",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -183,8 +253,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-3-mini-fast-latest": {
|
||||
"name": "Grok 3 Mini Fast Latest",
|
||||
"release_date": "2025-02-17",
|
||||
"last_updated": "2025-02-17",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -197,8 +273,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-3-mini-latest": {
|
||||
"name": "Grok 3 Mini Latest",
|
||||
"release_date": "2025-02-17",
|
||||
"last_updated": "2025-02-17",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 8192,
|
||||
"text_inputs": True,
|
||||
@@ -211,8 +293,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-4": {
|
||||
"name": "Grok 4",
|
||||
"release_date": "2025-07-09",
|
||||
"last_updated": "2025-07-09",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 256000,
|
||||
"max_output_tokens": 64000,
|
||||
"text_inputs": True,
|
||||
@@ -225,8 +313,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-4-1-fast": {
|
||||
"name": "Grok 4.1 Fast",
|
||||
"release_date": "2025-11-19",
|
||||
"last_updated": "2025-11-19",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 2000000,
|
||||
"max_output_tokens": 30000,
|
||||
"text_inputs": True,
|
||||
@@ -239,8 +333,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-4-1-fast-non-reasoning": {
|
||||
"name": "Grok 4.1 Fast (Non-Reasoning)",
|
||||
"release_date": "2025-11-19",
|
||||
"last_updated": "2025-11-19",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 2000000,
|
||||
"max_output_tokens": 30000,
|
||||
"text_inputs": True,
|
||||
@@ -253,8 +353,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-4-fast": {
|
||||
"name": "Grok 4 Fast",
|
||||
"release_date": "2025-09-19",
|
||||
"last_updated": "2025-09-19",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 2000000,
|
||||
"max_output_tokens": 30000,
|
||||
"text_inputs": True,
|
||||
@@ -267,8 +373,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-4-fast-non-reasoning": {
|
||||
"name": "Grok 4 Fast (Non-Reasoning)",
|
||||
"release_date": "2025-09-19",
|
||||
"last_updated": "2025-09-19",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 2000000,
|
||||
"max_output_tokens": 30000,
|
||||
"text_inputs": True,
|
||||
@@ -281,8 +393,15 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-4.20-experimental-beta-0304-non-reasoning": {
|
||||
"name": "Grok 4.20 (Experimental, Non-Reasoning)",
|
||||
"status": "beta",
|
||||
"release_date": "2026-03-04",
|
||||
"last_updated": "2026-03-04",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 2000000,
|
||||
"max_output_tokens": 30000,
|
||||
"text_inputs": True,
|
||||
@@ -295,8 +414,15 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-4.20-experimental-beta-0304-reasoning": {
|
||||
"name": "Grok 4.20 (Experimental, Reasoning)",
|
||||
"status": "beta",
|
||||
"release_date": "2026-03-04",
|
||||
"last_updated": "2026-03-04",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 2000000,
|
||||
"max_output_tokens": 30000,
|
||||
"text_inputs": True,
|
||||
@@ -309,8 +435,15 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-4.20-multi-agent-experimental-beta-0304": {
|
||||
"name": "Grok 4.20 Multi-Agent (Experimental)",
|
||||
"status": "beta",
|
||||
"release_date": "2026-03-04",
|
||||
"last_updated": "2026-03-04",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 2000000,
|
||||
"max_output_tokens": 30000,
|
||||
"text_inputs": True,
|
||||
@@ -323,8 +456,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-beta": {
|
||||
"name": "Grok Beta",
|
||||
"release_date": "2024-11-01",
|
||||
"last_updated": "2024-11-01",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -337,8 +476,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-code-fast-1": {
|
||||
"name": "Grok Code Fast 1",
|
||||
"release_date": "2025-08-28",
|
||||
"last_updated": "2025-08-28",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 256000,
|
||||
"max_output_tokens": 10000,
|
||||
"text_inputs": True,
|
||||
@@ -351,8 +496,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": True,
|
||||
"tool_calling": True,
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
},
|
||||
"grok-vision-beta": {
|
||||
"name": "Grok Vision Beta",
|
||||
"release_date": "2024-11-01",
|
||||
"last_updated": "2024-11-01",
|
||||
"open_weights": False,
|
||||
"max_input_tokens": 8192,
|
||||
"max_output_tokens": 4096,
|
||||
"text_inputs": True,
|
||||
@@ -365,5 +516,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"video_outputs": False,
|
||||
"reasoning_output": False,
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user