개요
Perplexica는 Perplexity AI의 오픈소스 대안으로, 프라이버시 중심의 AI 검색 엔진입니다. 질문을 이해하고, 웹을 검색하며, 출처가 인용된 명확한 답변을 제공합니다. OpenAI, Anthropic, Groq, Ollama 등 다양한 LLM을 지원하며, SearXNG 메타검색 엔진을 통해 최신 정보를 가져옵니다. 모든 검색이 로컬에서 처리되어 완전한 프라이버시를 보장합니다.
| 항목 | 내용 |
|---|---|
| GitHub | https://github.com/ItzCrazyKns/Perplexica |
| 라이선스 | MIT |
| GitHub Stars | 15K+ |
Perplexica란?
왜 Perplexica인가?
❌ 기존 검색의 문제점:
- Google: 광고와 SEO 스팸
- Perplexity: 월 $20, 데이터 수집
- ChatGPT: 웹 검색 제한적
✅ Perplexica의 해결책:
- AI가 질문을 이해하고 답변
- 출처 인용으로 신뢰성
- 완전한 프라이버시 (로컬 실행)
- 무료, 오픈소스
- 로컬 LLM 지원 (Ollama)
핵심 개념
"검색이 아닌 답변"
- 질문 → AI가 이해 → 웹 검색 → 출처 인용된 답변
- 키워드 매칭이 아닌 의미 검색
- SearXNG로 실시간 최신 정보
- 프라이버시 완전 보장
아키텍처
┌─────────────────────────────────────────┐
│ Perplexica UI │
│ (Next.js Frontend) │
├─────────────────────────────────────────┤
│ Perplexica Backend │
│ (질문 분석 + 답변 생성) │
├──────────────┬──────────────────────────┤
│ SearXNG │ LLM │
│ (메타검색) │ (OpenAI/Ollama/Groq) │
└──────────────┴──────────────────────────┘
주요 기능
🔍 검색 모드
| 모드 | 설명 |
|---|---|
| Speed Mode | 빠른 답변 |
| Balanced Mode | 일반 검색 |
| Quality Mode | 깊은 연구 |
🎯 포커스 모드
| 모드 | 설명 |
|---|---|
| All | 전체 웹 검색 |
| Academic | 학술 논문, 연구 |
| YouTube | YouTube 동영상 |
| Reddit 토론 | |
| Writing Assistant | 글쓰기 도우미 (웹 검색 없음) |
| Wolfram Alpha | 계산, 데이터 분석 |
🤖 AI 제공자 지원
| 제공자 | 설명 |
|---|---|
| OpenAI | GPT-4, GPT-3.5 |
| Anthropic | Claude 3.5, Claude 3 |
| Groq | 초고속 추론 (3-4초) |
| Google Gemini | Gemini Pro |
| Ollama | 로컬 LLM (Llama, Mistral) |
| Custom | OpenAI 호환 API |
🧩 위젯
| 위젯 | 설명 |
|---|---|
| 날씨 | 실시간 날씨 |
| 계산 | 수학 계산 |
| 주가 | 주식 가격 |
| 기타 | 빠른 참조 카드 |
🔐 프라이버시
| 기능 | 설명 |
|---|---|
| 로컬 실행 | 모든 처리 로컬 |
| SearXNG | 익명 메타검색 |
| 데이터 저장 없음 | 검색 기록 비공개 |
| Ollama | 완전 오프라인 가능 |
시스템 요구 사항
| 항목 | 최소 | 권장 |
|---|---|---|
| CPU | 2 코어 | 4+ 코어 |
| RAM | 4GB | 16GB+ (Ollama 사용 시) |
| GPU | – | NVIDIA RTX (로컬 LLM) |
| 저장소 | 5GB | 20GB+ |
| 포트 | 3000 | – |
Docker 설치
방법 1: 원커맨드 설치 (권장)
docker run -d \
-p 3000:3000 \
-v perplexica-data:/home/perplexica/data \
--name perplexica \
itzcrazykns1337/perplexica:latest
포함 내용: Perplexica + SearXNG (번들)
접속: http://localhost:3000 → 설정 화면에서 API 키 입력
방법 2: Slim 버전 (외부 SearXNG)
docker run -d \
-p 3000:3000 \
-e SEARXNG_API_URL=http://your-searxng-url:8080 \
-v perplexica-data:/home/perplexica/data \
--name perplexica \
itzcrazykns1337/perplexica:slim-latest
방법 3: Docker Compose (기본)
# docker-compose.yml
services:
perplexica:
image: itzcrazykns1337/perplexica:latest
container_name: perplexica
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./perplexica-data:/home/perplexica/data
방법 4: Docker Compose + 외부 SearXNG
# docker-compose.yml
services:
perplexica:
image: itzcrazykns1337/perplexica:slim-latest
container_name: perplexica
restart: unless-stopped
ports:
- "3000:3000"
environment:
- SEARXNG_API_URL=http://searxng:8080
volumes:
- ./perplexica-data:/home/perplexica/data
depends_on:
- searxng
searxng:
image: searxng/searxng:latest
container_name: searxng
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./searxng:/etc/searxng:rw
environment:
- SEARXNG_BASE_URL=http://localhost:8080
방법 5: Ollama 통합 (로컬 LLM)
# docker-compose.yml
services:
perplexica:
image: itzcrazykns1337/perplexica:latest
container_name: perplexica
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./perplexica-data:/home/perplexica/data
extra_hosts:
- "host.docker.internal:host-gateway"
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
ports:
- "11434:11434"
volumes:
- ./ollama:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
Perplexica UI에서 설정:
- Provider: Ollama
- API URL:
http://host.docker.internal:11434 - Model:
llama3.2또는 원하는 모델
방법 6: 공식 저장소 빌드
# 저장소 클론
git clone https://github.com/ItzCrazyKns/Perplexica.git
cd Perplexica
# Docker Compose로 빌드 및 실행
docker compose up -d
방법 7: Groq (초고속 추론)
Perplexica UI 설정:
- Provider: Groq
- API Key:
gsk_your-groq-api-key - Model:
llama-3.1-70b-versatile
특징: 3-4초 응답 시간 (가장 빠름)
방법 8: Traefik + HTTPS
# docker-compose.yml
services:
perplexica:
image: itzcrazykns1337/perplexica:latest
container_name: perplexica
restart: unless-stopped
volumes:
- ./perplexica-data:/home/perplexica/data
networks:
- traefik_network
labels:
- "traefik.enable=true"
- "traefik.http.routers.perplexica.rule=Host(`search.example.com`)"
- "traefik.http.routers.perplexica.entrypoints=websecure"
- "traefik.http.routers.perplexica.tls.certresolver=letsencrypt"
- "traefik.http.services.perplexica.loadbalancer.server.port=3000"
networks:
traefik_network:
external: true
환경 변수
기본 설정
| 변수 | 설명 |
|---|---|
SEARXNG_API_URL | SearXNG API URL (slim 버전) |
PORT | 서버 포트 (기본: 3000) |
UI 설정 (웹 인터페이스)
첫 접속 시 설정 화면에서 구성:
| 설정 | 설명 |
|---|---|
| Chat Model Provider | OpenAI, Anthropic, Groq, Ollama 등 |
| Chat Model | 사용할 모델 |
| Embedding Model Provider | 임베딩 제공자 |
| Embedding Model | 임베딩 모델 |
| API Keys | 각 제공자 API 키 |
config.json 구조
설정은 /home/perplexica/data/config.json에 저장됩니다:
{
"providers": [
{
"name": "openai",
"apiKey": "sk-your-key",
"apiUrl": "https://api.openai.com/v1"
},
{
"name": "ollama",
"apiUrl": "http://host.docker.internal:11434"
}
],
"chatModel": {
"provider": "openai",
"model": "gpt-4o"
},
"embeddingModel": {
"provider": "openai",
"model": "text-embedding-3-small"
}
}
초기 설정
1) 첫 접속
URL: http://localhost:3000
→ 설정 화면 자동 표시
2) AI 제공자 설정
OpenAI 사용:
- Chat Model Provider → OpenAI
- API Key 입력
- Model → gpt-4o 선택
Ollama 사용:
- Chat Model Provider → Ollama
- API URL →
http://host.docker.internal:11434 - Model → llama3.2
Groq 사용 (추천 – 가장 빠름):
- Chat Model Provider → Groq
- API Key 입력
- Model → llama-3.1-70b-versatile
3) 임베딩 모델 설정
- OpenAI:
text-embedding-3-small - Ollama:
nomic-embed-text
4) 검색 시작
- 검색창에 질문 입력
- 포커스 모드 선택 (All, Academic 등)
- 답변 + 출처 확인
사용 가이드
검색 예시
일반 검색:
"2025년 AI 트렌드는 무엇인가요?"
학술 검색:
Focus: Academic
"트랜스포머 모델의 최신 최적화 기법"
YouTube 검색:
Focus: YouTube
"Docker 초보자 튜토리얼"
Reddit 검색:
Focus: Reddit
"셀프호스팅 추천 앱"
브라우저 검색 엔진으로 추가
- 브라우저 설정 → 검색 엔진
- 새 검색 엔진 추가
- URL:
http://localhost:3000/?q=%s - 주소창에서 바로 Perplexica 사용
API 사용
# 검색 API
curl -X POST 'http://localhost:3000/api/search' \
-H 'Content-Type: application/json' \
-d '{
"query": "Docker best practices 2025",
"focusMode": "all"
}'
# 채팅 API
curl -X POST 'http://localhost:3000/api/chat' \
-H 'Content-Type: application/json' \
-d '{
"messages": [
{"role": "user", "content": "Kubernetes vs Docker Swarm 비교"}
]
}'
SearXNG 설정
SearXNG settings.yml
# searxng/settings.yml
use_default_settings: true
server:
secret_key: "your-secret-key"
bind_address: "0.0.0.0"
search:
formats:
- html
- json # JSON 필수!
engines:
- name: wolframalpha
disabled: false # Wolfram Alpha 활성화
JSON 출력 활성화
Perplexica가 SearXNG를 사용하려면 JSON 포맷이 필수입니다.
백업 및 복원
데이터 구조
./perplexica-data/
├── config.json # 설정
└── database.sqlite # 채팅 기록
백업
# 컨테이너 정지
docker compose down
# 백업
tar -czvf perplexica-backup-$(date +%Y%m%d).tar.gz perplexica-data/
# 재시작
docker compose up -d
복원
tar -xzvf perplexica-backup.tar.gz
docker compose up -d
업데이트
# 이미지 업데이트
docker pull itzcrazykns1337/perplexica:latest
# 컨테이너 재시작
docker compose down
docker compose up -d
Git 클론 방식:
cd Perplexica
git pull
docker compose up -d --build
트러블슈팅
Ollama 연결 안 됨
Linux: Ollama가 0.0.0.0에 바인딩되어야 함:
# /etc/systemd/system/ollama.service
Environment="OLLAMA_HOST=0.0.0.0"
Docker:
extra_hosts:
- "host.docker.internal:host-gateway"
API URL: http://host.docker.internal:11434
모델 제공자 미설정 오류
- 설정 화면에서 제공자 선택
- API 키 입력
- 저장
느린 응답
| 제공자 | 응답 시간 |
|---|---|
| Groq | 3-4초 (가장 빠름) |
| OpenAI | 5-6초 |
| Ollama (로컬) | 5-10초 |
추천: 빠른 응답이 필요하면 Groq 사용
SearXNG JSON 오류
settings.yml에서 JSON 포맷 활성화:
search:
formats:
- html
- json
대안 비교
| 기능 | Perplexica | Perplexity | Khoj |
|---|---|---|---|
| 오픈소스 | ✅ | ❌ | ✅ |
| 셀프호스팅 | ✅ | ❌ | ✅ |
| 로컬 LLM | ✅ Ollama | ❌ | ✅ |
| 출처 인용 | ✅ | ✅ | ✅ |
| 포커스 모드 | ✅ 6종 | ✅ | ✅ |
| 프라이버시 | ✅ 완전 | ❌ | ✅ |
| 비용 | 무료 | $20/월 | 무료 |
| 설치 난이도 | 쉬움 | N/A | 중간 |
선택 가이드
| 용도 | 추천 |
|---|---|
| 프라이버시 중시 | Perplexica + Ollama |
| 빠른 응답 | Perplexica + Groq |
| 간편 사용 | Perplexity (유료) |
| 개인 AI 어시스턴트 | Khoj |
활용 사례
1. 프라이버시 검색
목적: 검색 기록 비공개
- Perplexica + Ollama 로컬 LLM
- SearXNG 익명 검색
- 데이터 외부 전송 없음
2. 연구/학술
목적: 논문 및 연구 검색
- Academic 포커스 모드
- 출처 인용 확인
- 여러 논문 요약
3. 기술 조사
목적: 개발 관련 검색
- Stack Overflow, GitHub 등 검색
- 코드 예제 포함 답변
- 최신 기술 동향
4. 콘텐츠 리서치
목적: 블로그/기사 작성
- 다양한 출처 수집
- 요약 및 비교
- 인용 정리
5. 브라우저 기본 검색
목적: Google 대체
- 브라우저 검색 엔진 등록
- 주소창에서 바로 사용
- 광고/SEO 스팸 없음
마무리
Perplexica는 Perplexity AI의 강력한 오픈소스 대안입니다. 질문을 이해하고, 웹을 검색하며, 출처가 인용된 답변을 제공합니다. 완전히 로컬에서 실행되어 프라이버시를 보장하며, Ollama를 통해 무료로 사용할 수 있습니다.
핵심 장점
| 장점 | 설명 |
|---|---|
| 프라이버시 | 모든 처리 로컬 |
| 출처 인용 | 신뢰할 수 있는 답변 |
| 다중 LLM | OpenAI, Groq, Ollama |
| 포커스 모드 | 학술, YouTube, Reddit 등 |
| 오픈소스 | 무료, 커스터마이징 |
| 빠른 설치 | 원커맨드 Docker |
| SearXNG | 익명 메타검색 |
이런 분께 추천
프라이버시 중시하는 검색 사용자
Perplexity 대신 셀프호스팅 원하는 분
연구/학술 검색이 많은 분
로컬 LLM으로 무료 사용하고 싶은 분
Google 광고/스팸에 지친 분