# Чат с опорой на поиск

Генерируйте ответ с веб-источниками, используя баланс платформы.

Отправьте вопрос и получите сгенерированный ответ с веб-источниками в одном ответе.

Во всех примерах используется `FELO_API_KEY` из [обзора](https://openapi.felo.ai/ru/docs/data-api/guides/felo-overview.md). Вызовы используют **баланс платформы**, а не кредиты Felo Pro. Примеры ответов носят иллюстративный характер; фактический контент и необязательные поля могут отличаться.

## Конечная точка

`POST /api/v1/data/chat`

Это конечная точка на балансе платформы. [Felo Search API](https://openapi.felo.ai/ru/docs/api-reference/chat.md) по адресу `/v2/chat` использует кредиты Pro и имеет другую оболочку ответа.

## Запрос

| Поле | Тип | Обязательно | Значение |
|---|---|---|---|
| `query` | string | Да | Вопрос, 1–2,000 символов |
| `accept_language` | string | Нет | Предпочтительный язык ответа, например `en`, `ja` или `zh-CN`; максимум 64 символа |
| `stream` | boolean | Нет | Должно быть `false`; по умолчанию `false` |

Используйте языковой тег с кодом языка из 2–8 букв и необязательными под-тегами через дефис, например `zh-TW`. Сервис добавляет это предпочтение к запросу генерации. Если параметр опущен, вышестоящий сервис выбирает язык; фиксированного значения по умолчанию нет, и вопрос на английском не гарантирует ответ на английском. Предпочтение применяется к сгенерированному ответу; заголовки и выдержки источников сохраняют свой исходный язык.

Эта конечная точка возвращает JSON без потоковой передачи. Она не поддерживает `stream: true`, SSE, массив `messages` или выбор модели.

```bash
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/chat" \
  -H "Authorization: Bearer $FELO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"Explain retrieval augmented generation and cite sources.","accept_language":"en","stream":false}'
```

## Ответ

HTTP 200 возвращает `status: "ok"` и объект `data`:

```json
{
  "status": "ok",
  "data": {
    "id": "example-chat-id",
    "message_id": "example-message-id",
    "answer": "Retrieval augmented generation adds retrieved context to a model request...",
    "resources": [
      {"title":"Example reference","link":"https://example.com/guide","snippet":"An overview of retrieval augmented generation."}
    ],
    "query_analysis": {"queries":["retrieval augmented generation"]}
  }
}
```

| Поле | Значение |
|---|---|
| `data.answer` | Сгенерированный ответ |
| `data.resources` | Исходные страницы с заголовками, ссылками и фрагментами |
| `data.query_analysis` | Необязательный анализ запроса; может быть null |
| `data.id`, `data.message_id` | Идентификаторы ответа |

Сначала проверьте HTTP-статус, затем читайте ответ и источники. Не проверяйте числовой `status: 200`, как это делается с `/v2/chat`.

## Биллинг

`chat` тарифицируется за запрос, а не по токенам модели. См. [текущие цены](https://openapi.felo.ai/api/v1/data/prices) и [Биллинг и ошибки](https://openapi.felo.ai/ru/docs/data-api/guides/felo-billing.md).
