Завершения чата
Отправляйте запросы чата, совместимые с 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 с ограниченной задержкой. Не повторяйте попытки без изменений аутентификации, полезной нагрузки, выставления счетов, емкости или сбоев неподдерживаемых функций.
Бесплатные инструменты
Создание и проверка запросов чата
Создавайте фрагменты, проверяйте JSON, оценивайте токены и планируйте миграцию OpenAI перед первым живым звонком.
Запросить конструктор
Создайте визуальное завершение чата JSON и экспортируйте фрагменты cURL, JavaScript или Python.
Запросить валидатор
Проверьте полезные данные чата, встраивания и изображений JSON на соответствие правилам, совместимым с unlimitedcodex OpenAI.
Оценщик токенов
Оцените объем токена по тексту подсказки или ответа перед планированием и запуском квоты.
Генератор миграции
Сгенерируйте или преобразуйте фрагменты OpenAI SDK в базу unlimitedcodex URL, ключи и области действия.
Следующий шаг
Сочетайте завершение чата с аутентификацией, ограничениями и обработкой ошибок.
Перед запуском убедитесь, что область действия ключей ограничена, поведение ограничения скорости понятно, а повторные попытки клиента отличают временное давление от необходимых исправлений.