大模型集成 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 lsdocker container ls -adocker 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 命令行选项)。