---
id: projects-simplify-prompt
title: "POST /api/projects/simplify-prompt — Упростить постановку"
domain: projects
kind: api-method
http: "POST /api/projects/simplify-prompt"
---

# POST /api/projects/simplify-prompt — Упростить постановку {#projects-simplify-prompt}

## Сводка

| Поле | Значение |
|---|---|
| **HTTP** | `POST /api/projects/simplify-prompt` |
| **Auth** | `optionalAuth` — гость + авторизованный |
| **Scope токена** | `read_write` |
| **PG-функции** | — |
| **Таблицы** | — |
| **SRM** | SRM-396 |
| **RP (права)** | — |
| **Файл роута** | `server/routes/projects.js` |
| **Статус** | done |

**Аргументы запроса** (best-effort из хендлера; путь-параметры опущены):

| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
| `prompt` | body | | _подтвердить_ |
| `target_chars` | body | | _подтвердить_ |

**Коды ответов/ошибок** (из хендлера): `400`, `500`, `502` (+ `200`) — _уточнить причины вручную_

**Scope токена:** `read_write`, risk `COSTLY_LLM` (операция запускает LLM, поэтому
для токенов действует confirm-гейт; см. [Конвенции](../../../shared/conventions.md#conventions)).
Ничего не создаёт и не изменяет — возвращает текст, решение о его применении
остаётся за вызывающим.

**Тело запроса:**

| Поле | Обяз. | Описание |
|---|---|---|
| `prompt` | да | исходная постановка, до 50 000 знаков |
| `target_chars` | нет | целевой потолок в знаках, 5000…50000 (по умолчанию 5000) |

```bash
curl -X POST "$BASE/api/projects/simplify-prompt" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"prompt": "…длинная постановка…", "target_chars": 8000}'
```

Ответ `200`:

```json
{
  "prompt": "…сжатая постановка…",
  "chars": 7480,
  "original_chars": 19240,
  "target_chars": 8000,
  "within_target": true
}
```

`within_target: false` означает, что уложиться в потолок не удалось за два
захода — текст всё равно короче исходного, повторный вызов допустим. Обрезки по
символу не делается никогда: лучше отдать текст длиннее цели, чем оборвать его
на полуслове.

**Коды ошибок:** `400` — пустой `prompt`, постановка длиннее 50 000 знаков,
`target_chars` вне диапазона или постановка уже короче цели; `502` — LLM не
ответил или вернул пустой результат; `500` — внутренняя ошибка.

<!-- gen:start:related -->
## Связанные
- [Конвенции](../../../shared/conventions.md#conventions) · [Роли](../../../shared/roles.md#roles) · [Ошибки](../../../shared/errors.md#errors) · [Глоссарий](../../../shared/glossary.md#glossary)
<!-- gen:end:related -->

---

Human view: https://docs.vnimanie.ai/specbuilder/v1/domains/projects/api/simplify-prompt/