59$ в первый месяцПланы

Завершения чата

Отправляйте запросы чата, совместимые с OpenAI, с понятным контролем.

Запускайте рабочие процессы чата для помощников, вторых пилотов и внутренних инструментов с помощью знакомой формы запроса, серверных ключей, отслеживания использования и безопасного поведения при повторных попытках.

Последнее обновление: July 12, 2026. Examples использование safe placeholders и сделать не включить real API ключs, секреты, или customer данные.

Путь по умолчанию

Сначала используйте непотоковые запросы. Они возвращают полный ответ Chat.Completion, и их легче проверить до того, как клиентский трафик вырастет.

Путь реализации

Четыре шага от ключа до ответа.

Пусть первая интеграция будет небольшой: выполните аутентификацию на своем бэкэнде, отправьте минимальный массив сообщений, проанализируйте ответ, затем добавьте повторную попытку и обработку ограничения скорости.

Step 1

Аутентификация на стороне сервера

Считайте ключ API с областью действия из переменной среды на стороне сервера и отправьте его как токен носителя.

Открыть раздел

Step 2

Отправить запрос в чат

Опубликуйте полезные данные, совместимые с OpenAI, со строкой модели и массивом сообщений.

Открыть раздел

Step 3

Разобрать ответ

Прочтите options[0].message.content для сообщения помощника и использования для учета запросов.

Открыть раздел

Step 4

Обработка ограничений и ошибок

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

Открыть раздел

Конечная точка

Опубликуйте JSON на пути завершения чата.

Конечная точка следует по пути /v1, совместимому с /v1. Отправляйте запросы из доверенного серверного кода с помощью токена носителя с ограниченной областью действия.

Требования и примечания к конечной точке завершения чата.
ТоварЗначениеПримечания
МетодPOSTОтправьте JSON в конечную точку завершения чата.
Конечная точкаhttps://unlimitedcodex.com/v1/chat/completionsИспользуйте тот же базовый шаблон URL, что и другие OpenAI-совместимые конечные точки /v1.
АвторизацияТокен на предъявителяИспользуйте ключ API с областью чата: запись из доверенного серверного кода.
Тип контентаприложение/jsonТело запроса должно быть действительным JSON.

Непотоковый запрос

Начните с полного ответа.

Непотоковые запросы — самый безопасный первый путь, поскольку ваш клиент получает полный объект ответа, статус, заголовки и информацию об использовании в одном месте.

Храните ключ API в process.env или у секретного менеджера.

Используйте короткую системную инструкцию и минимальное сообщение пользователя.

Установите max_tokens, когда для пользовательского интерфейса или бюджета затрат требуется потолок.

Анализируйте использование, чтобы мониторинг запросов, токенов и затрат оставался точным.

const response = await fetch("https://unlimitedcodex.com/v1/chat/completions", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.UCX_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "gpt-5.5",
    messages: [
      { role: "system", content: "You write concise operational summaries." },
      { role: "user", content: "Summarize the release checklist in three bullets." }
    ],
    temperature: 0.2,
    max_tokens: 180
  })
});

const body = await response.json();

if (!response.ok) {
  throw new Error(body.error?.code ?? "chat_request_failed");
}

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

Форма запроса и ответа

Используйте знакомые поля чата и учет использования.

Требуемая форма небольшая: строка модели и хотя бы одно сообщение. Дополнительные поля могут ужесточить поведение выходных данных или планирование ограничения скорости.

Поля запроса на завершение чата, статус и примечания.
ПолеСтатусПримечания
модельРекомендуетсяПередайте значение целевой модели явно. Используйте gpt-5.5 или значения модели ChatGPT 5.5 Ultra и Codex, указанные в поставляемых вами установочных файлах.
сообщенияТребуетсяМассив сообщений системы, пользователя, помощника или инструмента. Включите только контекст, необходимый для задачи.
температураНеобязательноИспользуйте число от 0 до 2, если рабочий процесс требует большего или меньшего изменения.
max_токеныНеобязательноОграничьте продолжительность ответа, когда пользовательский опыт или бюджет затрат требуют предсказуемого потолка.
потокНеобязательноОпустите его или установите false для текущего поддерживаемого пути. Прежде чем устанавливать значение true, ознакомьтесь с поведением потоковой передачи ниже.
{
  "id": "chatcmpl_example",
  "object": "chat.completion",
  "created": 1783372800,
  "model": "gpt-5.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "This is an unlimitedcodex chat completion response. Use the delivered setup files for available ChatGPT 5.5 Ultra and Codex model values."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "inputTokens": 24,
    "outputTokens": 32,
    "totalTokens": 56
  }
}

Потоковое поведение

Рассматривайте потоковую передачу как явную проверку возможностей.

Не предполагайте, что запрос потоковой передачи будет вести себя как запрос без потоковой передачи. Перейдите к коду ответа и сохраните запасной путь, одобренный продуктом.

