Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
"""Test that _build_call_kwargs preserves max_tokens for OpenRouter endpoints.
|
||||
|
||||
Regression test for #41035: OpenRouter free-tier credits exhausted when
|
||||
max_tokens was stripped, causing HTTP 402 and fallback to text-only model.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
|
||||
from agent.auxiliary_client import _build_call_kwargs
|
||||
|
||||
|
||||
class TestOpenRouterMaxTokens:
|
||||
"""max_tokens must be included for OpenRouter to prevent free-tier 402."""
|
||||
|
||||
def test_openrouter_provider_includes_max_tokens(self):
|
||||
"""Direct openrouter provider keeps max_tokens."""
|
||||
kwargs = _build_call_kwargs(
|
||||
provider="openrouter",
|
||||
model="openai/gpt-4o-mini",
|
||||
messages=[{"role": "user", "content": "test"}],
|
||||
max_tokens=2000,
|
||||
)
|
||||
assert kwargs.get("max_tokens") == 2000 or kwargs.get("max_completion_tokens") == 2000
|
||||
|
||||
def test_openrouter_base_url_includes_max_tokens(self):
|
||||
"""Custom endpoint with openrouter.ai base_url keeps max_tokens."""
|
||||
kwargs = _build_call_kwargs(
|
||||
provider="openai",
|
||||
model="gpt-4o-mini",
|
||||
messages=[{"role": "user", "content": "test"}],
|
||||
max_tokens=2000,
|
||||
base_url="https://openrouter.ai/api/v1",
|
||||
)
|
||||
assert kwargs.get("max_tokens") == 2000 or kwargs.get("max_completion_tokens") == 2000
|
||||
|
||||
def test_generic_provider_omits_max_tokens(self):
|
||||
"""Generic OpenAI-compatible provider still omits max_tokens."""
|
||||
kwargs = _build_call_kwargs(
|
||||
provider="openai",
|
||||
model="gpt-4o-mini",
|
||||
messages=[{"role": "user", "content": "test"}],
|
||||
max_tokens=2000,
|
||||
)
|
||||
assert "max_tokens" not in kwargs
|
||||
|
||||
def test_anthropic_compat_still_includes_max_tokens(self):
|
||||
"""Anthropic-compatible endpoints still include max_tokens."""
|
||||
kwargs = _build_call_kwargs(
|
||||
provider="minimax",
|
||||
model="MiniMax-Text-01",
|
||||
messages=[{"role": "user", "content": "test"}],
|
||||
max_tokens=4000,
|
||||
)
|
||||
assert kwargs["max_tokens"] == 4000
|
||||
|
||||
def test_none_max_tokens_never_included(self):
|
||||
"""max_tokens=None is never added regardless of provider."""
|
||||
for provider, base_url in [
|
||||
("openrouter", None),
|
||||
("openai", "https://openrouter.ai/api/v1"),
|
||||
("minimax", None),
|
||||
]:
|
||||
kwargs = _build_call_kwargs(
|
||||
provider=provider,
|
||||
model="test-model",
|
||||
messages=[{"role": "user", "content": "test"}],
|
||||
max_tokens=None,
|
||||
base_url=base_url,
|
||||
)
|
||||
assert "max_tokens" not in kwargs, (
|
||||
f"max_tokens should not be set when None for {provider}"
|
||||
)
|
||||
Reference in New Issue
Block a user