# Поиск по базе знаний

export default function Layout(props) {
  const { OpenAPIPage } = props.components ?? {};
  return (
    <>
      {props.children}
      ## Поиск по базе знаний

`POST /api/v1/knowledge/search`

**Авторизация:** dpop или oauth2: `knowledge:read`

**Тело запроса** (`application/json`, обязательное): object
- `aiAnalysis`: boolean — Добавить ИИ-разбор результатов
- `collections`: массив "sources" | "documents" | "records" — Где искать: источники баз знаний, документы, записи реестров
- `filters`: object — Фильтры по атрибутам знаний
  - `documentType`: string — Фильтр по типу документа
  - `documentTypes`: массив string — Фильтр по нескольким типам документов
  - `legalDomain`: string — Фильтр по правовой области
  - `normType`: string — Фильтр по типу нормы
- `graphDepth`: integer — Глубина обхода графа связей, 0–5
- `knowledgeBaseIds`: массив string (uuid) — Ограничить поиск этими базами знаний
- `limit`: integer — Максимум результатов, до 50
- `query`: string, обязательное — Поисковый запрос на естественном языке
- `scope`: "all" | "team" | "corpus" — Охват: all — всё, team — только базы команды, corpus — только правовая база платформы
- `strategy`: "vector" | "graph" | "hybrid" — Стратегия: vector — по смыслу, graph — по связям, hybrid — комбинированная

**Ответы**

- `200` — Результаты поиска (`application/json`, KnowledgeSearchResult)
  - `results`: массив object — Найденные фрагменты с оценками релевантности
- `400` — Некорректный запрос: не прошла валидация параметров или тела (`application/problem+json`, ProblemDetails)
- `401` — Токен отсутствует, недействителен или истёк (`application/problem+json`, ProblemDetails)
- `403` — Недостаточно прав или scope (`application/problem+json`, ProblemDetails)

    </>
  );
}
