AI搜索引擎Perplexica的本地部署(之一)SearXNG本地部署

BBM的开源HUB 2024-10-09 11:31:13 阅读 89

Perplexica 是一种开源的 AI 驱动的搜索工具或 AI 驱动的搜索引擎,它深入互联网以寻找答案。受 Perplexity AI 的启发,它是一个开源选项,不仅可以搜索网络,还可以理解您的问题。它使用先进的机器学习算法(如相似性搜索和嵌入)来优化结果,并通过引用的来源提供明确的答案。

使用 SearxNG 保持最新和完全开源,Perplexica 确保您始终获得最新信息,而不会损害您的隐私。

Perplexica的部署依赖于SearXNG,今天我们先介绍SearXNG在ubuntu22.04上的本地部署。然后接下来再介绍Perplexica。

SearXNG是一个免费的互联网元搜索引擎,它汇总了来自更多 超过 70 个搜索服务。github地址:https://github.com/searxng/searxng。换句话讲SearXNG是一个带有70个搜索网站的API库,有了他你可以使用全球70个搜索网站的各类信息。接下来让我们开启SearXNG的安装之旅。

本例中我们使用apache2作为它的发布站点,网站强列建议大家租用海外主机,国内主机绝大部分网站无法访问,只能浏览部分图片。小伙伴们可以去国内的大厂租用一台海外主机,配置吗2C2G就够了,因为个人使用量不会太大,可以使用按流量付费那种,带宽吗越大越好。

一:SearXNG安装

1、环境部署

<code>apt-get install -y python3-dev python3-babel python3-venv uwsgi uwsgi-plugin-python3 git build-essential libxslt-dev zlib1g-dev libffi-dev libssl-dev

2、创建用户

useradd --shell /bin/bash --system --home-dir "/usr/local/searxng" --comment 'Privacy-respecting metasearch engine' searxng

3、创建工作目录及设置权限

sudo -H mkdir "/usr/local/searxng"

sudo -H chown -R "searxng:searxng" "/usr/local/searxng"

4、安装SearXNG和依赖项

#使用searxng用户登录

sudo -H -u searxng -i

#克隆代码库

git clone "https://github.com/searxng/searxng" "/usr/local/searxng/searxng-src"

5、安装python环境并创建SearXNG虚拟环境

#创建一个searx-pyenv的环境

python3 -m venv "/usr/local/searxng/searx-pyenv"

#生成.profile文件

echo ". /usr/local/searxng/searx-pyenv/bin/activate" >> "/usr/local/searxng/.profile"

创建过程中如果提示缺少python文件,请根据提示自行安装。

6、安装SearXNG相关依赖

创建完.profile文件后退出此终端,再打开另一个终端,同样以searxng用户登录。

#searxng用户便当

sudo -H -u searxng -i

#验证python的安装及版本

(searxng)$ command -v python && python --version

#显示结果如下:

/usr/local/searxng/searx-pyenv/bin/python

Python 3.10.1

# update pip's boilerplate ..

pip install -U pip

pip install -U setuptools

pip install -U wheel

pip install -U pyyaml

#在searxng工作目录安装SearXNG

(searxng)$ cd "/usr/local/searxng/searxng-src"

(searxng)$ pip install -e .

7、配置searxng的设置文件

#在etc下创建searxng目录

sudo -H mkdir -p "/etc/searxng"

#考贝settings.yml文件到/etc/searxng

sudo -H cp "/usr/local/searxng/searxng-src/utils/templates/etc/searxng/settings.yml" "/etc/searxng/settings.yml"

编辑该文件:

vim /etc/searxng/settings.yml

# SearXNG settings

use_default_settings: true

general:

debug: false

instance_name: "SearXNG"

search:

safe_search: 2

autocomplete: 'duckduckgo'

server:

# Is overwritten by ${SEARXNG_SECRET}

secret_key: "mysearxngkey123456"

limiter: true

image_proxy: true

# public URL of the instance, to ensure correct inbound links. Is overwritten

# by ${SEARXNG_URL}.

# base_url: http://example.com/location

redis:

# URL to connect redis database. Is overwritten by ${SEARXNG_REDIS_URL}.

url: unix:///usr/local/searxng-redis/run/redis.sock?db=0

ui:

static_use_hash: true

# preferences:

# lock:

# - autocomplete

# - method

enabled_plugins:

- 'Hash plugin'

- 'Self Informations'

- 'Tracker URL remover'

- 'Ahmia blacklist'

# - 'Hostnames plugin' # see 'hostnames' configuration below

# - 'Open Access DOI rewrite'

# plugins:

# - only_show_green_results

注意这里需要修改:

secret_key: "ultrasecretkey"怎么改都行,就是不能使用默认值:"ultrasecretkey"。

8、启动searxng

# start webapp

$ sudo -H -u searxng -i

(searxng)$ cd /usr/local/searxng/searxng-src

(searxng)$ export SEARXNG_SETTINGS_PATH="/etc/searxng/settings.yml"code>

(searxng)$ python searx/webapp.py

二:Apache2的配置

1、apache HTTP服务器

sudo -H apt-get install apache2

2、要加载其他模块

sudo -H a2enmod ssl

sudo -H a2enmod headers

sudo -H a2enmod proxy

sudo -H a2enmod proxy_http

sudo -H a2enmod proxy_uwsgi

3、生成Apache 的 SearXNG 站点

touch /etc/apache2/sites-available/searxng.conf

编辑文件

vim /etc/apache2/sites-available/searxng.conf

# -*- coding: utf-8; mode: apache -*-

LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so

LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so

LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so

# LoadModule setenvif_module /usr/lib/apache2/modules/mod_setenvif.so

#

# SetEnvIf Request_URI /searxng dontlog

# CustomLog /dev/null combined env=dontlog

<Location /searxng>

Require all granted

Order deny,allow

Deny from all

# Allow from fd00::/8 192.168.0.0/16 fe80::/10 127.0.0.0/8 ::1

Allow from all

# add the trailing slash

RedirectMatch 308 /searxng$ /searxng/

ProxyPreserveHost On

ProxyPass http://127.0.0.1:8888

# see flaskfix.py

RequestHeader set X-Scheme %{REQUEST_SCHEME}s

RequestHeader set X-Script-Name /searxng

# see limiter.py

RequestHeader set X-Real-IP %{REMOTE_ADDR}s

RequestHeader append X-Forwarded-For %{REMOTE_ADDR}s

</Location>

# uWSGI serves the static files and in settings.yml we use::

#

# ui:

# static_use_hash: true

#

# Alias /searxng/static/ /usr/local/searxng/searxng-src/searx/static/

4、执行searxng安装脚本

sudo -H ./utils/searxng.sh install apache

5、启动站点searxng

sudo -H a2ensite searxng.conf

6、重启服务

sudo -H systemctl restart apache2

sudo -H service uwsgi restart searxng

三:运行

运行方法是:http://网站IP/searxng/

如果想使用https,可以向网站服务商申请ssl密钥。有关https的安装此处不再介绍安装方法了。

让我们用起来:



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。