From b9880332009edc79bbe057eb006c2f7eea4ab897 Mon Sep 17 00:00:00 2001 From: Roland Tannous Date: Mon, 30 Mar 2026 05:27:05 +0000 Subject: [PATCH] test: use sloth photo URL for vision test, add Anthropic remote URL support --- studio/backend/core/inference/external_provider.py | 9 +++++++++ studio/backend/tests/test_providers_api.py | 13 +++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/studio/backend/core/inference/external_provider.py b/studio/backend/core/inference/external_provider.py index 3132c57dfa..01e996f4bd 100644 --- a/studio/backend/core/inference/external_provider.py +++ b/studio/backend/core/inference/external_provider.py @@ -187,6 +187,15 @@ class ExternalProviderClient: "data": b64data, }, }) + else: + # Remote URL — Anthropic supports url source type natively + anthropic_parts.append({ + "type": "image", + "source": { + "type": "url", + "url": url, + }, + }) filtered.append({"role": msg["role"], "content": anthropic_parts}) else: filtered.append(msg) diff --git a/studio/backend/tests/test_providers_api.py b/studio/backend/tests/test_providers_api.py index 6241f4cdac..5790187a0e 100644 --- a/studio/backend/tests/test_providers_api.py +++ b/studio/backend/tests/test_providers_api.py @@ -450,11 +450,8 @@ class TestProviderInference: # ── TestVisionInference ───────────────────────────────────────────── -# 1×1 white PNG — minimal valid image to test vision routing -_WHITE_PNG_B64 = ( - "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQ" - "DwADhQGAWjR9awAAAABJRU5ErkJggg==" -) +# Sloth photo — used to test vision routing across providers +_VISION_IMAGE_URL = "https://www.travelexcellence.com/images/where-to-see-sloths-in-costa-rica.jpg" _VISION_PARAMS = [ pytest.param( @@ -487,14 +484,14 @@ class TestVisionInference: model: str, api_key: str, ): - """Image + text message → non-empty streamed reply.""" + """Image URL + text message → non-empty streamed reply.""" encrypted = encrypt_key(api_key) payload = { "messages": [{ "role": "user", "content": [ - {"type": "text", "text": "What colour is this image? Reply in one word."}, - {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{_WHITE_PNG_B64}"}}, + {"type": "text", "text": "Which animal is in this image? Reply in one word."}, + {"type": "image_url", "image_url": {"url": _VISION_IMAGE_URL}}, ], }], "stream": True,