mirror of
https://github.com/TauricResearch/TradingAgents.git
synced 2026-06-16 21:06:15 +03:00
fix(llm): use the OpenAI Responses API only for native endpoints
The Responses API exists only on native OpenAI. When the openai provider is pointed at a custom base_url (a proxy, gateway, or local server that speaks only Chat Completions), keep the Responses API off so the call does not fail.
This commit is contained in:
43
tests/test_openai_responses_base_url.py
Normal file
43
tests/test_openai_responses_base_url.py
Normal file
@@ -0,0 +1,43 @@
|
||||
"""The Responses API only exists on native OpenAI; a custom base_url on the
|
||||
openai provider must fall back to Chat Completions (#1024)."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
from tradingagents.llm_clients.openai_client import (
|
||||
OpenAIClient,
|
||||
_is_native_openai_base_url,
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
class NativeBaseUrlTests:
|
||||
def test_unset_is_native(self):
|
||||
assert _is_native_openai_base_url(None) is True
|
||||
assert _is_native_openai_base_url("") is True
|
||||
|
||||
def test_openai_hosts_are_native(self):
|
||||
assert _is_native_openai_base_url("https://api.openai.com/v1") is True
|
||||
assert _is_native_openai_base_url("api.openai.com/v1") is True
|
||||
|
||||
def test_custom_endpoints_are_not_native(self):
|
||||
assert _is_native_openai_base_url("http://localhost:1234/v1") is False
|
||||
assert _is_native_openai_base_url("https://my-gateway.example.com/v1") is False
|
||||
assert _is_native_openai_base_url("https://api.openai.com.evil.com/v1") is False
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
class ResponsesApiSelectionTests:
|
||||
def test_native_openai_enables_responses_api(self, monkeypatch):
|
||||
monkeypatch.setenv("OPENAI_API_KEY", "sk-test")
|
||||
llm = OpenAIClient("gpt-5.5", provider="openai").get_llm()
|
||||
assert getattr(llm, "use_responses_api", False) is True
|
||||
|
||||
def test_custom_base_url_disables_responses_api(self, monkeypatch):
|
||||
monkeypatch.setenv("OPENAI_API_KEY", "sk-test")
|
||||
llm = OpenAIClient(
|
||||
"gpt-5.5", base_url="http://localhost:1234/v1", provider="openai"
|
||||
).get_llm()
|
||||
# use_responses_api should be absent/False so the client speaks Chat Completions.
|
||||
assert getattr(llm, "use_responses_api", False) is False
|
||||
Reference in New Issue
Block a user