语义学学者检索器有一个无限制的请求和没有守护的JSON解析

作者: anupamking01创建于 2026年9月13日更新于 2026年9月13日

□ 总结

`SemanticScholarSearch.search ()'目前在没有超时的情况下执行外部请求,并解析请求-误差警卫以外的响应机构:

zz
尝试 :
响应 = request.get(self.BASE URL,parms=params) 请求 :
响应。cause  for status ()
除请求外。 请求例外为 e:
打印(...)
返回 [

有效载荷=应答.json()

这在同一检索呼叫路径中留下了两个可靠性漏洞:

  1. 无响应的语义学者端点可以无限期地阻挡HTTP层的研究步骤;
  2. 含有不当/非JSON内容的HTTP 200答复从`Resignation.json()'而不是以 " [] " 表示。

□ 预期行为

学术检索器应具有限定的请求期限,并按已经处理运输/HTTP故障的方式处理响应-解码故障。

狭义的修补方式是:

[Python] 尝试 : 响应=request.get(self.BASE URL,params=params,超时=10) 响应。cause for status () 有效载荷=应答.json() 除外(请求。 请求例外, 价值错误) 作为 e: 打印(...) 返回 [


这遵循了其他取回者使用的现有超时/超时处理模式,而不改变快乐-路径结果正常化。

□ 复行报道

重点离线测试可以验证:

- `要求.获得一段有限的暂停时间;
- `.json ()'提出`Value Error ("无效的json")`返回',而不是宣传;
——现有幸福道路不变.

这也是在#1764中更广泛的外调超时关注的具体例子,但范围被扩展至语义学者检索器,以便可以独立地固定和测试.

我搜索了公关追踪器 一个语义学者超时 / 畸形-JSON 修复,没有找到现有的执行。 #2036触摸语义学者排序验证和SarXNG超时,而不是这个请求路径.

<sub>AI协助的审查披露:使用AI编码助理检查了检索器请求路径并帮助编写了本报告。 </sub>

内容来源: assafelovic/gpt-researcher