Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions src/xrouter_llm/resources/config/models/qwen-qwen3.7-plus.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# One model per file. Load the registry with: --benchmark-profiles config/models
# Benchmarks are PUBLISHED PERCENTAGES (0-100). Served via OpenRouter.
# Researched 2026-07-26.
model_id: qwen/qwen3.7-plus
provider: qwen
aliases: ["qwen3.7-plus"]
release_date: "2026-06-01"
source_quality: third_party # specs/pricing are official/OpenRouter; gpqa is AA
source_urls:
- https://help.aliyun.com/en/model-studio/model-pricing
- https://help.aliyun.com/en/model-studio/deep-thinking
- https://openrouter.ai/qwen/qwen3.7-plus
- https://artificialanalysis.ai/models/qwen3-7-plus
- https://www.vals.ai/models/alibaba_qwen3.7-plus
context_length: 1000000
max_output_tokens: 65536
input_cost_per_1k: 0.00032 # OpenRouter $0.32 / 1M for prompts up to 256K
output_cost_per_1k: 0.00128 # OpenRouter $1.28 / 1M; both rates are 3x above 256K
benchmarks:
gpqa_diamond: 90.0 # Artificial Analysis (90.0%, reasoning)
# livecodebench: pending. AA reports no result and Vals has not published this
# benchmark for Qwen 3.7 Plus as of 2026-07-26.
7 changes: 6 additions & 1 deletion tests/test_yaml_profiles.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ def test_shipped_models_registry_loads() -> None:
from xrouter_llm.paths import default_models_dir

catalog = load_benchmark_profiles(default_models_dir())
assert len(catalog) == 15
assert len(catalog) == 16
# model_id is the canonical OpenRouter slug; the bare id stays as an alias.
opus = catalog.get("anthropic/claude-opus-4.8")
assert opus.provider == "anthropic"
Expand Down Expand Up @@ -78,6 +78,11 @@ def test_shipped_models_registry_loads() -> None:
assert kimi_k3.parameters_b == 2800
assert kimi_k3.benchmarks["gpqa_diamond"] == 93.5
assert kimi_k3.benchmarks["livecodebench"] == 87.2
qwen_plus = catalog.get("qwen3.7-plus")
assert qwen_plus.model_id == "qwen/qwen3.7-plus"
assert qwen_plus.source_quality == "third_party"
assert qwen_plus.benchmarks["gpqa_diamond"] == 90.0
assert "livecodebench" not in qwen_plus.benchmarks
# superseded models are removed from the registry
removed = {"google/gemini-2.5-flash-lite", "anthropic/claude-sonnet-4.6"}
assert removed.isdisjoint({p.model_id for p in catalog.profiles()})
Loading