diff --git a/posthog/ai/sanitization.py b/posthog/ai/sanitization.py index a0953d07..e753e2ea 100644 --- a/posthog/ai/sanitization.py +++ b/posthog/ai/sanitization.py @@ -70,6 +70,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 0031bafb..f3b432f1 100644 --- a/posthog/test/ai/test_sanitization.py +++ b/posthog/test/ai/test_sanitization.py @@ -68,6 +68,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 = [ {