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

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的安装此处不再介绍安装方法了。

让我们用起来:

相关推荐
OBOO鸥柏17 分钟前
OBOO鸥柏“触摸屏广告一体机交互”亮相2024中国珠海航展
大数据·人工智能·科技·交互
Geeksend邮件营销20 分钟前
定时清理潜在客户列表中的无效邮箱可提高EDM电子邮件自动化营销邮件送达率
人工智能·产品运营·用户运营·内容运营
新加坡内哥谈技术25 分钟前
提升AI性能的关键大型语言模型(LLM)压缩策略
人工智能·语言模型·自然语言处理
OCR_wintone42126 分钟前
易泊车牌识别相机:4S 店的智能之选
人工智能·数码相机·ocr
棱角~~1 小时前
10款音频剪辑工具的个人实践体验感受!!
人工智能·经验分享·其他·音视频·学习方法
铭瑾熙1 小时前
深度学习之GAN的生成能力评价
人工智能·深度学习·生成对抗网络
irrationality1 小时前
昇思大模型平台打卡体验活动:项目1基于MindSpore实现BERT对话情绪识别
人工智能·深度学习·bert
newxtc2 小时前
【魔珐有言-注册/登录安全分析报告-无验证方式导致安全隐患】
人工智能·安全·网易易盾·ai写作·极验
EasyCVR2 小时前
GA/T1400视图库平台EasyCVR视频融合平台HLS视频协议是什么?
服务器·网络·人工智能·音视频
V搜xhliang02462 小时前
基于深度学习的地物类型的提取
开发语言·人工智能·python·深度学习·神经网络·学习·conda