使用 Ollama 自托管 Perplexica
本地运行类似 Copilot 的服务?轻松!
这非常令人兴奋!
与其调用 Copilot 或 Perplexity.ai 并告诉全世界你想要什么,
你现在可以在自己的 PC 或笔记本电脑上运行类似的服务!
这是什么
Perplexica 是一个类似于 Copilot 和 Perplexity.ai 的系统。
- 你提出一个问题
- AI 在互联网上搜索答案(你可以指定搜索范围:学术论文、写作、YouTube、Reddit 等)
- 然后 AI 总结所有找到的信息
- 然后以引用原始网页的方式呈现结果
- 右侧还会列出图片和 YouTube 视频
- 还有准备好的后续问题供你点击,如果你想进一步探索该主题
这些系统是托管在云端的,属于某些公司(例如,微软或 Meta)。 Perplexica 是一个开源软件,你可以在自己的 PC 或强大的笔记本电脑上运行。
在这里我们看到 Perplexica 使用 Chat 模型 llama3.1 8b q6 和 jina Embedding 模型对问题
Who is Elon Mask?
的响应。
Perplexica 由几个模块组成:
- SearxNG - 元搜索引擎。它会调用 10 多个其他搜索引擎来获取结果,因此 Perplexica 可以将它们结合起来。 SearxNG 本身非常可配置,你可以开启或关闭每个引擎并添加新的引擎。 但就我们的目的而言,默认配置已经很好。
- Perplexica 后端和前端。从技术上讲,这两个是独立的模块,一个是提供 API,另一个是用户界面。
- Ollama 服务 - 虽然不属于 Perplexica 项目,但如果你想在本地运行 LLMs,Ollama 是唯一的方法。
整个系统的安装包括两个主要步骤:
- 安装 Ollama 并下载 Ollama 模型
- 安装 Perplexica 和 SearxNG
安装 Ollama
开始使用 Ollama,请按照以下步骤操作:
运行脚本安装 Ollama:
curl -fsSL https://ollama.com/install.sh | sh
告诉 Ollama 下载你最喜欢的 LLM。如果是 Llama3.1 8b q4 - 运行脚本:
ollama pull llama3.1:latest
使用以下命令拉取最新版本的 Nomic-Embed-Text 作为嵌入模型(如果你喜欢的话):
ollama pull nomic-embed-text:latest
通过运行以下命令编辑 Ollama 服务文件:
sudo systemctl edit ollama.service
添加以下行以将 Ollama 暴露在网络上(Perplexica 需要从 Docker 内部连接到它):
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
重新加载 systemd 守护进程并重启 Ollama 服务:
sudo systemctl daemon-reload
sudo systemctl restart ollama
检查 Ollama 是否成功启动:
systemctl status ollama.service
sudo journalctl -u ollama.service --no-pager
有关如何安装、更新和配置 Ollama 的详细描述,请参见: 安装和配置 Ollama
有关 使用其他 Ollama 模型与 Perplexica 的详细信息,请参见下面的“安装其他 Ollama 模型”部分。
安装 Perplexica
我在 Linux 上安装了 Docker 化的 Perplexica,但非常相似的 docker-compose 也可以在 Windows 或 Mac 上使用。
我们开始吧!
使用 Docker 的入门(推荐) 确保你的系统上已安装并运行 Docker。
克隆 Perplexica 仓库:
git clone https://github.com/ItzCrazyKns/Perplexica.git
克隆后,导航到包含项目文件的目录。
cd Perplexica
将 sample.config.toml 文件重命名为 config.toml。 如果你打算以后更新 Perplexica - 通过 git pull 更新这个仓库 - 那么只需 将 sample.config.toml 文件复制到 config.toml
cp sample.config.toml config.toml
编辑配置文件
nano config.toml
对于 Docker 设置,你只需要填写以下字段:
OLLAMA: 你的 Ollama API URL。
你应该将其输入为 http://host.docker.internal:PORT_NUMBER。
如果你在端口 11434 上安装了 Ollama(这是默认端口),使用 http://host.docker.internal:11434。 对于其他端口,请相应调整。
当你仍在 Perplexica 目录中时,执行以下命令:
docker compose up -d
它将拉取 SearxNG 和基础节点的 Docker 镜像,构建两个 Perplexica Docker 镜像并启动 3 个容器。 等待几分钟以完成设置。
你可以在浏览器中通过 http://localhost:3000 访问 Perplexica。
前往设置。你懂的 - 左下角的齿轮图标,选择你的 Ollama 模型
在这里你可以看到选择的聊天模型是 llama3.1:8b-instruct-q6_K(带量化 q6_K 的 Llama 3.1 8b), 以及嵌入模型 nomic-embed-text:137m-v1.5-fp16。
你也可以选择浅色或深色主题,看你更喜欢哪一个。
Perplexica 的搜索选项(点击这个框图标中的眼睛),在深色主题下:
安装其他 Ollama 模型
你已经在“安装 Ollama”部分之前安装了模型 llama3.1:latest 和 nomic-embed-text:latest。
你只需要一个聊天模型,但有很多模型可用。 它们的行为略有不同, 建议从最常见的开始: Llama3.1、Gemma2、Mistral Nemo 或 Qwen2。
聊天模型
你在安装部分看到的聊天模型的全名 - llama3.1:latest 是 llama3.1:8b-text-q4_0。 这意味着它有 80 亿个参数和量化 4_0。 它速度快且相对较小(4.8GB),但如果你的 GPU 有一些额外的内存,我建议你尝试
- llama3.1:8b-instruct-q6_K(6.7GB) - 在我的测试中,它的响应 好得多,但稍慢一些。
- llama3.1:8b-instruct-q8_0(8.5GB) - 或者可能是这个。
总的来说,llama3.1:8b 组的所有模型都相对较快。
你可以使用以下脚本尝试我推荐的模型:
ollama pull llama3.1:8b-instruct-q6_K
ollama pull llama3.1:8b-instruct-q8_0
与 Llama3.1:8b 相比,Gemma2 会产生更简洁和艺术的响应。尝试这些:
# 9.8GB
ollama pull gemma2:9b-instruct-q8_0
# 14GB
ollama pull gemma2:27b-instruct-q3_K_L
Mistral Nemo 模型的响应介于 gemma2 和 llama3.1 之间。
# 默认模型,7.1GB
ollama pull mistral-nemo:12b-instruct-2407-q4_0
# 10GB
ollama pull mistral-nemo:12b-instruct-2407-q6_K
# 13GB
ollama pull mistral-nemo:12b-instruct-2407-q8_0
你可能还想尝试 Qwen2 模型
# 默认模型,4.4GB
ollama pull qwen2:7b-instruct-q4_0
# 8.1GB
ollama pull qwen2:7b-instruct-q8_0
我最喜欢的是:llama3.1:8b-instruct-q6_K 和 mistral-nemo:12b-instruct-2407-q8_0。
要查看 Ollama 本地仓库中的模型:
ollama list
要删除一些不需要的模型:
ollama rm qwen2:7b-instruct-q4_0 # 例如
嵌入模型
你可以跳过安装这些模型,Perplexica 已预装了 3 个嵌入模型:BGE 小型、GTE 小型和 Bert 双语。 它们表现不错,但你可能想尝试其他嵌入模型。
在上面的 Ollama 安装部分中,你安装了 nomic-embed-text:latest 嵌入模型,这是一个很好的模型,但我建议你也尝试:
ollama pull jina/jina-embeddings-v2-base-en:latest
# 和
ollama pull bge-m3:567m-fp16
我最喜欢的是 jina/jina-embeddings-v2-base-en:latest,但你自己也试试看吧。
Perplexica 网络安装
如果你在网络服务器上安装它,那么在运行
docker compose up -d
或者如果你已经在运行 Perplexica,并且需要重新构建镜像
# 停止并删除所有容器(!!! 仅在需要时)
docker compose down --rmi all
将你的 Perplexica 服务器 IP 地址放入 docker-compose.yaml: 然后在
nano docker-compose.yaml
perplexica-frontend:
build:
context: .
dockerfile: app.dockerfile
args:
- NEXT_PUBLIC_API_URL=http://127.0.0.1:3001/api # << 这里
- NEXT_PUBLIC_WS_URL=ws://127.0.0.1:3001 # << 这里
depends_on:
- perplexica-backend
现在启动 Perplexica 和 SearxNG 容器:
docker compose up -d
或者重新构建并启动:
docker compose up -d --build
更新 Perplexica
Perplexica 运行在 Docker 上:
# 停止并删除所有容器(!!! 仅在需要时)
docker compose down --rmi all
# 导航到项目文件夹
# 在安装期间克隆 perplexica 的位置
cd Perplexica
# 拉取更新
git pull
# 更新并重新构建 Docker 容器:
docker compose up -d --build
对于非 Docker 安装,请参见:https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md
常见问题
-
Q: 什么是 Perplexica?
-
A: Perplexica 是一个免费的自托管 AI 搜索引擎,是 perplexity.ai 和 Copilot 系统的替代方案,允许用户在自己的计算机上本地运行自己的搜索引擎。
-
Q: 安装和设置 Perplexica 与 Ollama 的步骤是什么?
-
A: 步骤包括安装 Ollama、拉取模型,然后安装 Perplexica。
-
Q: Perplexica 有哪些定制选项?
-
A: 选项包括选择不同的模型,如 LLama 3.1、Mistral Nemo 或 Gemma2,设置本地嵌入模型,并探索各种搜索选项,如新闻、学术论文、YouTube 视频和 Reddit 论坛。
-
Q: 与 Perplexica 一起使用哪个 Ollama 模型?
-
A: 在我们的测试中,使用 llama3.1:8b-instruct-q6_K 和 jina/jina-embeddings-v2-base-en:latest 时,我们得到了最好的结果。
有用的链接
- Ollama 上的 Qwen3 嵌入和重排序模型:最先进的性能
- 测试:Ollama 如何使用 Intel CPU 性能和高效核心
- Ollama 如何处理并行请求
- 在 Ollama 上测试 Deepseek-r1
- Perplexica 网站上的安装说明:https://github.com/ItzCrazyKns/Perplexica
- 将 Perplexica 暴露在网络上
- LLM 速度性能比较
- 安装 Ollama 并将 Ollama 模型移动到不同文件夹
- 比较 LLM 的摘要能力
- LLMs 比较:Mistral Small、Gemma 2、Qwen 2.5、Mistral Nemo、LLama3 和 Phi
- Ollama 快速参考