WithAI.Design

5 min read

免费的Perplexity!OpenWebUI+SearXNG+Ollama

免费的Perplexity!OpenWebUI+SearXNG+Ollama

前言

没错,这期我们再来看看Perplexity的平替方案!这次可以完全不用借助任何收费的搜索API,实现完全免费的基于大模型的互联网搜索。之所以设计小站那么关注这个模块,是因为我始终认为,大语言模型结合搜索,将会重构整个人类的知识整理和检索能力,意义非凡! 还记得上几期我们探讨过使用AI工具进行CMF的前期探索了吗?感兴趣的朋友可以回顾一下:# 【AI辅助设计】使用AI进行CMF探索-part2 。在这一期我们用到了暂时免费的秘塔搜索、付费的Perplexity,还有基于搜索引擎付费API(当然有部分的免费额度)的Perplexica等工具,来帮助设计师从互联网上搜集信息,同事通过AI方式整理呈现出来。

这一期可能对于设计师来讲,部署上有一定难度,动手能力强的设计师不妨跟着做一下。

先看看效果

语言模型使用llama3phi3,或者用openai等在线模型,都可以的,速度也够快。综合来看,限于本地机器的性能,不能用较大的语言大模型,例如70b是跑不动的,所以分析的效果,开源模型还是没有闭源在线模型(gpt4)好。

有了这个工具,基本上可以不用某度的搜索了。是不是很爽啊?🤣

用到的开源技术

这个项目,正如标题所述,用到了以下技术:

  1. Ollama。本地搭建开源语言大模型的解决方案。
  2. Open-WebUI。界面友好,扩展性强的大语言模型聊天界面。可以很方便建立个人的知识库。最新版本,加入了联网搜索、记忆功能,越来越好了。
  3. SearXNG。黑科技搜索引擎。其实也是基于爬虫原理,整理市场上大部分的主流搜索引擎。

准备工作

准备部分,我不打算详细介绍了,大家可以自行搜索哈,每一个条件网上都有详尽的教程。

  1. python环境
  2. Nvidia驱动和CUDA套件
  3. WSL2子系统。这里需要用到win下的WSL2子系统,因为我发现在wsl2下部署open-webui和SearXNG会方便很多,而且兼容性很好。
  4. Docker Desktop

准备工作完成后,我一个一个部署。

Ollama安装

Ollam的安装非常友好,windows下,直接安装其exe安装文件即可。官方地址:https://www.ollama.com/ 这里有两个地方需要设置一下,更方便使用:

1. 设置模型目录

语言模型会占据大量的磁盘空间,所以选择一个合适的路径为佳。

OLLAMA_MODELS=

2.暴露host

这是为了让ollama作为作为一个服务,开放给局域网设备访问,当然也包括wsl2下的应用。

OLLAMA_HOST=

这些可以在windows下的环境变量中设置,如下图:

安装好Ollama后,我们先不管,继续下一个安装。

安装Open-WebUI

使用wsl2+docker安装

我使用wsl2安装,Open-WebUI。 打开wsl2窗口,同时打开docker desktop,输入以下docker命令:

docker run -d -p 11439:8080 -e OLLAMA_BASE_URL=<your ollama url>   -e OPENAI_API_BASE_URLS=<your openai baseurl> -e OPENAI_API_KEYS=s<your openai key>  -v /home/leolee/open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:latest
  • -p 11439:8080:11439可以改为你希望的端口
  • OLLAMA_BASE_URL=<your ollama url> :一般为本机地址+11434,如:192.168.1.332:11434
  • OPENAI_API_KEYS=s<your openai key>:可选。openai的代理地址
  • OPENAI_API_KEYS=s<your openai key>:可选。如果需要用大openai
  • -v /home/leolee/open-webui:目录地址,作为持久化存储用户配置用

运行成功后,在docker desktop的容器中,就可以看到了:

访问docker暴露的地址,就可以访问open-webui了。注意,第一次使用,需要注册,直接用邮箱注册一个就可以了。

设置模型

第一次使用需要在设置-模型管理,添加Ollama模型。模型列表看这里:https://ollama.com/library。 在输入框直接输入想要的模型即可,会自动下载并启用。

测试模型

我们选择一个模型,如刚下载的qwen-14b,就可以进行对话了。

实测下来,qweb14b占用显存太高了,我们还是用llama3了🥱

部署SearXNG

SearXNG是一个黑科技项目,可以调用主流搜索引擎,搜索结果,为我所用。 项目地址:https://github.com/searxng/searxng 因为需要自定义一些配置,跟open-webui进行配合,我们需要使用wsl2,做一些简单配置后,通过docker打包镜像并运行。

拉取项目

进入wsl2,拉取镜像:

git clone https://github.com/searxng/searxng.git

Searxng配置

在与您的compose文件相同的目录中创建一个名为searxng的文件夹,就是上一步拉取项目的文件夹。此文件夹将包含您的Searxng配置文件。有关配置说明,请参考Searxng文档。

修改配置文件: searchxng/settings.yml

# 参见 https://docs.searxng.org/admin/settings/settings.html#settings-use-default-settings 
use_default_settings: true

server:
  secret_key: "f9e603d4191caab069b021fa0568391a33c8a837b470892c64461b5dd12464f4"
  limiter: false
  image_proxy: true
  port: 8080
  bind_address : "0.0.0.0"

ui:
  static_use_hash: true

search:
  safe_search: 0
  autocomplete: ""
  default_lang: ""
  formats:
    - html
    - json

特别提醒:formats: 字段下,一定要添加json格式,不然会报403错误。

构建镜像

make docker.build

经过一段时间,会构建成功。

运行镜像

打开docker desktop会看到已经构建好的镜像。

docker run -d --name searxng -p 8080:8080 -v ./searxng:/etc/searxng --restart always searxng/searxng::2024.5.31-18fb701be

测试一下SearXNG

打开docker暴露的地址:localhost:8080 就可以访问searxng了。 随便输入个问题,速度还是很快的,视频和图片、文件、学术结果都有,非常全面,nice~。

至此,SearXNG的搜索引擎已经部署成功了,欢呼一下~ 🍻

Open-WebUI配置

接下来回到Open-WebUI。 要设置互联网搜索功能,需要在【工作空间】-【文档设置】-【网络爬取设置】

按照我的设置就可以了。

最后记得在对话时,打开网络搜索开关。

效果演示

正如文章开通所看到的,效果不错,可以帮助我们快速搜索信息、整理信息。

我们下期见~

关注我公众号(设计小站):sjxz00,获取更多AI辅助设计和设计灵感趋势。

标签