Перейти к содержанию
Модуль 10: API и интеграции с AIУрок 5 из 10

Прогресс курса: 107 из 158 уроков · вся программа

Учебник по AI

Perplexity API: поиск с источниками в своём сервисе

Ваши менеджеры тратят часы на поиск актуальных данных для клиентов - курсов валют, цен конкурентов, новостей. А если клиент просит ссылку на источник - приходится всё перепроверять. Perplexity API решает это: один запрос - готовый ответ с проверенными ссылками. Разбираем, как подключить за час без найма разработчика.

· 12 мин чтения
Perplexity API: поиск с источниками в своём сервисе
Содержание статьи

Ваши менеджеры тратят часы на поиск актуальных данных для клиентов - курсов валют, цен конкурентов, новостей. А если клиент просит ссылку на источник - приходится всё перепроверять. 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 офлайн-модели: когда что использовать

Контекст выполнения Онлайн-модели работают в режиме реального времени, получают запросы через сеть и генерируют ответ за считанные миллисекунды. Офлайн-модели загружаются в локальное окружение, работают без постоянного доступа к интернету и могут использовать более тяжёлые вычисления. Выбор зависит от требований к задержке, объёму данных, безопасности и стоимости.

Когда предпочтительнее онлайн-модель

  1. Динамический контент - если ответы зависят от постоянно меняющихся источников (новости, цены, соц-сети), онлайн-модель гарантирует актуальность.
  2. Ограниченные ресурсы клиента - мобильные устройства, браузеры или IoT-устройства часто не способны держать большие нейросети. Перенос вычислений на сервер освобождает память и процессор.
  3. Единый контроль версии - централизованное обновление модели устраняет необходимость в рассылке патчей пользователям.
  4. Сложные лицензии - если модель построена на коммерческих ядрах, их использование в облаке упрощает соблюдение условий.
  5. Масштабируемость - автоскейлинг в облаке позволяет обслуживать всплески нагрузки без деградации качества.

Когда выгоднее офлайн-модель

  1. Низкая латентность - локальная конференция исключает сетевые задержки, что критично для игровых движков, систем рекомендаций в реальном времени и промышленных контроллеров.
  2. Ограниченный доступ к сети - в отдалённых регионах, на кораблях или в закрытых корпоративных сетях отсутствие интернета делает офлайн-решение единственным вариантом.
  3. Конфиденциальность данных - если запросы содержат персональную или коммерческую информацию, хранить их локально снижает риск утечки.
  4. Стоимость запросов - при большом объёме запросов цена за токен в облаке может превысить затраты на собственный сервер.
  5. Регулятивные ограничения - некоторые отрасли (здравоохранение, финансы) требуют, чтобы данные не покидали границы страны; офлайн-модель помогает соблюдать эти правила.

Гибридные подходы

Часто выгодно комбинировать оба типа. Пример: базовый классификатор работает офлайн, а для уточнения или получения контекста вызывается онлайн-модель. Такой паттерн уменьшает количество сетевых запросов, сохраняет быстрый отклик и при этом использует актуальные знания.

Практический чек-лист

Критерий Онлайн Офлайн
Требуется актуальная информация?
Ограничения по задержке < 100 мс?
Есть стабильный интернет?
Нужно соблюдать строгие политики конфиденциальности?
Ожидается высокий объём запросов? ❌ (может стать дорогим) ✅ (единовременные затраты)

Как внедрять

  1. Оцените нагрузку - смоделируйте количество запросов в секунду и средний размер входных данных.
  2. Подберите инфраструктуру - для онлайн-модели выберите облачного провайдера с GPU/CPU-инстансами, для офлайн-модели подготовьте сервер или edge-устройство с достаточным ОЗУ.
  3. Тестируйте латентность - измерьте время от отправки запроса до получения ответа в реальных условиях.
  4. Организуйте мониторинг - следите за ошибками, расходом токенов (для онлайн) и загрузкой процессора (для офлайн).
  5. Обновляйте модель - планируйте периодический релиз новых весов, учитывая, что в офлайн-сценарии обновление требует доставки пакета клиенту.

