API

OpenAI-совместимый API.

SacredAI и Heretic в привычном формате OpenAI. Меняются только адрес и ключ, а лимиты общие с чатом.

Первый запрос за минуту.

  1. Создай ключ

    В кабинете, раздел «API-ключи». Понадобится двухфакторная аутентификация.

  2. Укажи адрес

    https://sacredgpt.pro/v1, ключ передаётся как Bearer sg_live_…

  3. Выбери модель

    sacredai-heretic или бесплатная sacredgpt-auto

cURL
curl https://sacredgpt.pro/v1/chat/completions \
  -H "Authorization: Bearer $SACREDGPT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sacredai-heretic",
    "messages": [{"role": "user", "content": "Привет!"}]
  }'

Официальные SDK OpenAI работают как есть.

Без адаптеров: укажи Base URL SacredGPT и свой ключ.

Python
from openai import OpenAI

client = OpenAI(
    base_url="https://sacredgpt.pro/v1",
    api_key="sg_live_...",
)

response = client.chat.completions.create(
    model="sacredai-heretic",
    messages=[{"role": "user", "content": "Привет!"}],
)

print(response.choices[0].message.content)
TypeScript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://sacredgpt.pro/v1",
  apiKey: process.env.SACREDGPT_KEY,
});

const response = await client.chat.completions.create({
  model: "sacredai-heretic",
  messages: [{ role: "user", content: "Привет!" }],
});

console.log(response.choices[0].message.content);

Две модели.

Модели, доступные ключу, отдаёт GET /v1/models.

SacredAI Heretic

sacredai-heretic

Прямые ответы с минимумом отказов. 10 запросов на пробу, дальше нужен тариф чата.

SacredAI

sacredgpt-auto

Повседневная модель. Бесплатно, лимит обновляется сам.

Стриминг и инструменты.

Streaming

Добавь stream: true, и ответ придёт частями через Server-Sent Events.

Tools

Передавай tools и tool_choice в формате OpenAI. Вызовы функций вернутся в tool_calls.

Structured output

Для ответа по JSON Schema используй response_format. Поддержка зависит от текущего маршрута Heretic.

TypeScript · streaming
const stream = await client.chat.completions.create({
  model: "sacredai-heretic",
  messages: [{ role: "user", content: "Объясни этот код" }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

Общие с чатом

Ключ тратит те же лимиты модели, что чат и режим Agent. Они обновляются каждые 5 часов и раз в неделю.

Когда лимит закончился

Придёт ошибка 429. Когда лимит вернётся, видно в заголовках x-ratelimit-reset-* и в GET /v1/usage.

Скорость

RPM, TPM и число одновременных потоков ограничивает сервер. В кабинете они пока не настраиваются.

Ошибки.

Коды, которые стоит обработать в приложении.

HTTPCodeЧто произошло
400invalid_requestНеверное тело запроса или параметры
401invalid_api_keyКлюч неверен, истёк или не имеет нужного scope
403heretic_plan_required10 бесплатных запросов Heretic закончились, нужен тариф чата
404model_not_foundТакой модели нет или ключу она недоступна
409idempotency_replayЭтот Idempotency-Key уже использован
413request_too_largeЗапрос слишком большой
429sacredai_limit_reached · heretic_limit_reachedЛимит на 5 часов или 7 дней исчерпан
429sacredai_concurrency_limit · heretic_concurrency_limitСлишком много одновременных запросов к модели
429rate_limit_exceeded · concurrent_stream_limitПревышен RPM, TPM или лимит потоков ключа
502provider_errorВременный сбой модели, повтори запрос
503model_provider_busyМодель перегружена, повтори через минуту
504model_timeoutМодель не успела ответить

Вопросы об API

API оплачивается отдельно?

Нет. API входит в тариф чата: обычный ключ тратит те же лимиты модели, что чат и режим Agent. Цены за токен нет.

Сохраняются ли мои запросы?

Содержимое API-запросов не попадает в историю чатов. Хранятся только технические данные для лимитов, расчётов и безопасности. К запросам Heretic применяются условия хранения текущего провайдера.

Как узнать остаток лимита?

GET /v1/usage с правом usage:read вернёт расход ключа и общий статус Heretic. Для sacredai-heretic можно отправить последним сообщением /usage: ответ придёт без вызова модели и без расхода лимита.

Сервер выполняет функции из tools?

Нет. Модель возвращает tool_calls, твой код выполняет функцию и отправляет результат обратно модели.

Прямая линия

Нашёл баг? Покажи нам.

Опиши, что произошло и чего ты ожидал. Адрес страницы и браузер помогут быстрее воспроизвести проблему.