Spaces:
Sleeping
Sleeping
| """Verify the openai_compat client caps max_tokens to fit the model's | |
| context window. Regression test for the BadRequestError observed when | |
| Neon Security (8K window) was sent input ~6.5K + max_tokens 2400. | |
| """ | |
| from app.clients.openai_compat import _resolve_effective_max | |
| def _msg(content: str) -> dict: | |
| return {"role": "user", "content": content} | |
| def test_wide_window_keeps_x4_multiplier(): | |
| # 128K-window model with tiny input: ×4 multiplier should pass | |
| # through untouched. | |
| effective, _input_est, window = _resolve_effective_max( | |
| "gpt-4o-mini", 600, [_msg("hello")], | |
| ) | |
| assert window == 128_000 | |
| assert effective == 600 * 4 | |
| def test_neon_security_8k_window_caps_to_headroom(): | |
| # Reproduce the real failure: ~6500 input tokens, requested 600. | |
| # ×4 = 2400 would fail (8192 - 6500 - 128 = 1564 headroom). | |
| big_payload = "x" * (6500 * 4) # ~6500 tokens via chars/4 | |
| effective, input_est, window = _resolve_effective_max( | |
| "BrainForge/Security@2026.03.18", 600, [_msg(big_payload)], | |
| ) | |
| assert window == 8_192 | |
| assert input_est >= 6_400 | |
| # Should be at most window - input - margin, never the raw 600 * 4. | |
| assert effective < 600 * 4 | |
| assert effective + input_est + 128 <= window | |
| def test_floor_when_input_swallows_window(): | |
| # If input alone fills the window, we still send a minimum of 64 | |
| # output tokens rather than 0 or negative. | |
| huge = "x" * (10_000 * 4) | |
| effective, _input, _window = _resolve_effective_max( | |
| "BrainForge/Security@2026.03.18", 600, [_msg(huge)], | |
| ) | |
| assert effective >= 64 | |
| def test_unknown_neon_model_uses_default_window(): | |
| effective, _input, window = _resolve_effective_max( | |
| "neon:BrainForge/Unknown@2026.01.01:Persona", | |
| 100, | |
| [_msg("short input")], | |
| ) | |
| assert window == 8_192 | |
| assert effective == 100 * 4 | |