Ollama 를 활용한 Perplexica 자체 호스팅
로컬에서 코파일럿 스타일 서비스를 실행하시나요? 간단합니다!
정말 흥미진진합니다!
코파일럿 (Copilot) 이나 perplexity.ai 에 접속하여 전 세계에 당신의 의도를 알릴 필요 없이, 이제 자신의 PC 나 노트북에서 유사한 서비스를 직접 호스팅할 수 있습니다!
Perplexica 는 코파일럿과 Perplexity.ai 와 유사한 시스템입니다.
- 질문을 던집니다.
- AI 가 인터넷을 통해 답변을 검색합니다 (검색 범위를 지정할 수 있습니다: 학술 논문, 글쓰기, YouTube, Reddit 등).
- AI 가 찾은 모든 정보를 요약합니다.
- 원래 웹사이트에 대한 참조 자료와 함께 결과를 제시합니다.
- 또한 우측에 이미지와 YouTube 동영상 목록을 제공합니다.
- 주제를 더 깊이 탐구하고 싶다면 클릭할 수 있는 후속 질문들도 준비되어 있습니다.
이러한 시스템들은 클라우드에 호스팅되어 있으며 특정 기업 (예: Microsoft 나 Meta) 에 소속되어 있습니다. Perplexica 는 PC 나 강력한 노트북에서 호스팅할 수 있는 오픈 소스 소프트웨어입니다.
동일한 업스트림 코드베이스는 현재 Vane으로 배포되고 있으며, 이름이 변경된 프로젝트에 맞춰진 최신 Docker 이미지, SearxNG, 로컬 추론 경로를 보려면 Vane (Perplexica 2.0) Quickstart With Ollama and llama.cpp 를 참조하세요.
로컬 Ollama 와 vLLM, Docker Model Runner, LocalAI 및 클라우드 제공업체 간의 광범위한 비교 (비용 및 인프라 트레이드오프 포함) 를 보려면 LLM 호스팅: 로컬, 자체 호스팅 및 클라우드 인프라 비교 를 참조하세요.
여기서 Who is Elon Mask?라는 질문에 대한 Chat 모델 llama3.1 8b q6 과 jina Embedding 모델을 사용한 Perplexica 의 응답을 볼 수 있습니다.
Perplexica 는 여러 모듈로 구성되어 있습니다.
- SearxNG - 메타 검색 엔진입니다. 10 개 이상의 다른 검색 엔진을 호출하여 결과를 얻으므로 Perplexica 는 이를 통합할 수 있습니다. SearxNG 는 자체적으로 매우 구성 가능하며 각 엔진을 켜거나 끌 수 있고 새로운 엔진을 추가할 수도 있습니다. 하지만 우리의 목적에는 기본 설정이 잘 작동합니다.
- Perplexica 백엔드 및 프론트엔드. 기술적으로 이는 두 개의 별도 모듈로, 하나는 API 를 제공하고 다른 하나는 UI 를 제공합니다.
- Ollama 서비스 - Perplexica 프로젝트의 일부는 아니지만, LLM 을 로컬에서 호스팅하려면 Ollama 를 사용하는 것이 유일한 방법입니다.
따라서 전체 시스템 설치는 두 가지 큰 단계로 구성됩니다:
- Ollama 설치 및 Ollama 모델 다운로드
- SearxNG 와 함께 Perplexica 설치
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 설치 및 구성
Perplexica 와 함께 다른 Ollama 모델 사용에 대한 자세한 내용은 아래의 ‘다른 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 형식으로 입력해야 합니다.
Ollama 를 포트 11434(기본값) 에 설치했다면 http://host.docker.internal:11434 을 사용하세요. 다른 포트의 경우 accordingly 조정하세요.
Perplexica 디렉터리에 여전히 있는 상태에서 다음을 실행합니다:
docker compose up -d
이 명령은 SearxNG 와 기본 node Docker 이미지를 가져오고, 두 개의 Perplexica Docker 이미지를 빌드하며, 3 개의 컨테이너를 시작합니다. 설정이 완료될 때까지 몇 분 기다리세요.
웹 브라우저에서 http://localhost:3000 에서 Perplexica 에 접속할 수 있습니다.
설정으로 이동합니다. 아시죠? 왼쪽 하단의 톱니바퀴 아이콘을 클릭하여 Ollama 모델을 선택합니다.

여기서 Chat 모델로 llama3.1:8b-instruct-q6_K (양자화 q6_K 를 사용한 Llama 3.1 8b) 가 선택되어 있고, 임베딩 모델로 nomic-embed-text:137m-v1.5-f16 이 선택된 것을 볼 수 있습니다.
원하는 경우 라이트 또는 다크 테마 중 하나를 선택할 수도 있습니다.
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 Small, GTE Small, Bert bilingual) 이 사전 설치되어 있습니다. 이 모델들은 나쁘지 않게 작동하지만, 다른 임베딩 모델을 시도해 보고 싶을 수도 있습니다.
위 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 업데이트
Docker 에서 실행 중인 Perplexica:
# 중지하고 모든 컨테이너를 제거합니다 (!!! 필요한 경우에만)
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
FAQ
-
Q: Perplexica 란 무엇인가요?
-
A: Perplexica 는 사용자가 컴퓨터에서 로컬로 자체 검색 엔진을 실행할 수 있는 무료 자체 호스팅 AI 검색 엔진이며, perplexity.ai 및 Copilot 시스템의 대안입니다.
-
Q: Ollama 와 함께 Perplexica 를 설치하고 설정하는 단계는 무엇인가요?
-
A: 단계에는 Ollama 설치, 모델 가져오기, 그리고 Perplexica 설치가 포함됩니다.
-
Q: Perplexica 에서 사용할 수 있는 커스터마이징 옵션은 무엇인가요?
-
A: 옵션에는 LLama 3.1, Mistral Nemo 또는 Gemma2 와 같은 다양한 모델 선택, 로컬 임베딩 모델 설정, 뉴스, 학술 논문, YouTube 동영상 및 Reddit 포럼과 같은 다양한 검색 옵션 탐색이 포함됩니다.
-
Q: Perplexica 와 함께 어떤 Ollama 모델을 사용해야 하나요?
-
A: 테스트에서 가장 좋은 결과를 얻은 것은 Perplexica 를 llama3.1:8b-instruct-q6_K 와 jina/jina-embeddings-v2-base-en:latest 와 함께 실행했을 때였습니다.
Ollama (Perplexica 의 일반적인 백엔드) 가 vLLM, Docker Model Runner, LocalAI 및 클라우드 제공업체와 어떻게 통합되는지 보려면 LLM 호스팅: 로컬, 자체 호스팅 및 클라우드 인프라 비교 가이드를 확인하세요.