Firecraw本地部署无法搜索问题的解决

最近在尝试使用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导致搜索失败的问题,这部分的解决方法我还没找到,不过可以通过降低搜索的并发度缓解。

此条目发表在积少成多分类目录。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注