Начало
Аутентификация
Передавайте API-ключ как Bearer-токен или в x-api-key. Ключи принадлежат организации, и у них могут быть бюджеты и ограничения по моделям.
Каждому запросу нужен API-ключ. Передавайте его в одном из двух заголовков:
| Заголовок | Формат |
|---|---|
Authorization | Bearer nh_live_... |
x-api-key | nh_live_... (так делают SDK Anthropic) |
curl https://api.notholy.com/v1/models -H "x-api-key: $NOTHOLY_API_KEY"Ключи
Ключи создаются в консоли в разделе API-ключи. Каждый ключ принадлежит организации и рабочему пространству. Секрет показывается один раз и хранится только в виде хеша.
У ключа могут быть:
- Общий и дневной бюджет в долларах США. Если остатка бюджета не хватает на запрос, его лимит вывода уменьшается, а ниже 16 токенов запрос получает
402 key_budget_exceeded. - Список разрешённых моделей. На другие модели приходит
403 key_not_allowed. - Срок действия.
- Список разрешённых IP-адресов или диапазонов CIDR. Другие адреса получают
403 key_not_allowed.
Отзыв ключа срабатывает со следующего запроса.
Ключи в коде
Читайте ключ из окружения. Не коммитьте его. Если ключ утёк, отзовите его в консоли и создайте новый.
Никогда не встраивайте ключ в клиентский код. Вызывайте API со своего сервера или из терминала, а ключи держите в переменных окружения или хранилище секретов.
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.notholy.com/v1", api_key=os.environ["NOTHOLY_API_KEY"])
print([m.id for m in client.models.list()])Ошибки
| Статус | Код | Значение |
|---|---|---|
| 401 | invalid_api_key | Ключ отсутствует, неверен, отозван или истёк |
| 403 | key_not_allowed | Ключу нельзя использовать эту модель, или его нельзя использовать с этого IP-адреса |
| 403 | account_suspended | Организация заблокирована. Напишите в поддержку |
| 403 | consent_required | Создатель ключа не дал или отозвал согласие на обработку партнёрами в других странах. Принять его можно в консоли |