开源AI搜索平台Search4All

news2024/9/23 3:14:34

在这里插入图片描述

什么是 Search4All ?

Search4All 是个人 AI 搜索协助工具,是 Perplexity 的开源替代品。能让你的 LLM API 支持联网,搜索、新闻、网页总结,

软件特点:

  • 集成对 LLM 的支持,例如 OpenAIGroqClaude
  • 本机搜索引擎集成,包括 GoogleBingDuckDuckGoSearXNG
  • 可定制的、视觉上吸引人的用户界面。
  • 可共享和缓存的搜索结果以提高效率。

从功能上看,和老苏之前介绍的 FreeAskInternet 差不多,区别就在于 Search4All 对搜索引擎的支持更多一点

准备工作

软件的安装比较简单,如果你之前已经单独安装过 SearXNG,那么只要安装 Search4All 即可,图形化安装和 docker cli 都只是安装了 Search4All

如果之前没有独立安装过 SearXNGdocker-compose 则展示了一体化安装,可以根据需要跳转到相应的章节

虽然安装简单,但涉及到的知识点比较多

关于 LLM ,还是使用了 One API 管理的 kimi

文章传送门:

  • 大模型接口管理和分发系统One API
  • 长文本大模型API服务kimi-free-api

关于 SearXNG 可能遇到的权限和超时等问题,可以参考 FreeAskInternet 的相关部分

文章传送门:

  • 私有化AI搜索引擎FreeAskInternet
  • 互联网元搜索引擎SearXNG

接下来进入我们今天的正题

安装

在群晖上以 Docker 方式安装。

图形化安装

在注册表中搜索 search4all ,选择第一个 fatwang2/search4all,版本选择 latest

本文写作时, latest 版本对应为 v0.1.0

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
80628800

环境

可变
OPENAI_API_KEYOpenAI 帐户页面上申请的 API Key
OPENAI_BASE_URL默认的 OpenAI API 请求 BASE URL
LLM_MODEL要使用的模型,支持 openaigroqclaude 所有聊天模型
RELATED_QUESTIONS显示相关问题
BACKEND想要的搜索服务,支持 SEARCH1API,BING,GOOGLE,SERPER,SEARCHAPI,SEARXNG
SEARXNG_BASE_URLBACKENDSEARXNG 时,托管的 serxng 服务器地址

因为没有 OpenAI API Key,所以我们这里使用了 OpenAI 接口代理,也就是 One API 的相关设置参数来模拟

  • OPENAI_API_KEYOne API 中的令牌;
  • OPENAI_BASE_URLOne API 的局域网地址;
  • LLM_MODEL:选择了 kimi
  • RELATED_QUESTIONS:选择了 1,用于显示相关问题;
  • BACKEND:选择了基于本地部署的 SEARXNG
  • SEARXNG_BASE_URL:填入 SEARXNG 的地址;

这些参数基本上都已经有了,需要下来一个一个找到并填写值

只有 SEARXNG_BASE_URL 需要自己添加

更多的环境变量,请参考官方文档的说明:https://github.com/fatwang2/search4all#environment-variable

docker cli安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 运行容器
docker run -d \
   --name search4all \
   --restart unless-stopped \
   -p 8062:8800 \
   -e OPENAI_API_KEY=sk-bn6M52bOfdxYB3n2Ee717eA2C66b45318f1c95E4D9553d94 \
   -e OPENAI_BASE_URL=http://192.168.0.197:3033/v1 \
   -e LLM_MODEL=kimi \
   -e RELATED_QUESTIONS=1 \
   -e BACKEND=SEARXNG \
   -e SEARXNG_BASE_URL=http://192.168.0.197:8061 \
   fatwang2/search4all

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

这里包含了 SearXNG ,适合未独立安装 SearXNG 的用户

version: '3'

