You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastAPI pip版本下DuckDuckGo图片搜索报错及解决方案咨询

问题修复与替代方案

1. 修复代码中的语法错误

你代码的语法错误源于ddgs.images()的调用方式错误:该函数第一个参数是查询字符串,后续参数需以关键字参数形式传入,不能把查询词和关键字参数放在同一括号内。另外你写死了keywords='stop sign',会导致函数参数term失效,建议按需调整。

修复后的代码示例:

from duckduckgo_search import DDGS
from fastcore.all import *

ddgs = DDGS()
def search_images(term, max_images=30):
    print(f"Searching for '{term}'")
    # 若需组合固定关键词与传入term,用此写法;仅需term则直接传term
    query = f"stop sign {term}"
    # 正确调用方式:查询词作为第一个参数,max_results作为关键字参数
    return L(ddgs.images(query, max_results=max_images)).itemgot('image')

2. 解决fastbook覆盖search_images_ddg的问题

针对旧版fastbook破坏函数的问题,可采用以下方案:

  • 更新fastbook到最新版:旧版本的函数覆盖问题已在新版中修复,执行命令更新:
    pip uninstall -y fastbook
    pip install --upgrade fastbook
    
  • 避免导入冲突:若必须保留旧版,不要使用from fastbook import *,按需导入所需模块,之后重新导入DDGS确保优先级:
    from fastbook import DataLoaders, Learner  # 仅导入需要的组件
    from duckduckgo_search import DDGS
    
    或者完全重写自己的search_images函数,不依赖fastbook提供的版本。
  • 修改fastbook源码(不推荐):找到fastbook安装目录下的__init__.py,删除其中覆盖search_images_ddg的代码,但此方法在包更新后会失效。

3. 替代的图片搜索引擎API

若仍有问题,可选用以下稳定的图片搜索API:

  • Unsplash API:提供高质量免费商用图片,需注册获取API Key,搜索接口简洁,适合图像识别项目。
  • Pexels API:同样支持免费商用图片,需API Key,调用门槛低。
  • Bing Image Search API:微软提供,有免费调用额度,支持精准搜索,适合批量获取图片。
  • Google Custom Search API:可配置图片搜索功能,需API Key与搜索引擎ID,有免费调用额度。

内容的提问来源于stack exchange,提问作者user21967185

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 08:03:23