mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-08-01 10:56:02 +00:00
Return the full-resolution image URL from image_search (#3990)
`image_search` set both `image_url` and `thumbnail_url` to the DDGS result's `thumbnail` field, so the tool never returned the full-resolution image even though its docstring/usage_hint promise reference-quality images (and a result with no `thumbnail` returned an empty `image_url`). DDGS `.images()` exposes the full-res source under the separate `image` key — read that for `image_url`, matching the serper/brave providers which keep image vs thumbnail distinct. Adds a regression test.
This commit is contained in:
parent
b06372b812
commit
eb8eec21ce
@ -119,7 +119,7 @@ def image_search_tool(
|
|||||||
normalized_results = [
|
normalized_results = [
|
||||||
{
|
{
|
||||||
"title": r.get("title", ""),
|
"title": r.get("title", ""),
|
||||||
"image_url": r.get("thumbnail", ""),
|
"image_url": r.get("image", ""),
|
||||||
"thumbnail_url": r.get("thumbnail", ""),
|
"thumbnail_url": r.get("thumbnail", ""),
|
||||||
}
|
}
|
||||||
for r in results
|
for r in results
|
||||||
|
|||||||
28
backend/tests/test_image_search.py
Normal file
28
backend/tests/test_image_search.py
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
import json
|
||||||
|
from unittest.mock import MagicMock, patch
|
||||||
|
|
||||||
|
from deerflow.community.image_search.tools import image_search_tool
|
||||||
|
|
||||||
|
|
||||||
|
def test_image_search_uses_full_image_url_not_thumbnail():
|
||||||
|
# Regression: `image_url` must expose the full-resolution `image` from the DDGS result,
|
||||||
|
# not the low-res `thumbnail` (both fields were previously set to `thumbnail`).
|
||||||
|
fake_results = [
|
||||||
|
{
|
||||||
|
"title": "a cat",
|
||||||
|
"image": "https://example.com/full.jpg",
|
||||||
|
"thumbnail": "https://example.com/thumb.jpg",
|
||||||
|
}
|
||||||
|
]
|
||||||
|
cfg = MagicMock()
|
||||||
|
cfg.get_tool_config.return_value = None
|
||||||
|
|
||||||
|
with (
|
||||||
|
patch("deerflow.community.image_search.tools._search_images", return_value=fake_results),
|
||||||
|
patch("deerflow.community.image_search.tools.get_app_config", return_value=cfg),
|
||||||
|
):
|
||||||
|
output = json.loads(image_search_tool.invoke({"query": "a cat"}))
|
||||||
|
|
||||||
|
result = output["results"][0]
|
||||||
|
assert result["image_url"] == "https://example.com/full.jpg"
|
||||||
|
assert result["thumbnail_url"] == "https://example.com/thumb.jpg"
|
||||||
Loading…
x
Reference in New Issue
Block a user