mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-26 23:34:47 +08:00
- Change image result type from 'image' to 'image_url' to match OpenAI API expectations
- Wrap image URL in dict structure: {"url": "..."} instead of plain string
- Update SearchResultPostProcessor to handle dict-based image_url during duplicate removal
- Update tests to validate new image format
This fixes the 400 error: Invalid value: 'image'. Supported values are: 'text', 'image_url'...
Co-authored-by: Willem Jiang <143703838+willem-bd@users.noreply.github.com>
This commit is contained in:
@@ -201,7 +201,14 @@ class SearchResultPostProcessor:
|
|||||||
def _remove_duplicates(self, result: Dict, seen_urls: set) -> Dict:
|
def _remove_duplicates(self, result: Dict, seen_urls: set) -> Dict:
|
||||||
"""Remove duplicate results"""
|
"""Remove duplicate results"""
|
||||||
|
|
||||||
url = result.get("url", result.get("image_url", ""))
|
url = result.get("url")
|
||||||
|
if not url:
|
||||||
|
image_url_val = result.get("image_url", "")
|
||||||
|
if isinstance(image_url_val, dict):
|
||||||
|
url = image_url_val.get("url", "")
|
||||||
|
else:
|
||||||
|
url = image_url_val
|
||||||
|
|
||||||
if url and url not in seen_urls:
|
if url and url not in seen_urls:
|
||||||
seen_urls.add(url)
|
seen_urls.add(url)
|
||||||
return result.copy() # Return a copy to avoid modifying original
|
return result.copy() # Return a copy to avoid modifying original
|
||||||
|
|||||||
@@ -114,8 +114,8 @@ class EnhancedTavilySearchAPIWrapper(OriginalTavilySearchAPIWrapper):
|
|||||||
images = raw_results["images"]
|
images = raw_results["images"]
|
||||||
for image in images:
|
for image in images:
|
||||||
clean_result = {
|
clean_result = {
|
||||||
"type": "image",
|
"type": "image_url",
|
||||||
"image_url": image["url"],
|
"image_url": {"url": image["url"]},
|
||||||
"image_description": image["description"],
|
"image_description": image["description"],
|
||||||
}
|
}
|
||||||
clean_results.append(clean_result)
|
clean_results.append(clean_result)
|
||||||
|
|||||||
@@ -166,8 +166,8 @@ class TestEnhancedTavilySearchAPIWrapper:
|
|||||||
|
|
||||||
# Test image result
|
# Test image result
|
||||||
image_result = result[1]
|
image_result = result[1]
|
||||||
assert image_result["type"] == "image"
|
assert image_result["type"] == "image_url"
|
||||||
assert image_result["image_url"] == "https://example.com/image.jpg"
|
assert image_result["image_url"] == {"url": "https://example.com/image.jpg"}
|
||||||
assert image_result["image_description"] == "Test image description"
|
assert image_result["image_description"] == "Test image description"
|
||||||
|
|
||||||
def test_clean_results_without_raw_content(self, wrapper):
|
def test_clean_results_without_raw_content(self, wrapper):
|
||||||
|
|||||||
Reference in New Issue
Block a user