前言

本文将介绍如何将Dify与SearXNG结合,构建一个强大的免费联网搜索工作流系统。本地部署Dify教程可参考【Linux部署Dify指南】

一、Dify集成SearXNG

1. 安装SearXNG
Dify界面->工具->右侧搜索“SearXNG”->点击安装
在这里插入图片描述
2. 启动 SearXNG 服务
参考官方文档,在docker中启动SearXNG 服务:

cd dify
docker run --rm -d -p 8081:8080 -v "${PWD}/api/core/tools/provider/builtin/searxng/docker:/etc/searxng" searxng/searxng

3. 测试 SearXNG 服务
测试 SearXNG 服务是否正常工作:

curl "http://localhost:8081/search?q=apple&format=json&categories=general"

如果成功,会出现大段内容,是正常现象。

4. Dify认证
在Dify的工具界面点击SearXNG->去授权,输入SearXNG 服务的 Base URL:

http://<your_server_ip>:8081

二、安装错误及nginx添加端口

1. 测试SearXNG出现403错误
在使用http://localhost:8081测试SearXNG时出现403错误。需要修改其配置文件。进入SearXNG 的配置文件位置:

cd dify/api/core/tools/provider/builtin/searxng/docker

打开settings.yml,搜索“formats”,添加“-json”:
在这里插入图片描述
然后执行命令查看docker当前的服务docker ps,找到searxng/searxng 行的container_id,然后重新SearXNG 的服务docker restart ${container_id}即可。

2. nginx添加8081端口
在nginx.conf中找到dify服务配置,其中添加8081端口,对于报错:

PluginInvokeError: {"args":{},"error_type":"ToolProviderCredentialValidationError","message":"Exceeded 30 redirects."}

解决方法:确保请求路径被完整传递到后端:http://127.0.0.1:8081后需要添加$request_uri;重定位功能需要关闭:proxy_redirect off

location /search {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        
            proxy_pass http://127.0.0.1:8081$request_uri;
            proxy_read_timeout 300s;
            proxy_send_timeout 300s;
            proxy_redirect off;
            
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Methods' '*';
        }

随后重启nginx:

sudo pkill -9 nginx
sudo systemctl start nginx

注意! 如果使用nginx -s reload来重启,可能会报错找不到/run/nginx.pid

三、搭建联网搜索工作流

Dify界面->创建空白应用->选择Chatflow->创建工作流:
在这里插入图片描述

创建后会显示包含一个大模型的简单工作流:
在这里插入图片描述

在开始节点和LLM节点之间的连线添加->工具->SearXNG:
在这里插入图片描述

然后配置SearXNG,这里的sys.query变量默认用户输入的内容,这里是根据用户的输入进行搜索,搜索类型和时间范围可以根据需求来选择。
在这里插入图片描述

配置LLM节点,注意在上下文和user的提示词添加SearXNG 搜索节点输出的内容:
在这里插入图片描述

最后点击预览,进行测试:
在这里插入图片描述

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