# Text completions

> POST /v1/completions для устаревшего формата «промпт на входе, текст на выходе».


Устаревший эндпоинт для промптов, для инструментов, которые до сих пор на нём работают. Он выполняет промпт как одно сообщение пользователя на тех же моделях. Для всего нового используйте [chat completions](/ru/api/chat-completions).

```endpoint
POST https://api.notholy.com/v1/completions
```

## Запрос

| Поле | Тип | Обязательное | Примечания |
|---|---|---|---|
| `model` | string | Да | ID модели |
| `prompt` | string или array | Да | Строка или массив ровно из одной строки |
| `max_tokens` | number | Нет | По умолчанию 16. Не больше максимального выхода модели |
| `stream` | boolean | Нет | `true` возвращает чанки `text_completion` и `data: [DONE]` |
| `temperature`, `top_p`, `stop` | | Нет | Передаются модели |
| `n` | number | Нет | Только `1` |

Инструментов и глубины рассуждений здесь нет. `echo`, `logprobs` и `suffix` игнорируются.

## Ответ

```json
{
  "id": "cmpl-4Qz7",
  "object": "text_completion",
  "created": 1793836800,
  "model": "notholy-specter",
  "choices": [{ "index": 0, "text": " ../../etc/passwd encoded as %2e%2e%2f…", "finish_reason": "length", "logprobs": null }],
  "usage": { "prompt_tokens": 14, "completion_tokens": 60, "total_tokens": 74 }
}
```

- В стриме каждый чанк содержит `choices[0].text`. В последнем чанке есть `finish_reason` и `usage`.

## Пример

```bash test
curl https://api.notholy.com/v1/completions \
  -H "Authorization: Bearer $NOTHOLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "notholy-specter", "prompt": "A path traversal payload in a file download parameter looks like", "max_tokens": 60}'
```

```python test
import os
from openai import OpenAI

client = OpenAI(base_url="https://api.notholy.com/v1", api_key=os.environ["NOTHOLY_API_KEY"])

r = client.completions.create(model="notholy-specter", prompt="The OWASP category for SSRF is", max_tokens=30)
print(r.choices[0].text)
```

## Ошибки

`400` нет `prompt`, больше одного промпта или `n` больше 1 · `401` неверный ключ · `402` закончились кредиты · `404` неизвестная модель · `429` занято · `503` модель недоступна. См. [Ошибки](/ru/guides/errors).
