Запустите answer engine Perplexica на кастомном OpenAI base URL.
Updated 2026-07-29
Perplexica, переименованная апстримом в Vane, настраивает своего провайдера OpenAI полем API Key и Base URL. Установите Base URL в https://api.apisrouter.com/v1, добавьте нужные id моделей — и каждый ответ поиска будет синтезироваться через шлюз, с Claude, GPT, DeepSeek или Gemini за одним ключом.
Короткий ответ: одно поле Base URL, два поколения конфига.
В текущих релизах провайдер OpenAI в Perplexica выставляет ровно два обязательных поля: API Key и Base URL, редактируемых на экране настройки и в UI настроек, с задокументированными маппингами окружения OPENAI_API_KEY и OPENAI_BASE_URL. Установите Base URL в https://api.apisrouter.com/v1, вставьте ключ шлюза, затем добавьте нужные чат-модели по их точным id из каталога. Провайдер пересылает id модели как простую строку через /v1/chat/completions, так что id Claude и DeepSeek работают через слот провайдера «OpenAI». В более старых релизах Perplexica (поколение config.toml, вплоть до линейки v1.10 и v1.11) та же возможность — это провайдер CUSTOM_OPENAI: блок [MODELS.CUSTOM_OPENAI] с ключами API_KEY, API_URL и MODEL_NAME. Оба поколения показаны ниже, так что сверяйте настройку с той версией, которую реально запускаете.
# the settings UI fields map to these documented env vars
export OPENAI_API_KEY=sk-APIsRouter-...
export OPENAI_BASE_URL=https://api.apisrouter.com/v1
# then add chat models by id in Settings, e.g. claude-sonnet-4-6Как Perplexica отвечает на вопрос и где сидит LLM.
Perplexica (ItzCrazyKns на GitHub, около 36K звёзд) — самый известный open-source answering engine в стиле Perplexity: он берёт вопрос, прогоняет реальный веб-поиск через встроенный инстанс SearxNG, читает результаты и заставляет LLM синтезировать ответ с цитированием. Режимы поиска (speed, balanced, quality) обменивают глубину retrieval на латентность, а режимы focus сужают источники до веба, обсуждений или академических статей. В 2026 году проект был переименован апстримом в Vane, вместе с образом Docker; архитектура и система провайдеров перенеслись, так что всё здесь применимо под любым из имён. Слот LLM — это то место, где живут качество синтеза и стоимость. Каждый ответ — один или несколько вызовов chat-completions, несущих извлечённые источники как контекст, что делает answering engine нагрузкой с большим объёмом входных токенов: модель читает намного больше, чем пишет. Система провайдеров относится к OpenAI как к одному из нескольких бэкендов (Ollama, Anthropic, Gemini, Groq и другие), и провайдер OpenAI — тот, у которого Base URL свободно редактируется, что и делает его точкой подключения шлюза. Одно поведение стоит знать заранее: когда Base URL — что угодно, кроме стандартного эндпоинта OpenAI, Perplexica намеренно показывает пустой список моделей по умолчанию и использует записи моделей, которые вы сами добавляете провайдеру. Это сделано намеренно, так как приложение не может знать, что обслуживает кастомный эндпоинт. Добавление claude-sonnet-4-6 или deepseek-v4-flash как записи модели — это вторая половина настройки, а не обходной путь.
Полная настройка: текущие релизы и устаревший config.toml.
Текущие релизы настраивают всё внутри приложения. При первом запуске экран настройки спрашивает про провайдеров; после этого те же поля живут в Settings. Выберите провайдера OpenAI, задайте API Key и Base URL, затем добавьте записи чат-моделей с id, которые планируете использовать. Id должны точно совпадать с каталогом шлюза, и каждая добавленная вами запись появляется в селекторе моделей рядом с полем поиска. Устаревшее поколение — файловое. Если в вашей инсталляции всё ещё есть config.toml, вы на поколении CUSTOM_OPENAI: заполните блок ниже и перезапустите контейнер. MODEL_NAME принимает один id модели, который UI затем предлагает как опцию custom OpenAI.
[MODELS.CUSTOM_OPENAI]
API_KEY = "sk-YOUR-APISROUTER-KEY"
API_URL = "https://api.apisrouter.com/v1"
MODEL_NAME = "claude-sonnet-4-6"Выбор модели синтеза для answering engine.
Поскольку селектор моделей читает любые записи, которые вы добавили против одного Base URL, A/B-тестирование моделей синтеза тривиально: задайте один и тот же вопрос в двух вкладках с двумя записями и сравните цитирование. Лог использования по ключу оценивает ответы каждой модели, что честный способ решить, отрабатывает ли топовый синтез свои токены на вашем миксе запросов.
- Входные токены доминируют. Ответ в режиме quality может протолкнуть большие извлечённые контексты в промпт, так что цена за входной токен вашего id задаёт стоимость поиска, а не короткий ответ, который он пишет обратно.
- claude-sonnet-4-6 — сильное умолчание для синтеза с цитированием: он хорошо следует инструкциям по обоснованию источниками и остаётся связным, когда много сниппетов противоречат друг другу.
- Высоконагруженные личные или командные инстансы хорошо себя чувствуют на claude-haiku-4-5-20251001, gemini-3.5-flash или deepseek-v4-flash: ответы остаются обоснованными, а стоимость поиска падает достаточно, чтобы оставить режим quality включённым.
- Держите топовый id как вторую запись. Записи моделей сидят бок о бок в селекторе, так что эскалация одного сложного вопроса на gpt-5.5 — это смена в выпадающем списке, а не правка конфига.
- Академический режим focus вознаграждает модели с длинным контекстом, поскольку абстракты и выдержки статей объёмнее веб-сниппетов.
Оплата по факту · дешевле официальных цен
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Модель | Официальная цена | Наша цена |
|---|---|---|
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| Claude Haiku 4.5 20251001 | $1.00 / $5.00 per M | $0.80 / $4.00 per M |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 per M |
| Gemini 3.5 Flash | $1.50 / $9.00 per M | $1.20 / $7.20 per M |
| DeepSeek V4 Flash | $0.14 / $0.28 per M | $0.10 / $0.30 per M |
Сбои, специфичные именно для Perplexica.
Пустой список моделей — классика. Вы задаёте Base URL, селектор становится пустым, и выглядит это сломанным. Это не так: с не-умолчательным Base URL Perplexica листит только записи моделей, которые вы добавляете провайдеру. Добавьте свои id, и они появятся. Эмбеддинги — отдельный слот. Perplexica использует модели эмбеддинга для rerank результатов, и провайдер OpenAI обслуживает эмбеддинги с того же Base URL и ключа. Если ваш шлюз не обслуживает id эмбеддинга, который вы там настроили, rerank ломается, пока ответы чата продолжают работать. Чистое разделение — держать эмбеддинги на локальном провайдере Transformers, который работает на машине вообще без API, и маршрутизировать через шлюз только синтез чата. Переименование сбивает с толку гайды. Perplexica и Vane — один и тот же проект; старые туториалы ссылаются на образ Docker perplexica и config.toml, текущие сборки поставляются как vane с настройками внутри приложения и персистентным томом данных. Если в вашей инсталляции нет config.toml, не создавайте его — он не читается; настраивайте вместо этого через UI или задокументированные переменные окружения. SearxNG независим. Если ответы деградируют или поиск ничего не возвращает, это контейнер SearxNG или его настройка формата JSON, а не эндпоинт LLM. Base URL двигает только вызовы чата и эмбеддинга.
Кто направляет Perplexica через шлюз.
- Self-hosters, заменяющие подписку Perplexity, которым нужен синтез топового качества на каждый поиск по ценам за токены, с одним ключом вместо аккаунта у вендора на каждое семейство моделей.
- Команды, запускающие общий answering engine, где лог использования по ключу превращает «во сколько нам обходится поиск» в число по каждой модели.
- Настройки, ориентированные на приватность, которые держат retrieval полностью локально (SearxNG плюс локальные эмбеддинги) и выпускают наружу только финальный вызов синтеза через один аудируемый эндпоинт.
- Экспериментаторы, сравнивающие модели синтеза на идентичных вопросах: каждый кандидат — это одна запись модели против одного и того же Base URL.
- Разработчики без доступа к биллингу конкретного вендора. Доступ на основе пополнения без требования карты убирает зависимость от регистрации у каждого провайдера.
Проверьте эндпоинт и отладьте первый поиск.
Убедитесь, что шлюз обслуживает добавленные вами id, прежде чем винить приложение; записи у провайдера должны точно совпадать с выводом /v1/models. Сбои первого запуска следуют паттерну. «No chat model providers configured» означает, что поля провайдера не сохранились либо список моделей всё ещё пуст; добавьте хотя бы одну запись чат-модели. 401 в логах сервера означает, что ключ не совпадает с эндпоинтом в поле Base URL. Ошибка model-not-found — это опечатка id в записи модели. Ошибки rerank при работающих ответах указывают на слот эмбеддинга, и именно здесь вас спасает локальный провайдер Transformers. А если ничего не изменилось после правки переменных окружения, помните, что конфиг сохраняется в томе данных; поля, уже сохранённые в UI, побеждают более позднее изменение окружения, так что правьте их в Settings. Как только поиски начинают работать, консоль APIsRouter показывает модель на запрос, счётчики токенов и расходы. Answering engine требовательны к входным данным, и увидеть реальное число токенов на поиск для вашего микса запросов лучше любой оценки.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Частые вопросы
Perplexica — тот же проект, что и Vane?
Да. Апстримный репозиторий был переименован в Vane в 2026 году, и образ Docker последовал за ним. Система провайдеров, интеграция с SearxNG и описанное здесь поле Base URL одинаковы под обоими именами; только устаревшие релизы всё ещё используют имя Perplexica и config.toml.
Может ли Perplexica использовать модели Claude или DeepSeek для ответов?
Да. Провайдер OpenAI пересылает id моделей как простые строки на тот Base URL, который вы задали. Добавьте claude-sonnet-4-6 или deepseek-v4-flash как записи моделей против Base URL шлюза, и они появятся в селекторе моделей как любая другая опция.
Почему список моделей пуст после того, как я изменил Base URL?
Так задумано. С не-умолчательным Base URL Perplexica не может предполагать, какие модели обслуживает эндпоинт, так что она листит только записи, которые вы добавляете провайдеру сами. Добавьте свои id в Settings, и они появятся немедленно.
Какие устаревшие ключи конфига CUSTOM_OPENAI?
В поколении config.toml (вплоть до линейки v1.10 и v1.11) блок [MODELS.CUSTOM_OPENAI] принимает API_KEY, API_URL и MODEL_NAME. Задайте API_URL как эндпоинт шлюза, включая /v1, и MODEL_NAME как один id из каталога, затем перезапустите.
Маршрутизируются ли эмбеддинги тоже через кастомный Base URL?
Если вы настраиваете модели эмбеддинга у провайдера OpenAI, то да, они используют тот же Base URL и ключ. Большинство настроек шлюза вместо этого держат эмбеддинги на локальном провайдере Transformers, которому не нужен API, и это оставляет rerank независимым от эндпоинта чата.
Всё ещё работают переменные окружения OPENAI_API_KEY и OPENAI_BASE_URL?
Да, это задокументированные маппинги окружения для двух полей провайдера OpenAI в текущих релизах. Учтите, что значения, уже сохранённые через UI настроек, сохраняются в томе данных, так что правьте там, если приложение уже было однажды настроено.