---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.3
alternate:
  - https://yandex.ru/support/neurosupport/ru/documents-post.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/support/neurosupport/ru/llms.txt

# Documents Post

Создание индекса или обновление существующего.

`https://supportgpt.yandex.ru/indexer/v1/indexes/{index_name}/documents`

Метод: `POST`.

- `index_name` — Строковое имя индекса (строка, обязательное). Для формирования index_name используйте полученный ранее префикс, значение должно начинаться с него. Подробнее см. раздел [Загрузка базы знаний](https://yandex.ru/support/neurosupport/ru/api-recommendations.md#knowledge-base-upload).

Схема запроса (Request Body schema: `application/json`):

- `service` — Строковый идентификатор сервиса (строка, обязательное).
- `product` — Строковый идентификатор продукта (строка, обязательное).
- `meta` — Метаинформация об индексе (опциональное).
- `auto_switch` — Нужно ли сразу переключиться на новый индекс после добавления данных. При установке `false` для переключения есть отдельный запрос. При создании нового индекса, данные старого индекса на какое-то время остаются в базе (логическое значение, опциональное).
- `index_version` — Опциональное поле для указания версии индекса (число, опциональное). В случае отсутствия версия будет определена автоматически. Если указать ранее загруженную версию, на которую еще не было переключения, документы будут добавлены к этой версии. Для добавления документов в активную версию, на которую уже было переключение, используйте флаг `diff`.
- `documents` — Список документов для индексации (обязательное). Обратите внимание, что большие документы при загрузке разбиваются на части меньшего размера. Идентификатор каждой такой части будет `(идентификатор документа)_(номер части)`. Например, объемный документ с `"doc_id": "instructions"` будет загружен частями с идентификаторами `"doc_id": "instructions_0", "instructions_1"` и&nbsp;т.&nbsp;д. (обязательное):
  - `doc_id` — Id документа, длина не более 255 символов (строка, обязательное).
  - `title` — Заголовок документа (строка, обязательное).
  - `text` — Текст документа (строка, обязательное).
  - `meta` — Дополнительные метаданные документа, заносятся в индекс в виде пар key-value в свободном формате (опциональное).
  - `typed_meta` — значения метаданных для гибкой фильтрации (опциональное, подробнее см. раздел [Гибкая фильтрация по метаданным](https://yandex.ru/support/neurosupport/ru/api-recommendations.md#flexible-metadata-filtering)):
    - `params` — Метапараметры документов, могут быть использованы в запросах (опциональное):
      - `name` — Название параметра (строка, обязательное).
      - `param_type` — Тип параметра (строка, опциональное).
      - `value` — Значение параметра (опциональное).
- `diff` — Если `true`, то индекс будет создан на основе существующего, с добавкой переданных документов. При совпадении id документов информация будет заменена (логическое значение, опциональное).

Схема ответа:

- `index_name` — Строковое имя индекса (строка, обязательное).
- `index_version` — Версия индекса, который был обновлен (строка, обязательное).
- `index_parent_version` — Если был выставлен флаг `diff`, то в этом поле будет версия родительского индекса, на основе которого был создан новый индекс (строка, опциональное).

Пример запроса:

```json
{
  "service": "your_service",
  "product": "your_product",
  "meta": {
    "source": "исходный источник данных, зависит от клиента",
    "description": "описание индекса"
  },
  "auto_switch": true,
  "index_version": 1,
  "documents": [
    {
      "doc_id": "doc42",
      "title": "Инструкция по решению такой-то технической проблемы",
      "text": "Чтобы решить такую-то техническую проблему, надо предпринять такие-то действия",
      "meta": {
        "title": "заголовок документа",
        "source_id": "исходный источник документа такой-то",
        "some_another_key": "some_another_value"
      },
      "typed_meta": {
        "params": [
          {
            "name": "entity",
            "param_type": "bool",
            "value": "book"
          }
        ]
      }
    }
  ],
  "diff": false
}
```

Пример ответа:

```json
{
  "index_name": "your_index_name",
  "index_version": 3,
  "index_parent_version": 2
}
```
