最近在尝试使用deep research,发现在这里面LLM算力的成本远不如搜索API的成本高。所以就动起来本地部署一个搜索工具。由于我在使用的这个deep research实现主要使用Firecrawl, 而它又刚好可以本地化部署,所以就选择了Firecrawl
在根据Firecraw的官方self-hosting教程设置之后,用该本地部署搜索时,会出现“Connection violated security rules” 报错,而无法给出搜索结果。在其issue列表中,给出的解决方案,即在.env文件中添加ALLOW_LOCAL_WEBHOOKS=true选项并没有解决我所用的版本的问题。所以这里采用了一个非官方的解决方法:
信息来源:https://stackoverflow.com/a/79749124
根据stackoverflow的描述,这个问题主要是safeFetch.js中的函数isIPPrivate(这里的函数名与链接中不同)返回true时会禁止脚本运行。所以解决方案也就显而易见了:修改这个函数
# 启动对应docker容器
docker run -it firecrawl-api /bin/bash
在docker容器中,修改文件
# 装个文本编辑其
apt update
apt install vim
# 打开文件并编辑
vim /app/dist/src/scraper/scrapeURL/engines/utils/safeFetch.js
我选择直接把isIPPrivate函数修改为直接返回false
function isIPPrivate(address) {
return false;
}
commit当前docker实例的修改回firecrawl-api
docker commit <container id> firecrawl-api
commit之后重新运行docker compose up即可开始搜索。
TODO:在完成上述修改后,使用deep research本地部署会遇到搜索引擎的antibot导致搜索失败的问题,这部分的解决方法我还没找到,不过可以通过降低搜索的并发度缓解。
津公网安备12010402001491号