diff --git a/posthog/ai/sanitization.py b/posthog/ai/sanitization.py index 5f259c56..d7e66cdf 100644 --- a/posthog/ai/sanitization.py +++ b/posthog/ai/sanitization.py @@ -83,6 +83,12 @@ def sanitize_openai_image(item: Any) -> Any: if not isinstance(item, dict): return item + if item.get("type") == "input_image" and isinstance(item.get("image_url"), str): + return { + **item, + "image_url": redact_base64_data_url(item["image_url"]), + } + if ( item.get("type") == "image_url" and isinstance(item.get("image_url"), dict) diff --git a/posthog/test/ai/test_sanitization.py b/posthog/test/ai/test_sanitization.py index 24d1f2ea..347e5387 100644 --- a/posthog/test/ai/test_sanitization.py +++ b/posthog/test/ai/test_sanitization.py @@ -69,6 +69,25 @@ def test_sanitize_openai(self): ) self.assertEqual(result[0]["content"][1]["image_url"]["detail"], "high") + def test_sanitize_openai_input_image(self): + input_data = [ + { + "role": "user", + "content": [ + { + "type": "input_image", + "image_url": self.sample_base64_image, + } + ], + } + ] + + result = sanitize_openai(input_data) + + self.assertEqual( + result[0]["content"][0]["image_url"], REDACTED_IMAGE_PLACEHOLDER + ) + def test_sanitize_openai_preserves_regular_urls(self): input_data = [ {