Autonomiczne hostowanie Perplexica – z użyciem Ollama
Uruchamianie lokalnego usługi w stylu Copilot? Łatwe!
To bardzo ekscytujące! Zamiast wołać copilot lub perplexity.ai i opowiadać światu, czego szukasz, teraz możesz uruchomić podobną usługę na własnym komputerze lub laptopie!
Co to jest
Perplexica to system podobny do Copilot i Perplexity.ai.
- Zadajesz pytanie
- AI wyszukuje internet w poszukiwaniu odpowiedzi (możesz określić, gdzie wyszukiwać: artykuły naukowe, pisanie, YouTube, Reddit…)
- Następnie AI podsumowuje wszystko, co znaleziono
- Następnie prezentuje wynik z odnośnikami do oryginalnych stron internetowych
- Również lista obrazów i filmów YouTube po prawej stronie
- Również gotowe pytania dodatkowe do kliknięcia, jeśli chcesz trochę bardziej zbadać temat
Te systemy są hostowane w chmurze i należą do niektórych korporacji (np. Microsoft lub Meta). Perplexica to oprogramowanie Open Source, które możesz uruchomić na własnym komputerze lub potężnej laptopie. Aby uzyskać szersze porównanie lokalnego Ollama z vLLM, Docker Model Runner, LocalAI i dostawcami w chmurze — w tym analizę kosztów i infrastruktury — zobacz Hostowanie LLM: Lokalne, samodzielne i infrastruktura w chmurze.
Oto odpowiedź Perplexica z modelem chatu llama3.1 8b q6 i modelem embeddingu jina — na pytanie Kto jest Elon Mask?
Perplexica składa się z kilku modułów
- SearxNG — silnik metawyszukiwania. Wywoła on 10+ innych silników wyszukiwania, aby uzyskać wyniki, więc Perplexica może je połączyć. SearxNG jest bardzo konfigurowalny sam w sobie, możesz włączać i wyłączać każdy silnik oraz dodawać nowe. Ale dla naszych celów domyślna konfiguracja działa dobrze.
- Backend i frontend Perplexica. Technicznie są to dwa oddzielne moduły, jeden dostarcza API, drugi interfejs użytkownika.
- Usługa Ollama — nie jest częścią projektu Perplexica, ale jeśli chcesz, aby modele LLM były hostowane lokalnie, Ollama to jedyny sposób, aby je używać.
Zatem instalacja całego systemu składa się z dwóch dużych kroków:
- Zainstaluj Ollama + pobierz modele Ollama
- Zainstaluj Perplexica wraz z SearxNG
Instalacja Ollama
Aby rozpocząć od Ollama, wykonaj następujące kroki:
Zainstaluj Ollama uruchamiając skrypt:
curl -fsSL https://ollama.com/install.sh | sh
Poinformuj Ollama, aby pobrał ulubiony model LLM. Jeśli to Llama3.1 8b q4 — uruchom skrypt:
ollama pull llama3.1:latest
Pobierz najnowszą wersję Nomic-Embed-Text do użycia jako modelu embeddingu (jeśli to Twój ulubiony) za pomocą
ollama pull nomic-embed-text:latest
Edytuj plik usługi Ollama uruchamiając
sudo systemctl edit ollama.service
Dodając następujące linie, aby uwidocznić Ollama w sieci (Perplexica musi do niego połączyć się z wewnątrz kontenera docker)
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Przeładuj demon systemd i uruchom ponownie usługę Ollama:
sudo systemctl daemon-reload
sudo systemctl restart ollama
Sprawdź, czy Ollama uruchomił się pomyślnie
systemctl status ollama.service
sudo journalctl -u ollama.service --no-pager
Szczegółowy opis, jak zainstalować, zaktualizować i skonfigurować Ollama, zobacz: Instalacja i konfiguracja Ollama
Aby uzyskać szczegółowe informacje na temat użycia innych modeli Ollama z Perplexica, zobacz sekcję „Instalacja innych modeli Ollama” poniżej.
Instalacja Perplexica
Zainstalowałem dockerizowaną wersję Perplexica na systemie Linux, ale bardzo podobny docker-compose można użyć na Windows lub Mac.
Zacznijmy!
Rozpoczęcie pracy z Dockerem (Zalecane) Upewnij się, że Docker jest zainstalowany i uruchomiony na Twoim systemie.
Sklonuj repozytorium Perplexica:
git clone https://github.com/ItzCrazyKns/Perplexica.git
Po sklonowaniu, przejdź do katalogu zawierającego pliki projektu.
cd Perplexica
Zmień nazwę pliku sample.config.toml na config.toml. Jeśli zamierzasz później aktualizować Perplexica — poprzez git pull w tym repozytorium — to po prostu skopiuj plik sample.config.toml do config.toml
cp sample.config.toml config.toml
Edytuj plik konfiguracyjny
nano config.toml
Dla konfiguracji Docker, musisz wypełnić tylko następujące pola:
OLLAMA: URL API Twojego Ollama.
Powinieneś wpisać go jako http://host.docker.internal:PORT_NUMBER.
Jeśli zainstalowałeś Ollama na porcie 11434 (to domyślny), użyj http://host.docker.internal:11434. Dla innych portów dostosuj odpowiednio.
Kiedy wciąż jesteś w katalogu Perplexica, uruchom:
docker compose up -d
Pobierze on SearxNG i podstawowe obrazy docker, zbuduje dwa obrazy Perplexica i uruchomi 3 kontenery. Poczekaj kilka minut, aż ukończy się konfiguracja.
Możesz uzyskać dostęp do Perplexica za pomocą http://localhost:3000 w przeglądarce.
Przejdź do Ustawień. Znasz to — ikonka Cog po lewej stronie, i wybierz swoje modele Ollama