services:
  search4all:
    image: fatwang2/search4all
    container_name: search4all_web
    restart: unless-stopped
    ports:
      - 8062:8800
    environment:
      OPENAI_API_KEY: sk-bn6M52bOfdxYB3n2Ee717eA2C66b45318f1c95E4D9553d94
      OPENAI_BASE_URL: http://192.168.0.197:3033/v1
      LLM_MODEL: kimi
      RELATED_QUESTIONS: 1
      # Change your search provider name here, if use another different provider
      BACKEND: SEARXNG
      # Set your hosted serxng server address. it is required when the BACKEND is SEARXNG
      SEARXNG_BASE_URL: http://searxng:8080

  searxng:
    image: searxng/searxng:latest
    container_name: search4all_searxng
    # ports:
    #  - "8061:8080"
    volumes:
      - ./data:/etc/searxng:rw
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    logging:
      driver: 'json-file'
      options:
        max-size: '1m'
        max-file: '1'
    restart: always

然后执行下面的命令

# 新建文件夹 search4all 和 子目录
mkdir -p /volume1/docker/search4all/data

# 进入 search4all 目录
cd /volume1/docker/search4all

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8062 就能看到搜索界面

随便搜一个

看看天气

看看奖牌🏅

对比直接在 SearXNG 中的搜索结果

【风险提示】:大语言模型提供的答案,准确性是基于搜索引擎返回的结果,所以需要自己核实正确性

参考文档

fatwang2/search4all: Personal AI search copilot, open-source Perplexity
地址:https://github.com/fatwang2/search4all

Search4All
地址:https://search2ai.one/

free gpt 3.5 api配合 Search4All 实现联网回答 - 常规话题 / 人工智能 - LINUX DO
地址:https://linux.do/t/topic/54134

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1996866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习笔记】Day 8

写在开头: 最近老板突然提出一个全新的组会主题,是关于 “最近我犯的傻”,其目的在于提供乐子的同时引以为戒。本来我还在愁到底去哪里找干的啥事儿,结果今天直接拉了个大的。什么叫无心插柳柳成荫啊,悲。 一…

亿达科创亮相智造数字科技大会

8月8日,IMC2024第七届智造数字科技大会在京启幕。大会以“乘‘数’而上”为题,邀请300智能制造行业数字化转型技术大咖、领军者及实践者共聚一堂,解读智造行业转型进程。亿达科创受邀参会,分享企业前沿数字技术、解决方案与创新实…

Java面试篇(线程池相关专题)

文章目录 1. 为什么要使用线程池2. 线程池的核心参数和线程池的执行原理2.1 线程池的核心参数2.2 线程池的执行原理 3. 线程池中常见的阻塞队列3.1 常见的阻塞队列3.2 ArrayBlockingQueue 和 LinkedBlockingQueue 的区别 4. 如何确定线程池的核心线程数4.1 应用程序中任务的类型…

开源AI智能名片小程序在私域流量运营中的“及时法则”深度应用与策略探讨

摘要:在数字化浪潮的推动下,私域流量已成为企业构建长期竞争优势的关键要素。开源AI智能名片小程序,凭借其智能化、个性化及高度可定制化的特性,正逐步成为私域流量运营的重要工具。本文深入探讨了“及时法则”在开源AI智能名片小…

模型量化——NVIDIA——QAT

概述 QAT 截止目前(20230418)的CUDA 实现并不在pytorch 原生包中(不等同于pytorch 的QAT,它主要支持CPU),需要引入NVIDIA 的第三方包“pytorch-quantization”。需要TRT8+ 、 pytorch 1.8 +。主要流程如下: 工具流转方向如下: 所以目前我的理解+咨询了NVIDIA官…

【代码随想录】螺旋矩阵II

本博文为代码随想录的学习笔记,原文链接:代码随想录 题目 原题链接:59. 螺旋矩阵 II 给你一个正整数 n ,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xf…

【Linux】lvm被删除或者lvm丢失了怎么办

模拟案例 接下来模拟lvm误删除如何恢复的案例: 模拟删除: 查看vg名: vgdisplayvgcfgrestore --list uniontechos #查看之前的操作 例如我删除的,现场没有删除就用最近的操作文件: 还原: vgcfgrestore…

