diff --git a/src/xrouter_llm/resources/config/models/qwen-qwen3.7-plus.yaml b/src/xrouter_llm/resources/config/models/qwen-qwen3.7-plus.yaml new file mode 100644 index 0000000..b9bb425 --- /dev/null +++ b/src/xrouter_llm/resources/config/models/qwen-qwen3.7-plus.yaml @@ -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. diff --git a/tests/test_yaml_profiles.py b/tests/test_yaml_profiles.py index e0dd254..3f9d535 100644 --- a/tests/test_yaml_profiles.py +++ b/tests/test_yaml_profiles.py @@ -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" @@ -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()})