{
  "error": {
    "message": "Streaming responses are not enabled for this endpoint.",
    "type": "unsupported_feature",
    "code": "streaming_not_enabled"
  }
}
Настройки режима потоковой передачи, поведение и действия клиента.
РежимНастройкаПоведениеДействия клиента
Нет потокового вещанияПропустить поток или установить поток: falseВозвращает полный объект Chat.Completion, когда запрос принят.Используйте его как путь по умолчанию для первых интеграций и рабочих процессов, ориентированных на клиента.
Потоковое вещаниепоток: правдаТекущая конечная точка возвращает 501streaming_not_enabled.Возвращайтесь к отключению потоковой передачи только тогда, когда это приемлемо для пользователя.

Примечания к маршрутизации модели

Сделайте политику модели видимой до того, как трафик вырастет.

Поле модели является частью контракта запроса и операционной записи. Держите это намеренно, а затем просмотрите политику перед запуском изменений объема.

Сохраняйте модель явной

Отправляйте значение модели в каждом запросе, чтобы журналы использования, анализ использования и эскалация поддержки имели стабильный сигнал политики.

Не думайте о тихом отступлении

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

Регистрировать только безопасные идентификаторы

Захватите конечную точку, статус, модель, использование и префикс замаскированного ключа. Не регистрируйте необработанные запросы, ключи API или данные клиентов.

Безопасные повторы

Повторяйте только работу, которую можно восстановить.

Повторные попытки помогают справиться с временной нагрузкой и сбоями обслуживания. Они могут усугубить проблемы с емкостью, полезной нагрузкой и выставлением счетов, когда ничего не меняется.

Повторить временные сбои

408, 500, 502, 503, 504 и короткое давление 429.

Используйте ограниченную экспоненциальную задержку с джиттером. Уважайте повторную попытку — после того, как ответ включает ее.

Не повторяйте неизмененные полезные данные

400, 401, 402, 403, 501 и давление производительности

Исправьте полезную нагрузку, ключ, состояние выставления счетов, объем, неподдерживаемый параметр или емкость пакета, прежде чем снова отправлять ту же работу.

Сохраняйте повторы невидимыми для секретов

Все клиентские реализации

Повторите функцию запроса, а не зарегистрированную необработанную полезную нагрузку. Редактировать заголовки авторизации и содержимое клиентов из диагностики.

async function runWithChatRetries(runRequest) {
  for (let attempt = 0; attempt < 3; attempt += 1) {
    const response = await runRequest();

    if (response.ok) {
      return response;
    }

    const body = await response.clone().json().catch(() => ({}));
    const code = body.error?.code;
    const retryable =
      [408, 500, 502, 503, 504].includes(response.status) ||
      (response.status === 429 && code === "rate_limit_exceeded");

    if (!retryable) {
      return response;
    }

    const retryAfter = Number(response.headers.get("retry-after") ?? 0);
    const backoffMs = retryAfter > 0 ? retryAfter * 1000 : 500 * 2 ** attempt;
    const jitterMs = Math.floor(Math.random() * 150);

    await new Promise((resolve) => setTimeout(resolve, backoffMs + jitterMs));
  }

  return runRequest();
}

Контрольный список запуска

Проверьте интеграцию, прежде чем от нее будут зависеть пользователи.

Готовый к запуску рабочий процесс чата требует большего, чем просто успешный запрос. Подтверждайте ключи, ограничения, ошибки, журналы и резервное поведение, пока радиус взрыва еще мал.

Используйте отдельные ключи для разработки, подготовки и производства.

Подтвердить чат: записать область и хранилище на стороне сервера.

Решите, должен ли потокstream_not_enabled блокироваться или отступить.

Отслеживайте количество запросов, входные токены, выходные токены, состояние скорости и коды состояния.

Редактируйте запросы, заголовки авторизации, необработанные ключи и данные клиентов из журналов.

Свяжите ошибки пользовательского интерфейса с действиями повторной попытки, поддержки или обновления вместо общего текста об ошибке.

FAQ

Вопросы по завершению чата.

Совместима ли конечная точка завершения чата OpenAI?

Да. Конечная точка использует знакомый путь /v1/chat/completions, аутентификацию носителя, массив сообщений, объект ответаchat.completion, варианты выбора и поля использования.

Стоит ли использовать потоковую передачу для клиентского трафика?

Используйте запросы без потоковой передачи, если ваша интеграция не подтвердила поддержку потоковой передачи. Текущая конечная точка возвращает 501streaming_not_enabled, когда поток имеет значение true.

Что мне следует регистрировать для отладки?

Зарегистрируйте конечную точку, состояние, код ошибки, модель, использование, метку времени, среду и префикс маскированного ключа. Не регистрируйте необработанные ключи API, секреты, полные запросы или данные клиентов.

Когда моему клиенту следует повторить запрос в чат?

Повторите переходный процесс 408, давление скорости 429 и ответы 5xx с ограниченной задержкой. Не повторяйте попытки без изменений аутентификации, полезной нагрузки, выставления счетов, емкости или сбоев неподдерживаемых функций.

Следующий шаг

Сочетайте завершение чата с аутентификацией, ограничениями и обработкой ошибок.

Перед запуском убедитесь, что область действия ключей ограничена, поведение ограничения скорости понятно, а повторные попытки клиента отличают временное давление от необходимых исправлений.

OpenAI-совместимый Chat API | unlimitedcodex