mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-05 15:10:20 +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:
|
||||
"""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:
|
||||
seen_urls.add(url)
|
||||
return result.copy() # Return a copy to avoid modifying original
|
||||
|
||||
@@ -114,8 +114,8 @@ class EnhancedTavilySearchAPIWrapper(OriginalTavilySearchAPIWrapper):
|
||||
images = raw_results["images"]
|
||||
for image in images:
|
||||
clean_result = {
|
||||
"type": "image",
|
||||
"image_url": image["url"],
|
||||
"type": "image_url",
|
||||
"image_url": {"url": image["url"]},
|
||||
"image_description": image["description"],
|
||||
}
|
||||
clean_results.append(clean_result)
|
||||
|
||||
@@ -166,8 +166,8 @@ class TestEnhancedTavilySearchAPIWrapper:
|
||||
|
||||
# Test image result
|
||||
image_result = result[1]
|
||||
assert image_result["type"] == "image"
|
||||
assert image_result["image_url"] == "https://example.com/image.jpg"
|
||||
assert image_result["type"] == "image_url"
|
||||
assert image_result["image_url"] == {"url": "https://example.com/image.jpg"}
|
||||
assert image_result["image_description"] == "Test image description"
|
||||
|
||||
def test_clean_results_without_raw_content(self, wrapper):
|
||||
|
||||
Reference in New Issue
Block a user