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、环境部署
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"
(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的安装此处不再介绍安装方法了。
让我们用起来: