Self-hosting Perplexica - dengan Ollama
Menjalankan layanan gaya copilot secara lokal? Mudah!
Itu sangat menarik! Alih-alih memanggil copilot atau perplexity.ai dan memberi tahu seluruh dunia apa yang Anda cari, sekarang Anda dapat menjalankan layanan serupa di PC atau laptop Anda sendiri!
Apa itu
Perplexica adalah sistem yang mirip dengan Copilot dan Perplexity.ai.
- Anda bertanya pertanyaan
- AI mencari internet untuk jawabannya (Anda dapat menentukan di mana mencari: kertas akademik, penulisan, YouTube, Reddit…)
- Lalu AI merangkum semua yang telah ditemukan
- Lalu menampilkan hasilnya dengan referensi ke situs web asli
- Juga daftar gambar dan video YouTube di sebelah kanan
- Juga pertanyaan lanjutan siap untuk Anda klik, jika Anda ingin menjelajahi topik tersebut lebih lanjut
Sistem-sistem tersebut dihosting di cloud dan milik beberapa perusahaan (misalnya, Microsoft atau Meta). Perplexica adalah perangkat lunak Open Source yang dapat Anda host di PC atau laptop Anda yang kuat.
Di sini kita melihat respons Perplexica dengan model chat llama3.1 8b q6 dan model embedding jina - terhadap pertanyaan
Siapa Elon Mask?
Perplexica terdiri dari beberapa modul
- SearxNG - Mesin metasearch. Ia akan memanggil 10+ mesin pencari lainnya untuk mendapatkan hasil, sehingga Perplexica dapat menggabungkannya. SearxNG sangat dapat dikonfigurasi sendiri, Anda dapat mengaktifkan dan menonaktifkan setiap mesin pencari dan menambahkan yang baru. Namun untuk tujuan kami konfigurasi default berjalan dengan baik.
- Backend dan Frontend Perplexica. Secara teknis ini adalah dua modul terpisah, satu menyediakan API, yang lain adalah UI
- Layanan Ollama - yang bukan bagian dari proyek Perplexica, tetapi jika Anda ingin menjalankan LLM Anda sendiri secara lokal, Ollama adalah satu-satunya cara untuk menggunakan mereka.
Jadi pemasangan seluruh sistem terdiri dari dua langkah besar:
- Instal Ollama + unduh model Ollama
- Instal Perplexica bersama dengan SearxNG
Menginstal Ollama
Untuk memulai dengan Ollama, ikuti langkah-langkah berikut:
Instal Ollama dengan menjalankan skrip:
curl -fsSL https://ollama.com/install.sh | sh
Bilanglah pada Ollama untuk mengunduh LLM favorit Anda. Jika itu adalah Llama3.1 8b q4 - jalankan skrip:
ollama pull llama3.1:latest
Unduh versi terbaru dari Nomic-Embed-Text untuk digunakan sebagai model embegging (jika itu adalah favorit Anda) menggunakan
ollama pull nomic-embed-text:latest
Edit file layanan Ollama dengan menjalankan
sudo systemctl edit ollama.service
Tambahkan baris berikut untuk mengekspos Ollama ke jaringan (Perplexica perlu terhubung ke dalam docker)
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Muat ulang daemon systemd dan restart layanan Ollama:
sudo systemctl daemon-reload
sudo systemctl restart ollama
Periksa bahwa Ollama telah dimulai dengan sukses
systemctl status ollama.service
sudo journalctl -u ollama.service --no-pager
Deskripsi terperinci bagaimana menginstal, memperbarui, dan mengonfigurasi Ollama silakan lihat: Instal dan konfigurasi Ollama
Untuk detail tentang menggunakan model Ollama lain dengan Perplexica silakan lihat bagian ‘Menginstal model Ollama lain’ di bawah.
Menginstal Perplexica
Saya telah menginstal Perplexica yang didockerisasi di linux, tetapi docker-compose yang sangat mirip dapat digunakan di Windows atau Mac.
Mari kita mulai!
Memulai dengan Docker (Direkomendasikan) Pastikan Docker terinstal dan berjalan di sistem Anda.
Clone repositori Perplexica:
git clone https://github.com/ItzCrazyKns/Perplexica.git
Setelah cloning, navigasikan ke direktori yang berisi file proyek.
cd Perplexica
Ubah nama file sample.config.toml menjadi config.toml. Jika Anda berencana untuk memperbarui Perplexica nanti - dengan git pull ke dalam repositori ini - maka hanya salin file sample.config.toml ke config.toml
cp sample.config.toml config.toml
Edit file konfigurasi
nano config.toml
Untuk pengaturan Docker, Anda hanya perlu mengisi bidang berikut:
OLLAMA: URL API Ollama Anda.
Anda harus memasukkannya sebagai http://host.docker.internal:PORT_NUMBER.
Jika Anda menginstal Ollama di port 11434 (itu adalah port default), gunakan http://host.docker.internal:11434. Untuk port lain, sesuaikan sesuai kebutuhan.
Ketika Anda masih berada di direktori Perplexica, jalankan:
docker compose up -d
Ini akan menarik gambar SearxNG dan node dasar docker, membangun dua gambar docker Perplexica, dan memulai 3 kontainer. Tunggu beberapa menit untuk penyelesaian pengaturan.
Anda dapat mengakses Perplexica di http://localhost:3000 melalui browser web Anda.
Pergi ke Pengaturan. Anda tahu - ikon Cog di sebelah kiri bawah, dan pilih model Ollama Anda
Di sini Anda melihat model chat yang dipilih llama3.1:8b-instruct-q6_K (Llama 3.1 8b dengan kuantisasi q6_K), dan model embedding nomic-embed-text:137m-v1.5-fp16.
Anda juga dapat memilih tema Terang atau Gelap tergantung pada yang lebih Anda sukai.
Opsi pencarian Perplexica (Klik pada mata ini di dalam ikon kotak), dalam tema gelap:
Menginstal model Ollama lain
Anda telah menginstal model-model llama3.1:latest dan nomic-embed-text:latest dalam bagian “Menginstal Ollama” sebelumnya.
Anda hanya membutuhkan satu model untuk chat, tetapi ada banyak model yang tersedia. Mereka berperilaku sedikit berbeda, baik untuk memulai dengan yang paling umum: Llama3.1, Gemma2, Mistral Nemo atau Qwen2.
Model chat
Nama lengkap model chat yang Anda lihat dalam bagian instalasi - llama3.1:latest adalah llama3.1:8b-text-q4_0. Artinya memiliki 8 miliar parameter dan kuantisasi 4_0. Cepat dan relatif kecil (4,8GB), tetapi jika GPU Anda memiliki beberapa memori tambahan saya akan merekomendasikan Anda untuk mencoba
- llama3.1:8b-instruct-q6_K (6,7GB) - dalam uji saya menunjukkan jauh lebih baik respons, meskipun sedikit lebih lambat.
- llama3.1:8b-instruct-q8_0 (8,5GB) - atau mungkin yang satu ini.
Secara keseluruhan semua model dari grup llama3.1:8b relatif cepat.
Anda dapat menarik model-model yang saya rekomendasikan untuk dicoba dengan skrip:
ollama pull llama3.1:8b-instruct-q6_K
ollama pull llama3.1:8b-instruct-q8_0
Dibandingkan dengan Llama3.1:8b, Gemma2 menghasilkan respons yang lebih ringkas dan artistik. Coba ini:
# 9,8GB
ollama pull gemma2:9b-instruct-q8_0
# 14GB
ollama pull gemma2:27b-instruct-q3_K_L
Model-model Mistral Nemo menghasilkan respons di antara gemma2 dan llama3.1.
# yang default, 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
Anda mungkin juga ingin mencoba model-model Qwen2
# yang default, 4,4GB
ollama pull qwen2:7b-instruct-q4_0
# 8,1GB
ollama pull qwen2:7b-instruct-q8_0
Model-model yang saya sukai paling adalah: llama3.1:8b-instruct-q6_K dan mistral-nemo:12b-instruct-2407-q8_0.
Untuk memeriksa model-model yang ada di repositori lokal Ollama:
ollama list
Untuk menghapus model yang tidak diperlukan:
ollama rm qwen2:7b-instruct-q4_0 # contoh
Model embedding
Anda dapat melewatkan pemasangan ini, Perplexica sudah memiliki 3 model embedding yang terinstal: BGE Small, GTE Small dan Bert bilingual. Mereka bekerja tidak buruk, tetapi Anda mungkin ingin mencoba model embedding lain.
Dalam bagian instalasi Ollama di atas Anda menginstal model embedding nomic-embed-text:latest, itu adalah model yang baik, tetapi saya akan merekomendasikan Anda juga untuk mencoba:
ollama pull jina/jina-embeddings-v2-base-en:latest
# dan
ollama pull bge-m3:567m-fp16
Saya menyukai hasil dari jina/jina-embeddings-v2-base-en:latest paling, tetapi lihat sendiri.
Instalasi Jaringan Perplexica
Jika Anda menginstalnya di server jaringan, maka sebelum
docker compose up -d
atau jika Anda sudah menjalankan Perplexica, dan perlu membangun ulang gambar
# Berhentikan dan hapus semua kontainer (!!! jika Anda hanya membutuhkannya)
docker compose down --rmi all
Masukkan alamat IP server Perplexica Anda ke dalam docker-compose.yaml: kemudian sebelum
nano docker-compose.yaml
perplexica-frontend:
build:
context: .
dockerfile: app.dockerfile
args:
- NEXT_PUBLIC_API_URL=http://127.0.0.1:3001/api # << di sini
- NEXT_PUBLIC_WS_URL=ws://127.0.0.1:3001 # << di sini
depends_on:
- perplexica-backend
sekarang mulai kontainer Perplexica dan SearxNG:
docker compose up -d
Atau bangun ulang dan mulai:
docker compose up -d --build
Memperbarui Perplexica
Perplexica yang berjalan di Docker:
# Berhentikan dan hapus semua kontainer (!!! jika Anda hanya membutuhkannya)
docker compose down --rmi all
# navigasikan ke folder proyek
# di mana Anda cloning Perplexica selama instalasi
cd Perplexica
# tarik pembaruan
git pull
# Perbarui dan Bangun Ulang Kontainer Docker:
docker compose up -d --build
Untuk instalasi non-Docker silakan lihat: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md
FAQ
-
Q: Apa itu Perplexica?
-
A: Perplexica adalah mesin pencari AI gratis yang dapat dihosting sendiri dan alternatif dari perplexity.ai dan sistem Copilot yang memungkinkan pengguna menjalankan mesin pencari mereka sendiri secara lokal di komputer mereka.
-
Q: Apa langkah-langkah untuk menginstal dan mengatur Perplexica dengan Ollama?
-
A: Langkah-langkah termasuk menginstal Ollama, menarik model-model, lalu menginstal Perplexica.
-
Q: Apa opsi penyesuaian yang tersedia di Perplexica?
-
A: Opsi-opsi termasuk memilih model-model berbeda seperti LLama 3.1, Mistral Nemo atau Gemma2, mengatur model embedding lokal, dan menjelajahi berbagai opsi pencarian seperti berita, kertas akademik, video YouTube dan forum Reddit.
-
Q: Model Ollama apa yang sebaiknya digunakan dengan Perplexica?
-
A: Hasil terbaik yang kami peroleh dalam uji kami adalah ketika kami menjalankan Perplexica dengan llama3.1:8b-instruct-q6_K dan jina/jina-embeddings-v2-base-en:latest.
Tautan yang berguna
- Model Embedding & Reranker Qwen3 di Ollama: Kinerja Terbaik
- Uji Coba: Bagaimana Ollama Menggunakan Kinerja CPU Intel dan Core Efisien
- Bagaimana Ollama Mengelola Permintaan Paralel
- Uji Coba Deepseek-r1 di Ollama
- Petunjuk instalasi di situs Perplexica: https://github.com/ItzCrazyKns/Perplexica
- Mengekspos Perplexica ke jaringan
- Perbandingan Kecepatan LLM
- Instal Ollama dan Pindahkan Model Ollama ke Folder Berbeda
- Perbandingan Kemampuan Penyaringan LLM
- Perbandingan LLM: Mistral Small, Gemma 2, Qwen 2.5, Mistral Nemo, LLama3 dan Phi
- Kartu cepat Ollama