Выбор между онлайн- и офлайн-моделью - компромисс между актуальностью, скоростью, безопасностью и стоимостью. Тщательный анализ требований проекта позволяет подобрать оптимальное сочетание и избежать лишних расходов.

Цитирования в ответе 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 - каждое утверждение в ответе можно проверить, и это снижает риск галлюцинаций до приемлемого уровня.

Что делать прямо сейчас:

  1. Зарегистрируйтесь на Perplexity и получите бесплатный API-ключ.
  2. Скопируйте Python-скрипт из статьи, вставьте свой ключ и запустите на любом компьютере.
  3. Протестируйте на своих вопросах - например, «актуальные цены на медь» или «новые требования к маркировке рекламы».
  4. Если результат устраивает - передайте скрипт вашему менеджеру или встройте в CRM через простой веб-интерфейс.

Частые вопросы

Чем Perplexity API отличается от обычного ChatGPT или Claude?

Perplexity API возвращает не просто текстовый ответ, а ещё и массив ссылок на источники, из которых взяты данные. Это позволяет клиенту проверить информацию и повышает доверие к ответу. Обычные языковые модели без поиска работают только на знаниях из обучающей выборки и не знают актуальных данных.

Сколько стоит и хватит ли бесплатного лимита для теста?

Бесплатного тарифа хватит, чтобы протестировать на реальных задачах: 5 000 токенов - это примерно 10-20 подробных ответов на запросы клиентов. Для прототипа и проверки этого достаточно. Платный Pro-тариф снимает ограничения и поднимает скорость запросов.

Безопасно ли передавать коммерческие данные через API?

API-ключ нельзя хранить в публичных репозиториях вроде GitHub - только в файле переменных окружения .env. Нарушение контент-политики (дезинформация, вредоносный код) ведёт к мгновенной блокировке ключа. Если данные конфиденциальны, стоит рассмотреть офлайн-модель, которая не отправляет запросы во внешний сервис.

Когда использовать поиск с источниками, а когда обычную модель без него?

Модель с поиском нужна, когда ответ зависит от актуальных данных: цены, новости, юридические нормы. Обычная модель без поиска быстрее и дешевле - подходит для чат-бота с фиксированными правилами или задач, где свежесть данных не критична.

AI Компас (t.me/kosmoslab_ai) - канал для предпринимателей в РФ и СНГ, которые применяют AI в своём бизнесе без программиста. Разбираем инструменты и схемы - без курсов и теории.

Читайте дальше

Учебник

GPT обрабатывает ваши документы: OpenAI API с нуля

Ваш менеджер тратит часы на ручную обработку заявок, договоров и писем. Подключаем OpenAI API к вашему бизнесу: получаем ключ, отправляем первый запрос, получаем ответ в строгом формате. Без курсов и теории - конкретный шаг для внедрения.

Учебник

Claude читает Slack, Notion и Telegram: MCP-серверы

Ваши менеджеры тратят часы на переключение между Slack, Notion и Telegram: скопировали задачу, вставили в Notion, написали в чат. А если ошибка - ищут по всему workspace. Вот как подключить Claude к этим сервисам через MCP - протокол, который даёт AI прямой доступ к вашим данным. Никакого кода, только настройка. Разберём на примере стройфирмы: как собрать сводку из Slack, создать страницу в Notion и отправить отчёт в Telegram за один запрос.

Учебник

MCP-сервер: базы и API к Claude без программиста

У вас есть прайс, база клиентов или внутренний API, но Claude их не видит? MCP-сервер решает это за 20 строк Python. Разбираем, как написать сервер на FastMCP, подключить к Claude Desktop и выкатить на удалёнку. Без курсов, без архитектур - только конкретный шаг для малого бизнеса.