佬,现在meidaEngine用的是博查的ai-search,如果没有这个key,使用web-search,会导致相当多内容找不到。有考虑兼容web-search吗?
使用的博查地址: # BOCHA_BASE_URL = settings.BOCHA_BASE_URL or "https://api.bochaai.com/v1/ai-search" BOCHA_BASE_URL = settings.BOCHA_BASE_URL or "https://api.bochaai.com/v1/web-search"
第一张图片是我直接使用postman,第二张图片是我只改了代码中博查的api:
目前 mediaEngine 只通过配置 BOCHA_BASE_URL 来决定用 ai-search 还是 web-search,并没有自动兼容或 fallback 机制,所有请求和响应解析逻辑都是为 ai-search 设计的。如果你直接把 base url 改成 web-search,代码本身不会自动适配 web-search 的差异,可能导致找不到内容或解析失败(比如响应结构不同、参数不兼容等)代码实现参考。
社区讨论和 issue 也提到,切换 endpoint 只能靠配置,且 web-search 失败常见原因是 API key 配置不对、权限不足、或网络(如 VPN/proxy)影响相关讨论。Postman 能查到结果但代码查不到,通常是 key、header、payload 或响应解析不兼容导致的。
如果想兼容 web-search,建议:
- 检查 web-search 的 API key 是否有效,header 是否正确(Authorization: Bearer ...)。
- 对比 ai-search 和 web-search 的响应结构,调整 _parse_search_response 相关代码,确保能正确解析 web-search 返回的数据。
- 可以在初始化时检测 key 是否存在,自动切换 endpoint 并适配参数和解析逻辑。
- 避免使用 VPN/proxy,确保网络直连。
目前没有官方自动 fallback 方案,兼容需要手动适配代码和配置。
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
本身就是兼容的,修改BOCHA_BASE_URL 就行
@DoiiarX 佬,博查ai-search和web-search他返回的对象是不一样的,代码中接受对象是基于ai-search,我之前试过,发现有一些数据一直抓不到的,我后面按照博查官方文档,才成功拿到数据。