---
title: "Ответить по материалам базы знаний"
method: POST
path: "/api/v1/knowledge/answer"
tags: ["Knowledge search"]
---

# Ответить по материалам базы знаний

`POST /api/v1/knowledge/answer`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/knowledge/answer`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)

Смысловой поиск с цитатами. Права проверяются до выдачи кандидатов и повторно перед возвратом цитаты: embeddings границей доступа не являются. Без опоры в материалах ответ честно отсутствует (abstained).

## Headers

- `X-Tenant` string, required

## Request body

- KnowledgeAnswerInput
  - `question` string, required
  - `limit` integer: Сколько фрагментов-опор искать; по умолчанию 6
  - `history` KnowledgeAnswerTurn[]: Предыдущие ходы диалога; доступ они не расширяют
    - `question` string, required
    - `answer` string, required
  - `scope` 'all' | 'company' | 'guides': Где искать: company — материалы компании, guides — встроенные руководства продукта, all — оба корпуса
  - `citations_only` boolean: Не сочинять ответ моделью, вернуть только найденные фрагменты и извлечённую сводку. Для того, кто говорит своим голосом и сам собирает ответ из цитат: без генерации ответ приходит за время поиска

## Response `200`

Ответ с цитатами

- KnowledgeAnswer
  - `id` string, uuid, required
  - `answer` string, required
  - `citations` KnowledgeCitation[], required
    - `chunk_id` string, uuid, required
    - `source_kind` string, required: Откуда фрагмент: страница, файл страницы или встроенное руководство
    - `asset_id` string, uuid
    - `node_id` string, uuid, required
    - `space_id` string, uuid, required
    - `revision_id` string, uuid, required
    - `title` string, required
    - `slug` string, required
    - `breadcrumb` string, required
    - `section_heading` string
    - `quote` string, required
    - `locator` object, required: Адрес фрагмента внутри источника
    - `is_stale` boolean, required
  - `abstained` boolean, required: Опоры в материалах не нашлось, и ответ не выдуман
  - `generated` boolean, required
  - `retrieval_mode` string, required

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/3c60ded179f2?raw)
