大模型集成 LobeChat
大模型工具使用,需要设定返回格式新增一个JSON
编辑 settings.yml
找到 formats
在下面添加:
shformats: - html - json
如果你打算使用 Docker 创建公共实例,推荐使用维护良好的 searxng/searxng @dockerhub
镜像。该 Docker 容器的源托管于 searxng - docker
,容器内包含一个 HTTPS 反向代理(caddy)和一个 Redis 数据库。容器还对 SearXNG 进行了一系列配置,如启用限制器保护以防机器人攻击、启用图像代理以更好保护隐私、启用缓存破坏以节省带宽等。
原文Blog:https://docs.searxng.org/admin/installation-docker.html
在打算自己构建和维护一个 Docker 镜像前,确保已经安装了 Docker。在 Linux 系统上,不要忘记将你的用户添加到 docker 组中(注销并重新登录以重新评估组成员身份),执行命令:
bashsudo usermod -a -G docker $USER
searxng/searxng
镜像该 docker 镜像基于 git://Dockerfile
,并可在 searxng/searxng @dockerhub
处获取。使用该 Docker 镜像非常简单,以下是拉取并部署本地实例的步骤:
bashmkdir my-searxng
cd my-searxng
bashexport PORT=8080
bashdocker run --rm \
-d --name searxng -p ${PORT}:8080 \
-v "${PWD}/searxng:/etc/searxng" \
-e "BASE_URL=http://localhost:${PORT}/" \
-e "INSTANCE_NAME=my-searxng" \
searxng/searxng
上述命令中,-d
表示以后台模式运行容器,-p
用于端口映射,-v
实现主机与容器之间的目录挂载,-e
用于设置环境变量。
也可以直接配置好:
bash# 创建目录
mkdir -p /root/searxng
# 启动docker
docker run --rm \
-d --name searxng -p 8001:8080 \
-v "/root/searxng:/etc/searxng" \
-e "BASE_URL=http://123.45.67.89:8001/" \
-e "INSTANCE_NAME=my-searxng" \
searxng/searxng
别忘了去防火墙将指定映射的端口开启
js--rm 在容器退出时自动清理
-d start detached container
-v mount volume HOST:CONTAINER
此外:如果你希望 SearXNG
能够通过外网访问,BASE_URL
应该设置为你的公网 IP
地址或域名
,而不是 localhost
。这是因为 BASE_URL
是 SearXNG
用来生成绝对 URL
(例如链接、重定向等)的基础地址
bash# 示例,若你的公网IP是123.45.67.89
-e "BASE_URL=http://123.45.67.89:8001/"
# 示例,若你已经配置了域名映射是http://searxng.example.com
-e "BASE_URL=http://searxng.example.com"
环境变量 UWSGI_WORKERS
和 UWSGI_THREADS
覆盖了 /etc/searxng/uwsgi.ini
中指定的 UWSGI 进程和线程的默认数量。打开 WEB 浏览器并访问网址:
bashxdg-open "http://localhost:$PORT"
在 ${PWD}/searxng
中,你将找到 settings.yml
和 uwsgi.ini
,可根据需要修改这些文件并重启 Docker 镜像:
bashdocker container restart <容器 ID>
docker container ls
docker container ls -a
docker container stop <容器 ID>
docker container rm <容器 ID>
如果你不再使用 Docker 并想要删除所有容器及镜像,可使用以下 prune
命令:
bashdocker stop $(docker ps - aq) # stop all containers
docker system prune # make some housekeeping
docker rmi - f $(docker images - q) # drop all images
不过要注意,这可能会删除所有 Docker 中的项目,而不仅仅是 SearXNG 的那些。
像许多其他发行版一样,Alpine 的 /bin/sh
是 dash
。Dash
旨在符合 POSIX 标准,与 Debian
不同,在 Alpine 镜像中未安装 bash
。git://dockerfiles/docker - entrypoint.sh
脚本是用 dash
检查的(make test - tests.sh
)。在容器内打开终端:
bashdocker exec -it <容器 ID> sh
也可以从嵌入的 git://Dockerfile
构建 SearXNG:
bashgit clone https://github.com/searxng/searxng.git
cd searxng
make docker.build
构建成功后,可以使用 docker images
查看镜像信息:
bash... Successfully built 49586c016434 Successfully tagged searxng/searxng:latest Successfully tagged searxng/searxng:1.0.0-209-9c823800-dirty $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE searxng/searxng 1.0.0-209-9c823800-dirty 49586c016434 13 minutes ago 308MB searxng/searxng latest 49586c016434 13 minutes ago 308MB alpine 3.13 6dbb9cc54074 3 weeks ago 5.61MB
在 git://Dockerfile
中,ENTRYPOINT
定义为 git://dockerfiles/docker - entrypoint.sh
。使用 docker run
命令时,可以添加 -it
标志用于交互进程:
bashdocker run --rm -it searxng/searxng -h
bashCommand line:
-h Display this help
-d Dry run to update the configuration files.
-f Always update on the configuration files (existing files are renamed with
the .old suffix). Without this option, the new configuration files are
copied with the .new suffix
Environment variables:
INSTANCE_NAME settings.yml : general.instance_name
AUTOCOMPLETE settings.yml : search.autocomplete
BASE_URL settings.yml : server.base_url
MORTY_URL settings.yml : result_proxy.url
MORTY_KEY settings.yml : result_proxy.key
BIND_ADDRESS uwsgi bind to the specified TCP socket using HTTP protocol.
Default value: 0.0.0.0:8080
Volume:
/etc/searxng the docker entry point copies settings.yml and uwsgi.ini in
this directory (see the -f command line option)"
命令行选项解释:
-h
:显示此帮助信息。-d
:运行以更新配置文件(现有文件将使用 .old
后缀重命名,在不使用此选项的情况下,新配置文件将具有 .new
后缀)。
环境变量说明:INSTANCE_NAME
:settings.yml
中的 general.instance_name
。AUTOCOMPLETE
:settings.yml
中的 search.autocomplete
。BASE_URL
:settings.yml
中的 server.base_url
。MORTY_KEY
:settings.yml
中的 result.proxy.key
。BIND_ADDRESS
:默认值 0.0.0.0:8888
,用于使用 HTTP 协议绑定到指定 TCP 套接字。
卷说明:
/etc/searxng
:docker build
命令会将 settings.yml
和 uwsgi.ini
复制到这个目录(见 -f
命令行选项)。