Perplexica:开源的 AI 搜索引擎,Perplexity 的自托管平替

Perplexica:开源的 AI 搜索引擎,Perplexity 的自托管平替

智能体

📖 简介

Perplexica 是开源的 AI 搜索引擎,融合 SearXNG 网页检索与本地 LLM 重写答案,支持焦点模式与多模型接入,数据完全自托管,Perplexity 的隐私友好替代品。

📝 详细介绍

Perplexica:把 Perplexity 拆开,用 Docker 装回自己服务器

Perplexity 这类 AI 搜索工具确实好用,但每次搜索都要把 query 发给第三方服务,还要忍受响应慢和配额限制。Perplexica 解决了这个问题——它是一个完全自托管的 AI 搜索引擎,把大模型检索增强生成(RAG)和实时网络搜索结合,部署在自己服务器上,数据不外流,也没有 token 焦虑。它不是一个 demo 级的玩具,而是生产可用的工具。

指标数据
Stars9.8k
主要语言TypeScript
开源协议MIT
最近更新2024-11-20
Contributors42

项目背景

开发者 ItzCrazyKns 在 2024 年 5 月启动了这个项目。他的痛点很直接:Perplexity 的 AI 搜索体验虽好,但用户无法定制 —— 不能选择自己的 LLM,不能用本地模型,数据全部经过服务器。Perplexica 的目标是做一个 开源、可自托管、支持本地 LLM 的 AI 搜索引擎,且不牺牲搜索质量。项目推出后很快获得社区认可,目前 Stars 接近 10k,这在 AI 搜索赛道里算是一匹黑马。

核心功能解析

1. 多模式搜索:不同任务不同检索策略

Perplexica 内置了多种搜索模式(类似 Perplexity 的 Focus 功能),每种模式对应不同的提示词模板和搜索策略:

  • All:综合模式,在所有来源中搜索,类似普通搜索引擎
  • Academic:针对学术论文,优先抓取 arXiv 和学术数据库
  • Reddit:从讨论帖中检索,适合社区经验类问题
  • Video:搜索 YouTube 并总结视频字幕

切换模式本质上是更换了聚合提示词,这意味着你可以自己扩展新模式。这个设计很干净,把系统的可变性收敛到了配置文件里,不需要改主逻辑。

2. 自选 LLM 后端:从 OpenAI 到本地模型

通过集成 LiteLLM(一个统一 LLM API 的网关),Perplexica 支持切换任意模型提供商:

# config.toml 中的 LLM 配置示例
[llm]
provider = "ollama"          # 可选 openai / anthropic / ollama
model = "llama3.1:8b"        # 本地模型
endpoint = "http://localhost:11434"

如果你不想把数据发给任何商业 API,配置为本地 Ollama 模型即可实现 完全私有的搜索。这个细节让 Perplexica 跟那些"开源但依赖云端 API"的竞品拉开差距。

3. 持续的会话记忆

Perplexica 给每个聊天会话保存了历史记录,上下文管理由后端处理。这意味着你可以问"刚才那个问题的来源是什么?",它知道你在说什么。作为 AI 搜索工具,没有记忆的搜索引擎交互性是很差的,这个功能属于基本款,但实现得扎实。

快速上手

官方提供了多阶段构建的 Dockerfile,而且镜像体积控制得不错,部署走通了就不会有意外风险。核心启动步骤只有两条命令:

# 1. 克隆仓库并进入目录
git clone https://github.com/ItzCrazyKns/Perplexica && cd Perplexica

# 2. 用 Docker Compose 启动(默认带上 SearXNG 搜索后端)
docker compose up -d

首次启动需要等待容器拉取 SearXNG(用于无 API 的常规网页搜索)。启动后访问 http://localhost:3000 即可。如果要用非默认的 LLM,编辑 config.toml 后重启容器即可生效。

技术亮点

架构:SearXNG + RAG 两层检索

Perplexica 没有自己爬虫,而是把 SearXNG(一个开源元搜索引擎)作为后端。这样做的好处是:不需要处理搜索 API 的配额和封禁,而是聚合了 Google/Bing/DuckDuckGo 等 70+ 来源的结果。对自托管项目来说,这是聪明的取舍——把非核心的复杂系统外包给成熟组件。

查询重写与结果重排

系统中有一个关键环节:用户查询不是直接发给搜索后端,而是先通过 LLM 进行重写(rewrite),提炼出更精确的搜索关键词。获取结果后,还有一个重排(re-rank)阶段,把相关结果按与用户原始意图的匹配度排序。这一段链路是有实际价值的——直接搜索多义词往往得到不相关的信息,经过 LLM 重写后能提升命中率。

嵌入与向量库

Perplexica 用 ollama 或 OpenAI 的 embedding 接口生成查询向量,再在本地向量数据库(默认是 LanceDB)中做语义相似度匹配。这样可以实现跨文档的主题聚类和引用定位,不只是靠关键词匹配。这套设计不算前沿,但对一个自托管项目来说,工程上是完整且可控的。

同类对比

特性PerplexicaPerplexity (SaaS)SearXNGLibreChat
AI 搜索✅ 原生支持✅ 核心功能❌ 仅聚合结果⚠️ 需自行组合
本地 LLM 支持✅ Ollama 直接集成❌ 不可用N/A✅ 支持
自托管✅ Docker 一键
数据隐私✅ 流量可控❌ 全部走云端
部署复杂度中(需要 Docker + 模型配置)
查询重写/重排✅ 内置✅ 内置
扩展性高(MIT 开源可改)插件化高,但搜索偏弱

简单来说,SearXNG 只是无 AI 的搜索代理,而 LibreChat 更多是聊天前端,搜索能力需要自己接。Perplexica 是两者之间的缝合方案,而且缝合得很自然。

总结

Perplexica 适合以下人群:需要 AI 搜索能力但无法信任云端服务的团队、有本地模型资源并想省 API 费用的开发者、以及对搜索流程有自定义需求的技术用户。

一句话:Perplexica 是 Perplexity 的开源自我替代品,架构选型务实,部署简单,生产可用;如果你需要一个完全掌控的 AI 搜索引擎,这是目前最接近"装上就能用"的选择。
🚀

AI 项目推荐

智能体
标签
#AI搜索 #知识库 #RAG #开源
浏览
👁️ 16
发布日期
2026-08-30