1Panel应用推荐:KubePi开源Kubernetes管理面板

1Panel(github.com/1Panel-dev/1Panel)是一款现代化、开源的Linux服务器运维管理面板,它致力于通过开源的方式,帮助用户简化建站与运维管理流程。为了方便广大用户快捷安装部署相关软件应用,1Panel特别开通应用商店&am…

扩展02:Haporxy+Keepalived+Mysql高可用集群实战

由于这个架构和扩展01的大致步骤都相同,就不讲解了。看如下图再参考扩展01即可。

用C语言实现链式存储结构 万字

各位同学,大家好,我叫小敖。今天给大家分享数据结构之一链式存储结构,下面是对链表简单介绍,希望大家能理解。 链表介绍 链表是一种物理存储单元上非连续、非顺序的存储结构**,数据元素的逻辑顺序是通过链表中的指针链…

大模型快速部署,以浪潮源2.0为例

step1: 申请PAI-DSW试用 step2:魔塔社区授权 由于本地授权一直失败,于是采用了魔塔免费平台实例进行学习。 搭建好之后,打开就有相关页面了: demo搭建: 按照官方提示的步骤进行搭建,内容如下:…

第二十一节、敌人追击状态的转换

一、物理检测中的Boxcast 1、检测敌人Bool 当不知道一个函数的返回值是什么的时候 定义一个var变量 就知道了 二、状态切换 1、switch用法 2、新的语法糖写法

ubuntu2004上的glib编译教程

最近因为工作需要编译glib,写文章记录一下编译流程。 从launchpad上下载源码:链接 根据control文件的提示安装对应的依赖 然后尝试debuild,这里会编译不过出去,不过debuild会自动生成一些编译文件,不要删除。 接下来…

2024云南导游资格证题库

1、释迦三圣是( )。 A、药师佛 B、文殊菩萨 C、释迦牟尼 D、普贤菩萨 E、观音菩萨 答案:BCD 2、下列女士套裙穿法中,错误的是( )。 A、上衣的袖长不超过着装者的手腕,裙子不盖过脚踝 B、女士在正式场合穿…

八、MyBatis

一、MyBatis介绍 MyBatis 是持久层框架,它支持自定义 SQL、存储过程以及⾼级映射。MyBatis 去除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置 和映射原始类型、接口和 Java POJO(Plain Old Java Obj…

数据结构--第七天

递归 -递归的概念 递归其实就是一种解决问题的办法,在C语言中:递归就是函数自己调用自己 -递归的思想 递归的思考方式就是把大事化小的过程 递归的递就是递推的意思,归就是回归的意思 (递归是少量的代码完成大量的运算&#xff09…

数据结构(5.5_2)——并查集

逻辑结构——数据元素之间的逻辑关系 并查集: 并查集(Union-Find)是一种树型的数据结构,用于处理一些不交集的合并及查询问题。它支持两种操作: 用双亲表示存储并查集 首先将所有根节点数组值设为-1,其…

[Android] [解决]Bottom Navigation Views Activity工程带来的fragment底部遮盖的问题

创建了Bottom Navigation Views Activity之后,在fragment_home.xml,加了一个RecyclerView, 后来添加了item之后发现底部会被盖住一部分。 解决:在layout里面加两句: android:paddingBottom"?attr/actionBarSize&…

C#获取Network的相关信息

1,获取网络的通断。 //方法1:无效果,并不能反映当前网络通断 bool availableSystem.Windows.Forms.SystemInformation.Network//方法2:通过VB获取网络状态,可反映当前网络通断 Microsoft.VisualBasic.Devices.Network…

Qt QML 使用QPainterPath绘制弧形曲线和弧形文本

Qt并没有相关api直接绘制弧形文字,但提供了曲线绘制相关类,所以只能另辟蹊径,使用QPainterPath先生成曲线,然后通过曲线上的点来定位每个文字并draw出来。 QML具体做法为从QQuickPaintedItem继承,在派生类中实现paint…