POST Поиск Алисы

Поиск Алисы — отдельный метод. Это не чат и не инструмент `web_search` у YandexGPT. Модель `yandex/alice-search` принимает вопрос, ищет в Яндексе и возвращает г

POST
/yandex/gen/search

Отдельный метод, не chat/completions и не инструмент web_search. Модель yandex/alice-search. Списание — один запрос, в том числе если Яндекс отказал в ответе. Поле folderId клиент не передаёт: шлюз подставляет каталог сам и чужое значение отбрасывает.

АвторизацияBearer <token>

Ключ вывода sk-router-…. Ключ кабинета sk-mgmt-… здесь не подходит.

Где: header

Тело запроса

application/json

Нужен query или хотя бы одно сообщение. Поле folderId игнорируется. Если model передан, это только yandex/alice-search.

Тело ответа

application/json

application/json

application/json

curl -X POST "https://example.com/yandex/gen/search" \  -H "Content-Type: application/json" \  -d '{    "model": "yandex/alice-search",    "query": "кто сейчас мэр Москвы"  }'
[
  {
    "message": {
      "role": "string",
      "content": "string"
    },
    "sources": [
      {
        "url": "string",
        "title": "string",
        "used": true
      }
    ],
    "searchQueries": [
      {
        "text": "string",
        "reqId": "string"
      }
    ],
    "fixedMisspellQuery": "string",
    "isAnswerRejected": true,
    "isBulletAnswer": true
  }
]
{
  "error": {
    "message": "string",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}
{
  "error": {
    "message": "string",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}

Запрос

Адрес: POST https://www.llmmart.ru/api/v1/yandex/gen/search.

Нужен query или хотя бы одно сообщение. Поле model необязательно. Если оно передано, это только yandex/alice-search.

Каталог Яндекса подставляет шлюз. Свой folderId передавать не нужно: такое поле отбрасывается.

Необязательные поля, все из контракта Яндекса:

  • fixMisspell — исправлять опечатки. По умолчанию true.
  • enableNrfmDocs — брать страницы, на которые нет ссылки с главной. По умолчанию выключено.
  • site, host или url — сузить поиск. Можно только одно из трёх. Вид: {"site":["example.com"]}, {"host":["example.com"]} или {"url":["https://example.com/a"]}.
  • searchFilters — список. В каждом элементе одно поле: date, lang (код языка из двух букв) или format (DOC_FORMAT_PDF и соседние форматы).

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

{
  "model": "yandex/alice-search",
  "query": "кто сейчас мэр Москвы"
}

Тот же вопрос сообщениями:

{
  "messages": [
    {"role": "user", "content": "кто сейчас мэр Москвы"}
  ]
}

Роли: user и assistant. Текст сообщения — строка.

Пример curl

curl -sS https://www.llmmart.ru/api/v1/yandex/gen/search \
  -H "Authorization: Bearer sk-…" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "кто сейчас мэр Москвы"
  }'

Не chat/completions

POST /chat/completions с моделью yandex/alice-search не выполняет поиск. Используйте только POST /yandex/gen/search.

Ответ

Успех — HTTP 200 и список кусков ответа. В элементе текст, источники, уточнённые запросы, исправленная опечатка и два флага: отказ по этике (isAnswerRejected) и ответ списком тезисов (isBulletAnswer).

[
  {
    "message": {
      "role": "ROLE_ASSISTANT",
      "content": "Сергей Собянин — действующий мэр Москвы."
    },
    "sources": [
      {"url": "https://example.com", "title": "Страница", "used": true}
    ],
    "searchQueries": [{"text": "мэр Москвы", "reqId": "…"}],
    "fixedMisspellQuery": "",
    "isAnswerRejected": false,
    "isBulletAnswer": false
  }
]

Отказ Яндекса тоже приходит с кодом 200. В теле может быть пометка, что ответ отклонён. Такой вызов списывается: единица тарифа — сам запрос.

Списание

Один успешный ответ — одна единица измерения requests. Токенов в ответе нет. Ставка видна в карточке модели. К ней применяется та же наценка, что и к остальным ценам.

Тело запроса — до 1 МиБ JSON.

Что дальше