自建Perplexica(开源版Perplexity)

之前刷论坛看到了这个项目,感觉可以在pplx不能c后作为替代
于是部署了一下并写了个部署教程,方便各位参考

自建Perplexica

Perplexica 是开源的Perplexity替代品,一个AI驱动的搜索引擎

写在安装前的话

注意,本项目使用到的searxng需要连接google等搜索引擎,需要开全局魔法!

需要提前准备好nginxnew-api,还需要一个域名

下面假设你的域名是xx.com,并且new-api.xx.com已经正确的反代理到new-api上面了

设置dns

在域名dns控制面板新增两个子域名:searxng.xx.compplx.xx.com

设置nginx

我这里为了偷懒,nginx使用的是nginx-proxy-manager-zh,这里假设你服务器的内网ip是192.168.50.2

开始部署

  • 克隆 Perplexica 仓库

    • git clone https://github.com/ItzCrazyKns/Perplexica.git
      
  • 克隆后,进入至包含项目文件的目录

  • sample.config.toml 文件重命名为 config.toml

    • 编辑config.toml

    • [API_KEYS]
      OPENAI = ""
      GROQ = ""
      ANTHROPIC = ""
      
      [API_ENDPOINTS]
      OLLAMA = ""
      SEARXNG = "https://searxng.xx.com"
      
      [GENERAL]
      PORT = 3_001
      SIMILARITY_MEASURE = "cosine"
      
  • 编辑docker-compose.yaml

    • services:
        searxng:
          image: docker.io/searxng/searxng:latest
          volumes:
            - ./searxng:/etc/searxng:rw
          ports:
            - 8080:8080
          networks:
            - perplexica-network
          restart: unless-stopped
      
        perplexica-backend:
          build:
            context: .
            dockerfile: backend.dockerfile
          image: itzcrazykns1337/perplexica-backend:main
          environment:
            - SEARXNG_API_URL=http://192.168.50.2:8080
          depends_on:
            - searxng
          ports:
            - 3001:3001
          volumes:
            - backend-dbstore:/home/perplexica/data
            - ./config.toml:/home/perplexica/config.toml
          extra_hosts:
            - 'host.docker.internal:host-gateway'
          networks:
            - perplexica-network
          restart: unless-stopped
      
        perplexica-frontend:
          build:
            context: .
            dockerfile: app.dockerfile
            args:
              - NEXT_PUBLIC_API_URL=https://pplx.xx.com/api
              - NEXT_PUBLIC_WS_URL=wss://pplx.xx.com/ws
          image: itzcrazykns1337/perplexica-frontend:main
          depends_on:
            - perplexica-backend
          ports:
            - 3000:3000
          networks:
            - perplexica-network
          restart: unless-stopped
      
      networks:
        perplexica-network:
      
      volumes:
        backend-dbstore:
      
  • 部署(注意!必须自己构建镜像)

    sudo docker compose up -d --build
    

然后你就可以打开https://pplx.xx.com,查看是否可以正常显示了

如果部署正确,你可以看到类似于下图的界面

设置ai

打开上图左下角的齿轮图标,设置

分别填写你想要使用的ai模型名称(名称请以new-api中显示的为准),api的密钥和bash_url

注意,bash_url请写成https://new-api.xx.com/v1

103 个赞

mark一下,感谢

4 个赞

这个现在好用吗?

3 个赞

还行?这是gemini-1.5-flash的效果

这是gpt-4o-mini的效果

6 个赞

有没有那种可以用别人搭建好的 自己填写 第三方的

5 个赞

emmmmm,我没见到

7 个赞

实话实说,一般

2 个赞

确实比不上pplx,但是我感觉比open-webui的联网搜索强太多了

不知道有没有别的更好的项目

2 个赞

这个要连接google搜索,国内无法使用

3 个赞

见鬼,把最重要的事情给忘记写在前言里面了
image

9 个赞

我个人感觉目前自建的使用效果都不太理想,每个模块都是割裂的,能用但是和普通的元搜索比没优势。绝大部份的问题AI知识库回答更快更准确,需要检索的再根据语言选择国内外的知名ai搜索引擎,比如中文内容,国内的AI引擎可以检索微信公众号,知乎,小红书,豆瓣等,自建根本搜不到,差别太大了

6 个赞

楼主,这两个参数为啥我加到前端的environment:里不起效果,我不想自己构建镜像,想直接从网络拉取现成的结果后的的api是写死的,我加了environment:也没用,后端还是请求127.0.0.1:3001

2 个赞

只能自己构建镜像,没别的方案
image

2 个赞

给我气乐了,怎么能这么无语

1 个赞

我也很无语,一开始改了半天环境变量没效果,去看了文档才发现得自己构建

所以写了这个教程,方便后人避坑

3 个赞

后端应该能用现成的吧,我看它是吃参数的

edu整的一年pplx还在

1 个赞

建议在教程里说明这一点,还是有坑 :bili_034: :bili_034:

1 个赞

文档没写可以

1 个赞

太强了!大佬!

2 个赞