mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-09-10 10:12:20 +02:00
fix(models): bind provider detection to DNS labels (#5961)
This commit is contained in:
@@ -290,17 +290,22 @@ def detect_vendor(base_url: Any = "", endpoint_kind: Any = "") -> str:
|
||||
return kind_map[kind]
|
||||
|
||||
parsed = urlparse(compact_str(base_url))
|
||||
host = (parsed.hostname or "").lower()
|
||||
host = (parsed.hostname or "").lower().rstrip(".")
|
||||
port = parsed.port
|
||||
if host.endswith("openrouter.ai"):
|
||||
|
||||
def host_matches(domain: str) -> bool:
|
||||
domain = domain.lower().rstrip(".")
|
||||
return host == domain or host.endswith(f".{domain}")
|
||||
|
||||
if host_matches("openrouter.ai"):
|
||||
return VENDOR_OPENROUTER
|
||||
if host.endswith("openai.com"):
|
||||
if host_matches("openai.com"):
|
||||
return VENDOR_OPENAI
|
||||
if host.endswith("anthropic.com"):
|
||||
if host_matches("anthropic.com"):
|
||||
return VENDOR_ANTHROPIC
|
||||
if host.endswith("googleapis.com"):
|
||||
if host_matches("googleapis.com"):
|
||||
return VENDOR_GOOGLE
|
||||
if host.endswith("ollama.com") or port == 11434:
|
||||
if host_matches("ollama.com") or port == 11434:
|
||||
return VENDOR_OLLAMA
|
||||
if port == 1234:
|
||||
return VENDOR_LMSTUDIO
|
||||
|
||||
@@ -30,6 +30,15 @@ def test_detect_vendor_uses_endpoint_kind_then_host_and_common_local_ports():
|
||||
assert detect_vendor("http://localhost:7000/v1") == VENDOR_GENERIC_OPENAI
|
||||
|
||||
|
||||
def test_detect_vendor_requires_a_dns_label_boundary():
|
||||
assert detect_vendor("https://api.openai.com./v1") == VENDOR_OPENAI
|
||||
assert detect_vendor("https://notopenai.com/v1") == VENDOR_GENERIC_OPENAI
|
||||
assert detect_vendor("https://fakeopenrouter.ai/v1") == VENDOR_GENERIC_OPENAI
|
||||
assert detect_vendor("https://notgoogleapis.com/v1") == VENDOR_GENERIC_OPENAI
|
||||
assert detect_vendor("https://evilanthropic.com/v1") == VENDOR_GENERIC_OPENAI
|
||||
assert detect_vendor("https://fakeollama.com/v1") == VENDOR_GENERIC_OPENAI
|
||||
|
||||
|
||||
def test_generic_openai_reader_keeps_basic_model_payload_unknown():
|
||||
records = generic_openai.records_from_payload(
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user