Ollama를 사용한 Perplexica 자체 호스팅
로컬에서 코파일럿 스타일 서비스를 실행하나요? 간단합니다!
정말 흥미롭습니다! 이제 Copilot이나 perplexity.ai에 모든 세상에 당신이 원하는 것을 말하는 대신, 자신의 PC 또는 랩탑에 유사한 서비스를 호스팅할 수 있습니다!
무엇인지
Perplexica는 Copilot과 Perplexity.ai와 유사한 시스템입니다.
- 질문을 합니다
- AI는 인터넷에서 답변을 검색합니다 (검색할 위치를 지정할 수 있습니다: 학술 논문, 글쓰기, 유튜브, Reddit 등)
- 그런 다음 AI는 찾은 모든 내용을 요약합니다
- 그 다음 원본 웹사이트로의 참조와 함께 결과를 제시합니다
- 또한 오른쪽에는 이미지와 유튜브 영상 목록이 있습니다
- 또한 주제를 더 깊이 탐구하고 싶다면 클릭할 수 있는 후속 질문 목록도 있습니다
이러한 시스템은 클라우드에 호스팅되어 있고 어떤 회사(예: Microsoft 또는 Meta)에 속해 있습니다. Perplexica는 자신의 PC 또는 강력한 랩탑에 호스팅할 수 있는 오픈소스 소프트웨어입니다.
여기에서 우리는 Perplexica의 Chat 모델 llama3.1 8b q6과 jina Embedding 모델을 사용하여 질문
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는 도커 내부에서 이를 연결해야 합니다)
[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에 도커화된 Perplexica를 설치했지만, Windows 또는 Mac에서도 매우 유사한 docker-compose를 사용할 수 있습니다.
시작해 보겠습니다!
도커 사용 (권장) 시스템에서 도커가 설치되고 실행되고 있는지 확인하세요.
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
도커 설정의 경우, 다음 필드만 채우면 됩니다:
OLLAMA: Ollama API URL.
http://host.docker.internal:PORT_NUMBER로 입력해야 합니다.
Ollama를 11434 포트에 설치했다면 (기본값), http://host.docker.internal:11434를 사용하세요. 다른 포트라면 적절히 조정하세요.
Perplexica 디렉토리에 있는 경우, 다음을 실행하세요:
docker compose up -d
이 명령어는 SearxNG 및 기초 노드 도커 이미지를 끌어오고, 두 개의 Perplexica 도커 이미지를 빌드하고 3개의 컨테이너를 시작합니다. 설치가 완료될 때까지 몇 분 정도 기다려야 합니다.
웹 브라우저에서 http://localhost:3000을 통해 Perplexica에 접근할 수 있습니다.
설정으로 이동하세요. 왼쪽 하단의 Cog 아이콘을 클릭하고, Ollama 모델을 선택하세요
여기서는 Chat 모델로 llama3.1:8b-instruct-q6_K (Llama 3.1 8b, quantization q6_K)가 선택되어 있고, Embedding 모델로 nomic-embed-text:137m-v1.5-fp16이 선택되어 있습니다.
또한, 더 선호하는 테마인 Light 또는 Dark 테마를 선택할 수도 있습니다.
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 이중언어. 그들은 괜찮은 성능을 보이지만, 다른 임베딩 모델을 시도해 보는 것도 좋습니다.
위에서 Ollama 설치 섹션에서 nomic-embed-text:latest 임베딩 모델을 설치했습니다. 이는 좋은 모델이지만, jina/jina-embeddings-v2-base-en:latest와 bge-m3:567m-fp16도 시도해 보는 것이 좋습니다.
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
도커가 아닌 설치 방법은 여기에서 확인하세요: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md
FAQ
-
Q: Perplexica란 무엇인가요?
-
A: Perplexica는 무료로 호스팅할 수 있는 AI 검색 엔진이며, perplexity.ai 및 Copilot 시스템의 대안으로, 사용자가 자신의 컴퓨터에 로컬에서 검색 엔진을 실행할 수 있도록 합니다.
-
Q: Perplexica를 Ollama와 함께 설치하고 설정하는 단계는 무엇인가요?
-
A: 단계에는 Ollama 설치, 모델 끌어오기, Perplexica 설치가 포함됩니다.
-
Q: Perplexica에 어떤 맞춤 설정 옵션이 있나요?
-
A: 옵션에는 LLama 3.1, Mistral Nemo 또는 Gemma2와 같은 다양한 모델 선택, 로컬 임베딩 모델 설정, 뉴스, 학술 논문, 유튜브 영상 및 Reddit 포럼과 같은 다양한 검색 옵션 탐색이 포함됩니다.
-
Q: Perplexica와 함께 사용할 Ollama 모델은 무엇인가요?
-
A: 우리의 테스트에서 가장 좋은 결과는 Perplexica를 llama3.1:8b-instruct-q6_K와 jina/jina-embeddings-v2-base-en:latest 모델과 함께 실행했을 때 얻었습니다.
유용한 링크
- Ollama에서 Qwen3 임베딩 및 리랭커 모델: 최첨단 성능
- 테스트: Ollama가 인텔 CPU 성능과 효율적인 코어를 어떻게 사용하는지
- Ollama가 병렬 요청을 어떻게 처리하는지
- Ollama에서 Deepseek-r1 테스트
- Perplexica 사이트의 설치 지침: https://github.com/ItzCrazyKns/Perplexica
- Perplexica를 네트워크에 노출시키기
- LLM 속도 성능 비교
- Ollama 설치 및 Ollama 모델을 다른 폴더로 이동
- LLM 요약 능력 비교
- LLM 비교: Mistral Small, Gemma 2, Qwen 2.5, Mistral Nemo, LLama3 및 Phi
- Ollama 빠른 참고서