자체 호스팅 Perplexica - Ollama와 함께
로컬에서 코파일럿 스타일 서비스를 실행하나요? 간단하죠!
이것은 매우 흥미로운 일입니다!
Copilot이나 perplexity.ai를 호출하고 세상에 당신이 무엇을 원하는지 말하는 대신,
이제 자신의 PC나 강력한 노트북에서 유사한 서비스를 호스팅할 수 있습니다!
이 것이 무엇인지
Perplexica는 Copilot과 perplexity.ai와 유사한 시스템입니다.
- 질문을 하면
- AI가 인터넷에서 답변을 검색합니다 (검색할 위치를 지정할 수 있습니다: 학술 논문, 글, YouTube, Reddit 등)
- 그런 다음 AI는 찾은 모든 내용을 요약합니다
- 원본 웹사이트의 참조를 함께 표시합니다
- 오른쪽에는 이미지와 YouTube 동영상 목록도 있습니다
- 또한 주제를 더 깊이 탐구하고 싶다면 클릭할 수 있는 추가 질문 목록도 있습니다
이러한 시스템은 클라우드에 호스팅되어 있으며, 일부 기업(예: Microsoft 또는 Meta)에 속해 있습니다.
Perplexica는 PC 또는 강력한 노트북에 설치할 수 있는 오픈소스 소프트웨어입니다.
로컬 Ollama와 vLLM, Docker Model Runner, LocalAI 및 클라우드 제공업체 간의 비교를 포함해 더 넓은 비교를 원하시면 LLM 호스팅: 로컬, 자체 호스팅 및 클라우드 인프라 비교를 참조하세요.
여기서 우리는 Perplexica가 채팅 모델 llama3.1 8b q6과 jina Embedding 모델을 사용하여 질문 Who is Elon Mask?에 대한 응답을 보고 있습니다.
Perplexica는 여러 모듈로 구성되어 있습니다.
- SearxNG - 메타검색 엔진입니다. 다른 검색 엔진 10개 이상을 호출하여 결과를 얻기 때문에 Perplexica는 그 결과들을 결합할 수 있습니다.
SearxNG는 자체적으로 매우 구성 가능하며, 각 엔진을 켜고 끌 수 있고 새로운 엔진을 추가할 수 있습니다.
그러나 우리의 목적에 맞게 기본 구성은 잘 작동합니다. - Perplexica 백엔드 및 프론트엔드. 기술적으로 이 두 모듈은 별도로, 하나는 API를 제공하고, 다른 하나는 UI를 제공합니다.
- Ollama 서비스 - Perplexica 프로젝트의 일부가 아니지만, 로컬에 LLM을 호스팅하고 싶다면 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 설치 및 구성
Perplexica와 함께 다른 Ollama 모델 사용 방법에 대한 자세한 내용은 아래의 ‘다른 Ollama 모델 설치’ 섹션을 참조하세요.
Perplexica 설치
저는 Linux에 Docker화된 Perplexica를 설치했지만, Windows 또는 Mac에서도 매우 유사한 docker-compose를 사용할 수 있습니다.
시작해볼까요!
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
config 파일을 편집하세요:
nano config.toml
Docker 설정의 경우, 다음 필드만 채우면 됩니다:
OLLAMA: Ollama API URL을 입력하세요.
이를 http://host.docker.internal:PORT_NUMBER 형식으로 입력해야 합니다.
Ollama를 11434 포트에 설치했다면 http://host.docker.internal:11434를 사용하세요.
다른 포트를 사용하는 경우, 그에 따라 조정하세요.
Perplexica 디렉토리에 머무르면서 다음을 실행하세요:
docker compose up -d
이 명령은 SearxNG 및 기본 노드 Docker 이미지를 끌어오고, 두 개의 Perplexica Docker 이미지를 빌드한 후 3개의 컨테이너를 시작합니다.
설치가 완료될 때까지 몇 분 정도 기다려주세요.
웹 브라우저에서 http://localhost:3000을 통해 Perplexica에 액세스할 수 있습니다.
설정으로 이동하세요. 왼쪽 하단에 있는 Cog 아이콘을 클릭하고, 원하는 Ollama 모델을 선택하세요.

여기서 채팅 모델로 선택된 것은 llama3.1:8b-instruct-q6_K (Llama 3.1 8b, quantization q6_K),
임베딩 모델은 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억 개의 파라미터와 quantization 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 이중언어.
이들은 충분히 잘 작동하지만, 다른 임베딩 모델을 시도해 보는 것도 좋습니다.
이전 섹션에서 설치한 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
docker-compose.yaml에 Perplexica 서버의 IP 주소를 입력하세요:
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는 perplexity.ai와 Copilot 시스템의 대안으로, 사용자가 자신의 컴퓨터에서 자체 호스팅 가능한 AI 검색 엔진입니다.
-
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 호스팅: 로컬, 자체 호스팅 및 클라우드 인프라 비교 가이드를 참조하세요.