Tu widzisz wybrany model chatu llama3.1:8b-instruct-q6_K (Llama 3.1 8b z kwantyzacją q6_K), oraz model embeddingu nomic-embed-text:137m-v1.5-fp16.
Możesz także wybrać styl jasny lub ciemny, w zależności od tego, który Cię bardziej interesuje.
Opcje wyszukiwania Perplexica (Kliknij na ten oko w ikonie pudełka), w stylu ciemnym:

Instalacja innych modeli Ollama
Już wcześniej zainstalowałeś modele llama3.1:latest i nomic-embed-text:latest w sekcji „Instalacja Ollama”.
Potrzebujesz tylko jednego modelu do rozmowy, ale jest wiele modeli dostępnych. Są one lekko różne, dobrze jest zacząć od najbardziej popularnych: Llama3.1, Gemma2, Mistral Nemo lub Qwen2.
Modele rozmowy
Pełna nazwa modelu rozmowy, który widziałeś w sekcji instalacji — llama3.1:latest to llama3.1:8b-text-q4_0. To oznacza, że ma 8 miliardów parametrów i kwantyzację 4_0. Jest szybki i stosunkowo mały (4,8 GB), ale jeśli Twoja karta graficzna ma więcej pamięci, polecam Ci spróbować
- llama3.1:8b-instruct-q6_K (6,7 GB) — w moich testach pokazał znacznie lepsze odpowiedzi, choć był trochę wolniejszy.
- llama3.1:8b-instruct-q8_0 (8,5 GB) — albo ten.
Wszystkie modele z grupy llama3.1:8b są stosunkowo szybkie.
możesz pobrać te, które polecam spróbować, za pomocą skryptu:
ollama pull llama3.1:8b-instruct-q6_K
ollama pull llama3.1:8b-instruct-q8_0
Porównując do Llama3.1:8b, Gemma2 generuje bardziej zwięzłe i artystyczne odpowiedzi. Spróbuj tych:
# 9,8 GB
ollama pull gemma2:9b-instruct-q8_0
# 14 GB
ollama pull gemma2:27b-instruct-q3_K_L
Modele Mistral Nemo generują odpowiedzi gdzieś między Gemma2 a Llama3.1.
# domyślny, 7,1 GB
ollama pull mistral-nemo:12b-instruct-2407-q4_0
# 10 GB
ollama pull mistral-nemo:12b-instruct-2407-q6_K
# 13 GB
ollama pull mistral-nemo:12b-instruct-2407-q8_0
Możesz również spróbować modeli Qwen2
# domyślny, 4,4 GB
ollama pull qwen2:7b-instruct-q4_0
# 8,1 GB
ollama pull qwen2:7b-instruct-q8_0
Modele najbardziej mi podobali się to: llama3.1:8b-instruct-q6_K i mistral-nemo:12b-instruct-2407-q8_0.
Aby sprawdzić modele, które Ollama ma w lokalnym repozytorium:
ollama list
Aby usunąć niektóre niepotrzebne modele:
ollama rm qwen2:7b-instruct-q4_0 # np.
Modele embeddingu
Możesz pominąć instalację tych, Perplexica ma zainstalowane 3 modele embeddingu: BGE Small, GTE Small i Bert bilingual. Działają niezłe, ale możesz spróbować innych modeli embeddingu.
W sekcji instalacji Ollama powyżej zainstalowałeś model nomic-embed-text:latest embeddingu, to dobry model, ale polecam Ci również spróbować:
ollama pull jina/jina-embeddings-v2-base-en:latest
# i
ollama pull bge-m3:567m-fp16
Najbardziej mi się podobały wyniki z jina/jina-embeddings-v2-base-en:latest, ale sprawdź sam.
Instalacja sieciowa Perplexica
Jeśli instalujesz ją na serwerze sieciowym, to przed
docker compose up -d
lub jeśli już uruchamiasz Perplexica, a potrzebujesz ponownie zbudować obrazy
# Zatrzymaj i usuń wszystkie kontenery (!!! jeśli potrzebujesz tylko tego)
docker compose down --rmi all
Wstaw adres IP swojego serwera perplexica do docker-compose.yaml: następnie przed
nano docker-compose.yaml
perplexica-frontend:
build:
context: .
dockerfile: app.dockerfile
args:
- NEXT_PUBLIC_API_URL=http://127.0.0.1:3001/api # << tutaj
- NEXT_PUBLIC_WS_URL=ws://127.0.0.1:3001 # << tutaj
depends_on:
- perplexica-backend
teraz uruchom kontenery Perplexica i SearxNG:
docker compose up -d
Lub ponownie zbuduj i uruchom:
docker compose up -d --build
Aktualizacja Perplexica
Perplexica działający w Dockerze:
# Zatrzymaj i usuń wszystkie kontenery (!!! jeśli potrzebujesz tylko tego)
docker compose down --rmi all
# przejdź do folderu projektu
# gdzie sklonowałeś perplexica podczas instalacji
cd Perplexica
# pobierz aktualizacje
git pull
# Aktualizacja i ponowne zbudowanie kontenerów Docker:
docker compose up -d --build
Dla instalacji bez Docker’a zobacz: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md
FAQ
-
Q: Co to jest Perplexica?
-
A: Perplexica to darmowy, samodzielnie hostowany silnik wyszukiwania AI i alternatywa dla perplexity.ai i systemów Copilot, która pozwala użytkownikom uruchamiać własny silnik wyszukiwania lokalnie na swoim komputerze.
-
Q: Jakie są kroki instalacji i konfiguracji Perplexica z Ollama?
-
A: Kroki obejmują instalację Ollama, pobranie modeli, a następnie instalację Perplexica.
-
Q: Jakie opcje dostosowania są dostępne w Perplexica?
-
A: Opcje obejmują wybór różnych modeli, takich jak LLama 3.1, Mistral Nemo lub Gemma2, ustawienie lokalnych modeli embeddingu, oraz eksplorowanie różnych opcji wyszukiwania, takich jak wiadomości, artykuły naukowe, filmy YouTube i fora Reddit.
-
Q: Który model Ollama używać z Perplexica?
-
A: Najlepsze wyniki uzyskaliśmy w naszych testach, gdy uruchamialiśmy Perplexica z modelem llama3.1:8b-instruct-q6_K i modelem embeddingu jina/jina-embeddings-v2-base-en:latest.
Aby zobaczyć, jak Ollama (typowy backend Perplexica) pasuje do vLLM, Docker Model Runner, LocalAI i dostawców w chmurze, sprawdź nasz Hostowanie LLM: Lokalne, samodzielne i infrastruktura w chmurze.