Treat Venice as a tool-capable SOTA cloud provider (#1173)
Follow-up to the Venice provider PR. Wire api.venice.ai into the three host allowlists so Venice behaves like the other paid OpenAI-compatible clouds: - agent_loop: add api.venice.ai to _API_HOSTS so the agent sends native OpenAI tool-call schemas (Venice supports function calling) instead of degrading to fenced-block parsing. - teacher_escalation: add api.venice.ai to _SOTA_HOSTS so the escalation loop stays OFF for Venice (it's a paid top-tier API; no need to add teacher-model latency). - webhook_routes: add venice to KNOWN_PROVIDERS so the sync chat webhook can auto-resolve base_url from provider=venice. Tests: tests/test_venice_hosts.py pins tool-host matching + SOTA classification for Venice; py_compile on touched modules. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
33
tests/test_venice_hosts.py
Normal file
33
tests/test_venice_hosts.py
Normal file
@@ -0,0 +1,33 @@
|
||||
"""Venice host-allowlist behavior (follow-up to provider support).
|
||||
|
||||
Venice (https://api.venice.ai/api/v1) is a paid, OpenAI-compatible cloud API
|
||||
with native tool-calling. These tests pin the three host-list integrations:
|
||||
- agent loop sends native tool schemas to Venice (not fenced-block parsing),
|
||||
- teacher escalation treats Venice as SOTA (loop OFF, no added latency).
|
||||
"""
|
||||
from src import agent_loop, teacher_escalation
|
||||
|
||||
|
||||
class TestAgentToolHosts:
|
||||
def test_venice_in_api_hosts(self):
|
||||
assert "api.venice.ai" in agent_loop._API_HOSTS
|
||||
|
||||
def test_venice_url_matches_api_host(self):
|
||||
# Mirrors the runtime check: any(h in endpoint_url for h in _API_HOSTS)
|
||||
url = "https://api.venice.ai/api/v1/chat/completions"
|
||||
assert any(h in url for h in agent_loop._API_HOSTS)
|
||||
|
||||
def test_unknown_host_not_matched(self):
|
||||
url = "https://example.invalid/v1/chat/completions"
|
||||
assert not any(h in url for h in agent_loop._API_HOSTS)
|
||||
|
||||
|
||||
class TestTeacherEscalationSota:
|
||||
def test_venice_is_sota_not_self_hosted(self):
|
||||
assert teacher_escalation.is_self_hosted("https://api.venice.ai/api/v1/chat/completions") is False
|
||||
|
||||
def test_known_cloud_still_sota(self):
|
||||
assert teacher_escalation.is_self_hosted("https://api.openai.com/v1") is False
|
||||
|
||||
def test_local_endpoint_still_self_hosted(self):
|
||||
assert teacher_escalation.is_self_hosted("http://localhost:8000/v1") is True
|
||||
Reference in New Issue
Block a user