Ваши менеджеры тратят часы на поиск актуальных данных для клиентов - курсов валют, цен конкурентов, новостей. А если клиент просит ссылку на источник - приходится всё перепроверять. Perplexity API решает это: один запрос - готовый ответ с проверенными ссылками. Разбираем, как подключить за час без найма разработчика.
Perplexity API позволяет интегрировать в ваше приложение мощный поиск с автоматическим предоставлением проверенных источников, используя модель LLM (большая языковая модель - нейросеть, которая понимает и генерирует текст) от Perplexity. Вы получаете ответы, обогащённые ссылками на оригинальные документы, что повышает доверие пользователей и упрощает проверку информации. Благодаря простому REST-интерфейсу (способ, которым одна программа общается с другой через интернет) и гибкой настройке запросов, подключить такой поиск к веб-сайту, мобильному клиенту или боту можно за несколько минут.
Perplexity API: что доступно и какие модели
Perplexity AI предлагает два основных типа моделей через свой API: search-augmented generation (SAG) - модель с поиском, и pure LLM - обычная языковая модель без поиска. Оба работают в режиме «text-completion» (завершение текста), но различаются по способу получения контекста и по стоимости запросов.
1. Search-augmented generation (SAG)
SAG-модель сочетает генеративный LLM с внешним веб-поиском. При запросе она автоматически формирует поисковый запрос, получает релевантные фрагменты из интернета (включая новости, научные статьи, официальные документы) и использует их как «контекст» для генерации ответа. Это дает два главных преимущества:
- Актуальность. Ответы отражают информацию, появившуюся после последнего крупного обновления LLM.
- Прозрачность. В каждом ответе возвращается массив
sources- ссылки, заголовки и короткие выдержки, из которых модель черпала данные.
Разберём на примере турагентства. У вас есть менеджер, который ищет для клиента актуальные визовые требования для поездки в Японию. Вместо того чтобы вручную лазить по сайтам посольств и форумам, вы даёте ему инструмент, который за секунду выдаёт сводку с ссылками на официальные источники. Клиент видит, что информация проверена, - доверие растёт.
Доступные конечные точки API
| Конечная точка API | Описание | Параметры |
|---|---|---|
/v1/search |
Классический поиск с генерацией ответа. | query (строка запроса), max_results (количество результатов, по умолчанию 5), include_sources (включать ли источники). |
/v1/answer |
Только генерация без поиска (получает уже подготовленный контекст). | prompt (текст запроса), context (массив строк с контекстом). |
Тарифы и лимиты
- Free tier: 5 000 токенов (единиц текста, примерно 3-4 тысячи слов) в месяц, 1 запрос в секунду, ограничение 2 KB на размер контента источника. Подходит для прототипов и небольших ботов.
- Pro tier: 250 000 токенов, 10 запросов в секунду, расширенный размер источников (до 10 KB). Включает приоритетный доступ к поисковому индексу.
- Enterprise: индивидуальные лимиты, гарантия доступности 99.9 %, возможность локального индекса.
Для малого бизнеса: если вы только пробуете, бесплатного тарифа хватит, чтобы протестировать на реальных задачах. Например, 5 000 токенов - это примерно 10-20 подробных ответов на запросы клиентов. Уже можно оценить, стоит ли переходить на платный тариф.
2. Pure LLM (без поиска)
Для задач, где важна скорость и предсказуемость, Perplexity предоставляет чистый LLM без обращения к внешнему поиску. Это обычная модель «text-completion», обученная на большом корпусе публичных данных до 2023 года.
Доступные модели
| Модель | Размер (количество параметров) | Максимум токенов | Стоимость (USD за 1 000 токенов) |
|---|---|---|---|
pplx-7b |
7 миллиардов | 8 192 | $0.015 |
pplx-13b |
13 миллиардов | 8 192 | $0.025 |
pplx-70b |
70 миллиардов | 16 384 | $0.12 |
Все модели поддерживают system-prompt (системный промпт - инструкция, задающая стиль ответа) и temperature (температура - параметр, управляющий случайностью ответа, от 0 до 2). При необходимости можно включить logprobs для получения вероятностных распределений.
Конечная точка API
/v1/completions- стандартный запрос к LLM. Принимаетmodel,prompt,max_tokens,temperature,top_p,stop.
3. Выбор модели в зависимости от задачи
| Сценарий | Рекомендованная модель | Почему |
|---|---|---|
| Ответы на актуальные новости, юридические запросы, техническая справка | search (SAG) |
Автоматический поиск гарантирует свежие данные и ссылки. |
| Чат-бот с фиксированным набором правил, быстрый отклик | pplx-13b |
Хороший компромисс между качеством и скоростью. |
| Генерация кода, сложные математические рассуждения | pplx-70b |
Большой контекст и более глубокие цепочки рассуждений. |
| Прототип в ограниченном бюджете | Free tier + search |
5 000 токенов достаточно для небольших запросов, а поиск обеспечивает актуальность. |
Разберём на примере стройфирмы. Вам нужно быстро узнать актуальные цены на арматуру или новые нормы пожарной безопасности. SAG-модель найдёт это в интернете и даст ссылки на официальные документы. Менеджер не тратит время на поиск, а сразу предоставляет клиенту точную цифру.
4. Формат ответа и работа с источниками
Ответ от SAG-модели выглядит так:
{
"answer": "Текущий курс доллара США к рублю - 93,12 ₽.",
"sources": [
{
"title": "Курс валют на сегодня",
"url": "https://www.cbr.ru/...",
"snippet": "На 3 июня 2026 года доллар стоит 93,12 рубля."
},
{
"title": "Финансовый дайджест",
"url": "https://finance.example.com/...",
"snippet": "Курс доллара вырос на 0,4 % за последние 24 часа."
}
]
}
snippet (краткая выдержка) ограничен 300 символами, но достаточно для проверки достоверности. При необходимости можно запросить полные HTML-страницы через параметр include_raw.
5. Интеграция в приложение
Зачем это бизнесу: ниже код, который ваш менеджер или фрилансер может скопировать и запустить на любом компьютере. Он отправляет запрос Perplexity и получает ответ с источниками. Всё, что нужно - API-ключ (получить бесплатно).
import requests
API_KEY = "YOUR_PERPLEXITY_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
def ask_perplexity(query):
payload = {
"query": query,
"max_results": 3,
"include_sources": True
}
r = requests.post("https://api.perplexity.ai/v1/search", json=payload, headers=HEADERS)
r.raise_for_status()
data = r.json()
return data["answer"], data["sources"]
Код выше демонстрирует минимальный запрос к SAG-модели. Для чистого LLM замените URL на /v1/completions и укажите model.
6. Ограничения и рекомендации
- Контент-политика: запрещено использовать API для генерации дезинформации, вредоносного кода и контента для взрослых. Нарушения приводят к мгновенной блокировке ключа.
- Кеширование: если ваш сервис часто задаёт одинаковые вопросы, кешируйте ответы и их источники. Это экономит токены и ускоряет отклик.
- Токен-лимит: при работе с длинными запросами (более 4 KB) разбивайте их на части и отправляйте последовательно, иначе запрос будет отклонён.
Perplexity API предоставляет гибкое сочетание актуального поиска и мощных LLM. Выбор модели зависит от требуемой свежести данных, скорости отклика и бюджета проекта. Правильная настройка параметров и соблюдение лимитов позволяют интегрировать поиск с источниками в любые веб- и мобильные приложения без лишних сложностей.
Получение API-ключа и аутентификация
Интеграция поиска с источниками начинается с получения учетных данных. Перейдите на официальный сайт Perplexity и выполните вход в личный кабинет. В правом верхнем углу интерфейса расположена кнопка профиля. Нажмите на нее и в выпадающем списке выберите раздел "Settings" (Настройки). В боковом меню открывшейся страницы перейдите во вкладку "API & Auth". Здесь отображается список существующих ключей и кнопка управления ими. Нажмите "Create New Key" для генерации нового токена. Система предложит ввести произвольное имя, например, "My First App", чтобы упростить идентификацию ключа в будущем. После подтверждения ключ появится на экране. Скопируйте его и сохраните в защищенном месте. Perplexity не показывает полный ключ повторно, поэтому при потере придется создавать новый.
Важно соблюдать меры безопасности. Никогда не сохраняйте API-ключ в системы контроля версий вроде GitHub. Для локальной разработки используйте файл переменных окружения .env. Добавьте туда строку PERPLEXITY_API_KEY=ваш_ключ. Для работы с этим файлом в Python установите библиотеку python-dotenv и загрузите переменные при запуске скрипта. Это предотвратит случайную утечку данных.
Процесс аутентификации в API Perplexity использует заголовок HTTP. Каждый запрос к сервису должен включать заголовок Authorization. Значение этого заголовка формируется по схеме: слово Bearer, затем пробел и ваш ключ. Также обязательно укажите заголовок Content-Type: application/json, так как сервер принимает данные только в этом формате.
Рассмотрим практический пример отправки запроса на Python. Сначала импортируйте необходимые библиотеки и получите ключ из переменных окружения. Сформируйте словарь заголовков:
headers = {
"Authorization": f"Bearer {os.getenv('PERPLEXITY_API_KEY')}",
"Content-Type": "application/json"
}
При отправке POST-запроса на адрес https://api.perplexity.ai/chat/completions передайте этот словарь в параметр headers. Если аутентификация прошла успешно, сервер вернет ответ с кодом 200 и данными. В случае ошибки 401 проверьте правильность ключа и наличие пробелов в строке авторизации. Корректная настройка заголовков - фундамент для работы с поиском.
Первый запрос: Python и curl примеры
Для взаимодействия с API используется конечная точка https://api.perplexity.ai/chat/completions. Ключевое отличие от стандартных моделей LLM заключается в выборе модели с суффиксом online. Такие модели имеют доступ к поисковому индексу в реальном времени. Если выбрать модель без этого суффикса, поиск работать не будет.
Начнем с утилиты curl. Этот метод идеален для быстрой отладки прямо из терминала. В заголовке Authorization передается ключ API. В теле запроса обязательно указывается модель и массив сообщений. Структура сообщений соответствует стандарту OpenAI, что упрощает миграцию.
Пример запроса в терминале:
curl -X POST https://api.perplexity.ai/chat/completions \
-H 'Authorization: Bearer pplx-ваш_ключ_здесь' \
-H 'Content-Type: application/json' \
-d '{
"model": "llama-3.1-sonar-small-128k-online",
"messages": [
{"role": "system", "content": "Ты точный помощник, который всегда ссылается на источники."},
{"role": "user", "content": "Какова текущая цена биткоина и как она изменилась за неделю?"}
]
}'
В ответе сервер возвращает JSON объект. Главное поле choices содержит текстовый ответ. Поле citations представляет собой массив ссылок на сайты, использованные при формировании ответа. Ссылки в тексте ответа обычно обозначаются числами в квадратных скобках, например [1], которые соответствуют индексам в массиве citations.
Для интеграции в программные продукты чаще используют Python. Библиотека requests является стандартом де-факто для таких задач. Код ниже демонстрирует базовую настройку клиента.
Пример кода на Python:
import requests
import json
url = "https://api.perplexity.ai/chat/completions"
headers = {
"Authorization": "Bearer pplx-ваш_ключ_здесь",
"Content-Type": "application/json"
}
payload = {
"model": "llama-3.1-sonar-small-128k-online",
"messages": [
{"role": "system", "content": "Отвечай на русском языке."},
{"role": "user", "content": "Последние достижения в квантовых вычислениях."}
]
}
response = requests.post(url, headers=headers, json=payload)
if response.status_code == 200:
data = response.json()
answer = data['choices'][0]['message']['content']
citations = data.get('citations', [])
print("Ответ модели:", answer)
print("Список источников:")
for link in citations:
print(link)
else:
print("Ошибка:", response.status_code, response.text)
В этом примере добавлена проверка статус-кода. Успешный запрос возвращает код 200. Параметр json в методе requests.post автоматически преобразует словарь в формат JSON. Извлечение списка citations позволяет создать интерфейс, где пользователь может кликнуть по ссылке и проверить первоисточник информации. Это критически важно для приложений, требующих высокой достоверности данных, таких как финансовые аналитические инструменты или образовательные платформы.
Онлайн-модели vs офлайн-модели: когда что использовать
Контекст выполнения Онлайн-модели работают в режиме реального времени, получают запросы через сеть и генерируют ответ за считанные миллисекунды. Офлайн-модели загружаются в локальное окружение, работают без постоянного доступа к интернету и могут использовать более тяжёлые вычисления. Выбор зависит от требований к задержке, объёму данных, безопасности и стоимости.
Когда предпочтительнее онлайн-модель
- Динамический контент - если ответы зависят от постоянно меняющихся источников (новости, цены, соц-сети), онлайн-модель гарантирует актуальность.
- Ограниченные ресурсы клиента - мобильные устройства, браузеры или IoT-устройства часто не способны держать большие нейросети. Перенос вычислений на сервер освобождает память и процессор.
- Единый контроль версии - централизованное обновление модели устраняет необходимость в рассылке патчей пользователям.
- Сложные лицензии - если модель построена на коммерческих ядрах, их использование в облаке упрощает соблюдение условий.
- Масштабируемость - автоскейлинг в облаке позволяет обслуживать всплески нагрузки без деградации качества.
Когда выгоднее офлайн-модель
- Низкая латентность - локальная конференция исключает сетевые задержки, что критично для игровых движков, систем рекомендаций в реальном времени и промышленных контроллеров.
- Ограниченный доступ к сети - в отдалённых регионах, на кораблях или в закрытых корпоративных сетях отсутствие интернета делает офлайн-решение единственным вариантом.
- Конфиденциальность данных - если запросы содержат персональную или коммерческую информацию, хранить их локально снижает риск утечки.
- Стоимость запросов - при большом объёме запросов цена за токен в облаке может превысить затраты на собственный сервер.
- Регулятивные ограничения - некоторые отрасли (здравоохранение, финансы) требуют, чтобы данные не покидали границы страны; офлайн-модель помогает соблюдать эти правила.
Гибридные подходы
Часто выгодно комбинировать оба типа. Пример: базовый классификатор работает офлайн, а для уточнения или получения контекста вызывается онлайн-модель. Такой паттерн уменьшает количество сетевых запросов, сохраняет быстрый отклик и при этом использует актуальные знания.
Практический чек-лист
| Критерий | Онлайн | Офлайн |
|---|---|---|
| Требуется актуальная информация? | ✅ | ❌ |
| Ограничения по задержке < 100 мс? | ❌ | ✅ |
| Есть стабильный интернет? | ✅ | ❌ |
| Нужно соблюдать строгие политики конфиденциальности? | ❌ | ✅ |
| Ожидается высокий объём запросов? | ❌ (может стать дорогим) | ✅ (единовременные затраты) |
Как внедрять
- Оцените нагрузку - смоделируйте количество запросов в секунду и средний размер входных данных.
- Подберите инфраструктуру - для онлайн-модели выберите облачного провайдера с GPU/CPU-инстансами, для офлайн-модели подготовьте сервер или edge-устройство с достаточным ОЗУ.
- Тестируйте латентность - измерьте время от отправки запроса до получения ответа в реальных условиях.
- Организуйте мониторинг - следите за ошибками, расходом токенов (для онлайн) и загрузкой процессора (для офлайн).
- Обновляйте модель - планируйте периодический релиз новых весов, учитывая, что в офлайн-сценарии обновление требует доставки пакета клиенту.
Выбор между онлайн- и офлайн-моделью - компромисс между актуальностью, скоростью, безопасностью и стоимостью. Тщательный анализ требований проекта позволяет подобрать оптимальное сочетание и избежать лишних расходов.
Цитирования в ответе API: как их получить и использовать
Ответ API Perplexity содержит не только сгенерированный текст, но и структурированный список источников, критически важный для верификации данных. Основной массив ссылок находится в поле citations внутри объекта сообщения. Это массив строк, где каждая строка представляет собой полный URL ресурса, использованного нейросетью. Внутри самого текста ответа (content) источники обозначены числовыми маркерами в квадратных скобках, например [1] или [2].
Для получения этих данных необходимо использовать модели с поддержкой онлайн-поиска, такие как sonar или llama-3.1-sonar-small-online. Если запрос не требует поиска или модель работает оффлайн, поле citations будет пустым или отсутствовать.
Интеграция цитирований в приложение строится в три шага. Сначала вы парсите citations как список URL и собираете их в отдельный блок ответа - это даёт пользователю прозрачный реестр источников. Затем заменяете в тексте content маркеры [1], [2] на кликабельные ссылки или сноски - большинство фронтенд-фреймворков справляются с этим через регулярное выражение и компонент типа Link. И наконец, валидируете доступность URL фоном: если ссылка ведёт на 404 или paywall, помечайте её отдельной иконкой, чтобы не подрывать доверие пользователя.
Для backend-сервисов разумно кешировать результат запроса вместе с массивом citations, чтобы при повторных запросах не тратить токены и не получать разный набор источников. Кеш-ключом обычно берут хеш от исходного промпта плюс параметры модели, время жизни - от часов до суток в зависимости от того, насколько свежей должна быть выдача.
Вывод
Perplexity API - это поиск с источниками, который интегрируется в приложение через один HTTP-запрос. Минимальная конфигурация: выбор модели sonar, настройка цитирований и кеширование. Дальше всё зависит от нагрузки: для прототипа достаточно бесплатного лимита, для боевой среды имеет смысл подключить мониторинг расходов и фильтрацию источников по доменам, чтобы не отдавать пользователю ссылки на сомнительные ресурсы. Главное преимущество перед классическим LLM - каждое утверждение в ответе можно проверить, и это снижает риск галлюцинаций до приемлемого уровня.
Что делать прямо сейчас:
- Зарегистрируйтесь на Perplexity и получите бесплатный API-ключ.
- Скопируйте Python-скрипт из статьи, вставьте свой ключ и запустите на любом компьютере.
- Протестируйте на своих вопросах - например, «актуальные цены на медь» или «новые требования к маркировке рекламы».
- Если результат устраивает - передайте скрипт вашему менеджеру или встройте в CRM через простой веб-интерфейс.
Частые вопросы
Чем Perplexity API отличается от обычного ChatGPT или Claude?
Perplexity API возвращает не просто текстовый ответ, а ещё и массив ссылок на источники, из которых взяты данные. Это позволяет клиенту проверить информацию и повышает доверие к ответу. Обычные языковые модели без поиска работают только на знаниях из обучающей выборки и не знают актуальных данных.
Сколько стоит и хватит ли бесплатного лимита для теста?
Бесплатного тарифа хватит, чтобы протестировать на реальных задачах: 5 000 токенов - это примерно 10-20 подробных ответов на запросы клиентов. Для прототипа и проверки этого достаточно. Платный Pro-тариф снимает ограничения и поднимает скорость запросов.
Безопасно ли передавать коммерческие данные через API?
API-ключ нельзя хранить в публичных репозиториях вроде GitHub - только в файле переменных окружения .env. Нарушение контент-политики (дезинформация, вредоносный код) ведёт к мгновенной блокировке ключа. Если данные конфиденциальны, стоит рассмотреть офлайн-модель, которая не отправляет запросы во внешний сервис.
Когда использовать поиск с источниками, а когда обычную модель без него?
Модель с поиском нужна, когда ответ зависит от актуальных данных: цены, новости, юридические нормы. Обычная модель без поиска быстрее и дешевле - подходит для чат-бота с фиксированными правилами или задач, где свежесть данных не критична.
AI Компас (t.me/kosmoslab_ai) - канал для предпринимателей в РФ и СНГ, которые применяют AI в своём бизнесе без программиста. Разбираем инструменты и схемы - без курсов и теории.
