Самостоятельное размещение Perplexica с использованием Ollama
Запуск сервиса в стиле Copilot на локальном компьютере? Легко!
Это очень волнующе! Вместо того чтобы звонить в Copilot или Perplexity.ai и рассказывать всему миру, что вы ищете, теперь вы можете разместить аналогичную службу на своем ПК или ноутбуке!
Что это такое
Perplexica — это система, похожая на Copilot и Perplexity.ai.
- Вы задаете вопрос
- ИИ ищет ответы в интернете (вы можете указать, где искать: научные статьи, статьи, YouTube, Reddit…)
- Затем ИИ суммирует все найденное
- Затем представляет результат с ссылками на оригинальные веб-сайты
- Также список изображений и видео YouTube справа
- Также готовые вопросы для продолжения, если вы хотите немного больше исследовать тему
Эти системы размещены в облаке и принадлежат некоторым корпорациям (например, Microsoft или Meta). Perplexica — это программное обеспечение с открытым исходным кодом, которое вы можете разместить на своем ПК или мощном ноутбуке. Для более широкого сравнения локального Ollama с vLLM, Docker Model Runner, LocalAI и облачными провайдерами — включая затраты и компромиссы инфраструктуры — см. LLM Hosting: Local, Self-Hosted & Cloud Infrastructure Compared.
Здесь мы видим ответ Perplexica с моделью чата llama3.1 8b q6 и моделью встраивания jina Embedding — на вопрос Кто такой Илон Маск?
Perplexica состоит из нескольких модулей
- SearxNG — метапоисковая система. Она будет вызывать 10+ других поисковых систем, чтобы получить результаты, которые Perplexica может объединить. SearxNG очень настраиваема сама по себе, вы можете включать и выключать каждую поисковую систему и добавлять новые. Но для наших целей работает хорошо стандартная конфигурация.
- Backend и Frontend Perplexica. Технически это два отдельных модуля, один предоставляет API, другой — интерфейс пользователя
- Сервис Ollama — это не часть проекта Perplexica, но если вы хотите, чтобы ваши LLMs были размещены локально, 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 в docker на 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
Это загрузит образы docker SearxNG и базового узла, создаст два образа docker Perplexica и запустит 3 контейнера. Подождите несколько минут, чтобы установка завершилась.
Вы можете получить доступ к Perplexica по адресу http://localhost:3000 в вашем веб-браузере.
Перейдите в Настройки. Вы знаете — иконка шестеренки внизу слева, и выберите свои модели 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.
Чтобы увидеть, как Ollama (типичный бэкенд Perplexica) сочетается с vLLM, Docker Model Runner, LocalAI и облачными провайдерами, ознакомьтесь с нашим руководством LLM Hosting: Local, Self-Hosted & Cloud Infrastructure Compared.