From b0d129d6020cf8e352468df85a132a39385694c9 Mon Sep 17 00:00:00 2001 From: z2z23n0 Date: Wed, 15 Jul 2026 12:23:47 +0800 Subject: [PATCH] fix: normalize image URL content type --- inference/run_inference.py | 2 ++ inference/tests/test_run_inference.py | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/inference/run_inference.py b/inference/run_inference.py index b8d163c..8cca783 100644 --- a/inference/run_inference.py +++ b/inference/run_inference.py @@ -463,6 +463,8 @@ def resolve_message_content_media_paths(content: Any, base_dir: Path) -> Any: continue item_copy = dict(item) + if item_copy.get("type") == "image_url": + item_copy["type"] = "image" if item_copy.get("type") == "image" or "image" in item_copy or "image_url" in item_copy: if item_copy.get("image") is not None: item_copy["image"] = resolve_image_reference(base_dir, item_copy["image"]) diff --git a/inference/tests/test_run_inference.py b/inference/tests/test_run_inference.py index 4aaaefa..de8ba47 100644 --- a/inference/tests/test_run_inference.py +++ b/inference/tests/test_run_inference.py @@ -21,6 +21,26 @@ class ResolveQueryMediaPathsTest(unittest.TestCase): + def test_normalizes_image_url_content_type_for_model(self): + image_url = "https://example.com/images/sample.jpg" + query = { + "messages": [ + { + "role": "user", + "content": [ + {"type": "image_url", "image_url": image_url}, + ], + } + ], + } + + resolved = resolve_query_media_paths(query, Path("/tmp/queries")) + + self.assertEqual( + resolved["messages"][0]["content"][0], + {"type": "image", "image_url": image_url}, + ) + def test_preserves_remote_image_references(self): image_url = "https://example.com/images/sample.jpg?size=large" query = {