Самохостинг Perplexica — с использованием Ollama
Выполняете сервис в стиле Copilot локально? Просто!
Это очень вдохновляет!
Вместо того чтобы вызывать copilot или perplexity.ai и рассказывать всему миру, что вы ищете,
теперь вы можете развернуть подобную службу на своем собственном ПК или ноутбуке!
Что это такое
Perplexica — это система, похожая на Copilot и Perplexity.ai.
- Вы задаете вопрос
- Искусственный интеллект ищет в интернете ответы (вы можете указать, где искать: академические статьи, письменные работы, YouTube, Reddit…)
- Затем ИИ суммирует все, что нашел
- Затем представляет результат с ссылками на оригинальные веб-сайты
- Также список изображений и видео с YouTube справа
- Также готовые вопросы для дальнейшего изучения темы, если вы хотите углубиться в тему
Эти системы размещены в облаке и принадлежат некоторым корпорациям (например, Microsoft или Meta).
Perplexica — это открытый исходный код, который вы можете развернуть на своем ПК или мощном ноутбуке.
Здесь мы видим ответ Perplexica с моделью чата llama3.1 8b q6 и моделью встраивания jina — на вопрос
Кто такой Элон Маск?
Perplexica состоит из нескольких модулей
- SearxNG — метапоисковый движок. Он будет вызывать 10+ других движков поиска, чтобы получить результаты, поэтому Perplexica может их объединить. SearxNG очень настраиваем, вы можете включать и выключать каждый движок и добавлять новые. Но для наших целей стандартная настройка работает хорошо.
- Периферийный и фронтенд Perplexica. Технически это два отдельных модуля, один предоставляет API, другой — интерфейс пользователя
- Сервис 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 должен подключаться к нему изнутри docker)
[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
Для получения подробной информации о использовании других моделей Ollama с Perplexica см. раздел ‘Установка других моделей Ollama’ ниже.
Установка Perplexica
Я установил докеризованную Perplexica на Linux, но очень похожий docker-compose можно использовать на Windows или Mac.
Давайте начнем!
Начало работы с Docker (Рекомендуется) Убедитесь, что Docker установлен и запущен на вашей системе.
Клонируйте репозиторий 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
Редактирование файла конфигурации
nano config.toml
Для настроек Docker вам нужно заполнить только следующие поля:
OLLAMA: URL API вашего Ollama.
Вы должны ввести его как http://host.docker.internal:PORT_NUMBER.
Если вы установили Ollama на порту 11434 (это стандартный порт), используйте http://host.docker.internal:11434. Для других портов настройте соответствующим образом.
Когда вы все еще находитесь в директории Perplexica, выполните:
docker compose up -d
Он вытянет образы SearxNG и базового узла docker, построит два образа Perplexica docker и запустит 3 контейнера. Подождите несколько минут, пока завершится настройка.
Вы можете получить доступ к Perplexica по адресу http://localhost:3000 в своем веб-браузере.
Перейдите в Настройки. Вы знаете — значок Cog внизу слева, и выберите свои модели Ollama
Здесь вы видите выбранный модель чата llama3.1:8b-instruct-q6_K (Llama 3.1 8b с квантованием q6_K), и модель встраивания nomic-embed-text:137m-v1.5-fp16.
Вы также можете выбрать светлую или темную тему, в зависимости от того, что вам больше нравится.
Опции поиска Perplexica (Нажмите на этот глаз в значке коробки), в темной теме:
Установка других моделей Ollama
Вы уже установили модели llama3.1:latest и nomic-embed-text:latest в разделе “Установка Ollama” ранее.
Вам нужна только одна модель для чата, но доступно множество моделей. Они немного по-разному работают, хорошо начать с самых распространенных: Llama3.1, Gemma2, Mistral Nemo или Qwen2.
Модели для чата
Полное имя модели для чата, которое вы видели в разделе установки - llama3.1:latest это llama3.1:8b-text-q4_0. Это означает, что у нее 8 миллиардов параметров и квантование 4_0. Она быстрая и относительно компактная (4,8 ГБ), но если ваш GPU имеет больше памяти, я бы порекомендовал попробовать
- llama3.1:8b-instruct-q6_K (6,7 ГБ) - в моих тестах она показала гораздо лучший ответ, но немного медленнее.
- llama3.1:8b-instruct-q8_0 (8,5 ГБ) - или, может быть, эту.
В целом, все модели из группы llama3.1:8b относительно быстрые.
вы можете вытянуть те, которые я рекомендую попробовать, с помощью скрипта:
ollama pull llama3.1:8b-instruct-q6_K
ollama pull llama3.1:8b-instruct-q8_0
Сравнивая с Llama3.1:8b, Gemma2 производит более краткие и художественные ответы. Попробуйте эти:
# 9,8 ГБ
ollama pull gemma2:9b-instruct-q8_0
# 14 ГБ
ollama pull gemma2:27b-instruct-q3_K_L
Модели Mistral Nemo производят ответы где-то между Gemma2 и Llama3.1.
# стандартная, 7,1 ГБ
ollama pull mistral-nemo:12b-instruct-2407-q4_0
# 10 ГБ
ollama pull mistral-nemo:12b-instruct-2407-q6_K
# 13 ГБ
ollama pull mistral-nemo:12b-instruct-2407-q8_0
Вы также можете попробовать модели Qwen2
# стандартная, 4,4 ГБ
ollama pull qwen2:7b-instruct-q4_0
# 8,1 ГБ
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 bilingual. Они работают неплохо, но вы можете попробовать другие модели встраивания.
В разделе установки Ollama выше вы установили nomic-embed-text:latest модель встраивания, это хорошая модель, но я бы рекомендовал также попробовать:
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
Вставьте IP-адрес вашего сервера Perplexica в docker-compose.yaml: затем перед
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
Perplexica, работающая на Docker:
# Остановите его и удалите все контейнеры (!!! если вам это нужно только сейчас)
docker compose down --rmi all
# перейдите в папку проекта
# где вы клонировали Perplexica во время установки
cd Perplexica
# вытяните обновления
git pull
# Обновление и пересборка Docker-контейнеров:
docker compose up -d --build
Для не-Docker-установок см.: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md
Часто задаваемые вопросы
-
В: Что такое Perplexica?
-
А: Perplexica — это бесплатный локально размещаемый движок поиска на основе ИИ и альтернатива системам perplexity.ai и Copilot, позволяющая пользователям запускать собственный движок поиска на своем компьютере.
-
В: Какие шаги по установке и настройке Perplexica с Ollama?
-
А: Шаги включают установку Ollama, вытягивание моделей, затем установку Perplexica.
-
В: Какие варианты настройки доступны в Perplexica?
-
А: Варианты включают выбор различных моделей, таких как LLama 3.1, Mistral Nemo или Gemma2, настройку локальных моделей встраивания и исследование различных вариантов поиска, таких как новости, академические статьи, видео с YouTube и форумы Reddit.
-
В: Какую модель Ollama использовать с Perplexica?
-
А: Лучшие результаты, которые мы получили в наших тестах, были, когда мы запускали Perplexica с llama3.1:8b-instruct-q6_K и jina/jina-embeddings-v2-base-en:latest.
Полезные ссылки
- Модели встраивания и переоценки Qwen3 на Ollama: передовые достижения
- Тест: как Ollama использует производительность процессора Intel и эффективные ядра
- Как Ollama обрабатывает параллельные запросы
- Тестирование Deepseek-r1 на Ollama
- Лучшая LLM для Perplexica
- Инструкции по установке на сайте Perplexica: https://github.com/ItzCrazyKns/Perplexica
- Публикация Perplexica в сеть
- Сравнение производительности LLM
- Установка Ollama и перемещение моделей Ollama в другую папку
- Сравнение способностей LLM к суммированию
- Сравнение LLM: Mistral Small, Gemma 2, Qwen 2.5, Mistral Nemo, LLama3 и Phi
- Справочник Ollama