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 przeszukuje internet w poszukiwaniu odpowiedzi (możesz określić, gdzie przeszukiwać: artykuły naukowe, pisanie, YouTube, Reddit…)
- Następnie AI podsumowuje wszystko, co znaleziono
- Następnie prezentuje wynik wraz z odnośnikami do oryginalnych stron internetowych
- Również lista obrazów i filmów YouTube po prawej stronie
- Również gotowe pytania dodatkowe, gotowe do kliknięcia, jeśli chcesz zgłębić temat nieco więcej
Te systemy są hostowane w chmurze i należą do pewnych korporacji (np. Miscrosoft lub Meta). Perplexica to oprogramowanie Open Source, które możesz uruchomić na swoim komputerze lub potężnym laptopie.
Oto odpowiedź Perplexica z modelem chat llama3.1 8b q6 i modelem embedding jina - na pytanie
Kto jest Elon Mask?
Perplexica składa się z kilku modułów
- SearxNG - silnik metaprzeszukiwania. Wywoła on 10+ innych silników przeszukiwania, 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.
- Perplexica Backend i Frontend. Technicznie są to dwa oddzielne moduły, jeden dostarcza API, drugi interfejs użytkownika
- Usługa Ollama - która nie jest częścią projektu perplexica, ale jeśli chcesz, aby Twoje 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 zacząć 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 model embedding (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 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 proszę zobaczyć: Instalacja i konfiguracja Ollama
Aby uzyskać szczegółowe informacje na temat użycia innych modeli Ollama z Perplexica proszę zobaczyć sekcję ‘Instalacja innych modeli Ollama’ poniżej.
Instalacja Perplexica
Zainstalowałem dockerizowaną Perplexica na linux, ale bardzo podobny docker-compose można użyć na Windows lub Mac.
Zaczynamy!
Rozpoczęcie pracy z Docker (Zalecane) Upewnij się, że Docker jest zainstalowany i działa 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 aktualizować Perplexica później - wykonując 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: Twój adres URL API 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 nadal jesteś w katalogu Perplexica, wykonaj:
docker compose up -d
Pobierze on SearxNG i podstawowe obrazy docker, zbuduje dwa obrazy docker Perplexica i uruchomi 3 kontenery. Poczekaj kilka minut, aż ukończy się konfiguracja.
Możesz uzyskać dostęp do Perplexica pod adresem http://localhost:3000 w przeglądarce.
Przejdź do Ustawień. Wiesz - ikonka Cog w lewym dolnym rogu, i wybierz swoje modele Ollama
Tu widzisz wybrany model chat llama3.1:8b-instruct-q6_K (Llama 3.1 8b z kwantyzacją q6_K), i model embedding nomic-embed-text:137m-v1.5-fp16.
Możesz również wybrać styl jasny lub ciemny, w zależności od tego, co bardziej lubisz.
Opcje wyszukiwania Perplexica (Kliknij na ten oko w ikonie pudełka), w stylu ciemnym:
Instalacja innych modeli Ollama
Już zainstalowałeś modele llama3.1:latest i nomic-embed-text:latest w sekcji “Instalacja Ollama” wcześniej.
Potrzebujesz tylko jednego modelu do rozmowy, ale dostępnych jest wiele modeli. 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 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 skrótowe 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 także 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 podobają 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 # na przykład
Modele embedding
Możesz pominąć instalację tych, Perplexica ma zainstalowane 3 modele embedding: BGE Small, GTE Small i Bert dwujęzyczny. Działają one nieźle, ale możesz spróbować innych modeli embedding.
W sekcji instalacji Ollama powyżej zainstalowałeś model embedding nomic-embed-text:latest, to dobry model, ale polecam 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 modelu jina/jina-embeddings-v2-base-en:latest, ale sprawdź sam.
Instalacja sieciowa Perplexica
Jeśli zainstalujesz 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 (!!! tylko jeśli to konieczne)
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 zbuduj i uruchom ponownie:
docker compose up -d --build
Aktualizacja Perplexica
Perplexica uruchomiona w dockerze:
# Zatrzymaj i usuń wszystkie kontenery (!!! tylko jeśli to konieczne)
docker compose down --rmi all
# przejdź do folderu projektu
# gdzie sklonowałeś perplexica podczas instalacji
cd Perplexica
# pobierz aktualizacje
git pull
# Aktualizacja i ponowne budowanie kontenerów Docker:
docker compose up -d --build
Dla instalacji bez docker proszę zobaczyć: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md
FAQ
-
Q: Co to jest Perplexica?
-
A: Perplexica to darmowy, samozhostowany 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, konfigurację lokalnych modeli embedding, oraz eksplorację 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 embedding jina/jina-embeddings-v2-base-en:latest.
Przydatne linki
- Modele embedding i reranker Qwen3 na Ollama: wydajność stanu technologii
- Test: Jak Ollama wykorzystuje wydajność procesora Intel i efektywne jądra
- Jak Ollama obsługuje żądania równoległe
- Testowanie Deepseek-r1 na Ollama
- Instrukcje instalacji na stronie Perplexica: https://github.com/ItzCrazyKns/Perplexica
- Uwidocznienie Perplexica w sieci
- Porównanie wydajności LLM
- Instalacja Ollama i przeniesienie modeli Ollama do innego folderu
- Porównanie zdolności sumaryzowania LLM
- Porównanie LLM: Mistral Small, Gemma 2, Qwen 2.5, Mistral Nemo, LLama3 i Phi
- Ollama cheat sheet