РуководстваОпубликовано: 26.08.20260 просмотров

OpenAI API через curl, Python и Node.js: инструкция (2026)

Первый вызов OpenAI-совместимого API через curl, PowerShell, Python и Node.js: Base URL, API Key, Model ID, переменные окружения, ошибки и безопасный запуск.

Короткий ответ: если провайдер выдал вам Base URL, API Key и Model ID, его OpenAI-совместимый API можно проверить из командной строки, а затем подключить через Python или Node.js. Учётная запись OpenAI для этого не нужна, а ключ не придётся записывать прямо в исходный код.

Инструкция подходит для сервисов, которые заявляют совместимость с OpenAI Chat Completions или предоставляют endpoint /v1/chat/completions. У нативных API Anthropic и Gemini, а также у сервисов только с Responses API формат запроса отличается. В таком случае следуйте документации своего провайдера.

Что понадобится

Откройте личный кабинет API-провайдера и найдите три параметра:

ПараметрПримерНа что обратить внимание
Base URLhttps://api.example.com/v1Используйте адрес своего провайдера, а не пример из статьи
API Keysk-...Храните только на своём устройстве или сервере
Model IDgpt-4.1-miniСкопируйте точный идентификатор из доступного вам списка моделей

Base URL часто заканчивается на /v1. SDK сам добавляет путь /chat/completions, поэтому в его настройках указывают только базовый адрес. Для curl нужен полный endpoint:

Base URL: https://api.example.com/v1
Полный endpoint: https://api.example.com/v1/chat/completions

Некоторые сервисы используют адрес без /v1 или собственный путь. Не добавляйте части URL наугад: ориентируйтесь на пример запроса в документации провайдера. Если эти термины пока незнакомы, сначала прочитайте что такое Base URL, Model ID и Token.

Шаг 1. Сохраните настройки в переменных окружения

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

Windows PowerShell

$env:AI_API_KEY="ваш API Key"
$env:AI_BASE_URL="https://api.example.com/v1"
$env:AI_MODEL="точный Model ID из личного кабинета"

macOS или Linux

export AI_API_KEY="ваш API Key"
export AI_BASE_URL="https://api.example.com/v1"
export AI_MODEL="точный Model ID из личного кабинета"

Не отправляйте настоящий ключ в мессенджер, не показывайте его на скриншоте и не запускайте примеры с ним в публичном онлайн-компиляторе. Подробнее об этом рассказывает руководство по безопасности API Key.

Способ 1. Минимальный запрос из командной строки

Начинать полезно именно с него: если прямой запрос работает, а программа — нет, значит проблема почти наверняка в настройке SDK или в коде.

macOS или Linux: curl

curl "$AI_BASE_URL/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AI_API_KEY" \
  -d '{
    "model": "'"$AI_MODEL"'",
    "messages": [
      {"role": "user", "content": "Ответь только: соединение работает"}
    ],
    "temperature": 0.2
  }'

Windows PowerShell

В Windows PowerShell кавычки обрабатываются иначе, поэтому надёжнее использовать встроенную команду Invoke-RestMethod:

$headers = @{
  "Authorization" = "Bearer $env:AI_API_KEY"
  "Content-Type"  = "application/json"
}

$body = @{
  model = $env:AI_MODEL
  messages = @(
    @{ role = "user"; content = "Ответь только: соединение работает" }
  )
  temperature = 0.2
} | ConvertTo-Json -Depth 5

Invoke-RestMethod `
  -Uri "$env:AI_BASE_URL/chat/completions" `
  -Method Post `
  -Headers $headers `
  -Body $body

При успехе вы получите JSON-ответ. Проверьте четыре вещи:

  • в choices[0].message.content есть текст модели;
  • поле model соответствует фактически вызванной модели;
  • в usage могут быть указаны входные, выходные и общие токены;
  • в личном кабинете появилась новая операция, а списание соответствует короткому тесту.

Не каждый совместимый сервис возвращает одинаковый набор полей в usage. Для базовой проверки достаточно статуса HTTP 200 и непустого массива choices.

Способ 2. Вызов API из Python

Возьмём официальный Python SDK OpenAI, но направим его на Base URL выбранного провайдера.

1. Установите Python и библиотеку

Подойдёт Python 3.9 или новее:

python --version
python -m pip install --upgrade openai

В Windows вместо python иногда используется команда py.

2. Создайте файл test_api.py

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["AI_API_KEY"],
    base_url=os.environ["AI_BASE_URL"],
)

response = client.chat.completions.create(
    model=os.environ["AI_MODEL"],
    messages=[
        {"role": "system", "content": "Отвечай кратко и по делу."},
        {"role": "user", "content": "Ответь только: Python подключён"},
    ],
    temperature=0.2,
)

print(response.choices[0].message.content)
if response.usage:
    print("Всего токенов:", response.usage.total_tokens)

3. Запустите

python test_api.py

Ответ «Python подключён» означает, что основные настройки верны. Если программа сообщает об отсутствующей переменной окружения, задайте её ещё раз в том же окне терминала и повторите запуск.

Способ 3. Вызов API из Node.js

Для примера потребуется Node.js 18 или более новая версия.

1. Создайте проект и установите SDK

mkdir api-test
cd api-test
npm init -y
npm install openai

2. Создайте файл test-api.mjs

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.AI_API_KEY,
  baseURL: process.env.AI_BASE_URL,
});

const response = await client.chat.completions.create({
  model: process.env.AI_MODEL,
  messages: [
    { role: "system", content: "Отвечай кратко и по делу." },
    { role: "user", content: "Ответь только: Node.js подключён" },
  ],
  temperature: 0.2,
});

console.log(response.choices[0].message.content);
if (response.usage) {
  console.log("Всего токенов:", response.usage.total_tokens);
}

3. Запустите

node test-api.mjs

Если провайдер показывает полный endpoint, не помещайте весь путь /chat/completions в параметр baseURL. Иначе SDK может добавить его повторно и вернуть ошибку 404.

Какой способ выбрать

СпособДля когоПреимуществоОграничение
curl / PowerShellПервичная проверка и диагностикаМинимум зависимостей, виден исходный ответНеудобно для большого приложения
PythonАвтоматизация, обработка данных, первые AI-проектыКороткий код и много готовых библиотекНужно установить Python и зависимости
Node.jsСайты, боты и JavaScript-проектыХорошо подходит для серверной части веб-приложенийКлюч нельзя переносить в браузерный код

Если программировать пока не хочется, воспользуйтесь инструкцией по работе с AI API без кода.

Типичные ошибки

Статус или симптомЧастая причинаЧто проверить сначала
401 UnauthorizedНеверный, отозванный ключ или неправильный заголовокСкопируйте ключ заново и проверьте схему Bearer
403 ForbiddenОграничение аккаунта, региона, IP или прав на модельСтатус аккаунта и разрешения ключа
404 Not FoundОшибка в пути или дублирование /v1Сопоставьте полный URL с документацией
model not foundОшибка в Model ID или нет доступаСкопируйте идентификатор из доступного списка
429 Too Many RequestsЗакончился баланс или превышен лимит частоты, токенов, параллельных запросовБаланс, квоты и статус сервиса
500/502/503Временный сбой у провайдера или вышестоящего сервисаПовторите позже или переключите маршрут
Тайм-аутСеть, медленная модель или слишком длинный контекстСначала отправьте короткий запрос из этой статьи

Оптимальный порядок диагностики:

  1. Проверьте баланс и состояние аккаунта в личном кабинете.
  2. Заново скопируйте Base URL, API Key и Model ID.
  3. Отправьте минимальный запрос через curl или PowerShell.
  4. Сохраните полный HTTP-статус и текст ошибки.
  5. Если прямой запрос успешен, вернитесь к Python или Node.js.
  6. Если ошибка остаётся, передайте поддержке время, модель, статус и request ID, но не полный ключ.

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

Что изменить перед запуском реального проекта

Не вызывайте API прямо из браузера

JavaScript сайта, расширение браузера и переменные фронтенда доступны пользователю. Пример Node.js предназначен только для контролируемой вами серверной среды. В браузерную сборку API Key попадать не должен.

Добавьте тайм-аут и ограниченные повторы

Ошибки 429, 502 и 503 иногда проходят после паузы, но число повторов должно быть ограничено. Бесконечный цикл опасен. Кроме того, запрос мог завершиться у провайдера, даже если клиент не получил ответ: бездумный повтор способен привести к двойному списанию.

Сверьте модель и расходы

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

Итоговый чек-лист

  • Base URL взят из документации провайдера, а не из чужого скриншота.
  • Model ID скопирован из списка, доступного вашему аккаунту.
  • API Key хранится в переменной окружения, а не в коде.
  • Минимальный запрос через curl или PowerShell возвращает HTTP 200.
  • Python или Node.js получает текст из choices[0].message.content.
  • Операция и списание появились в личном кабинете.
  • Реальное приложение обращается к API с сервера и ограничивает тайм-ауты и повторы.
  • Вы знаете, как отозвать ключ, и подготовили резервный маршрут.

После этого базовая цепочка «проверка endpoint → вызов из программы → сверка расходов» готова. Следующий полезный материал — как устроена тарификация AI API. Осваивайте потоковую выдачу, длинный контекст и вызов инструментов по одному: так источник ошибки будет понятен.


Проверено: 26 августа 2026 года

Область применения: OpenAI-совместимый Chat Completions API

Рекомендация: начинайте с короткого запроса и небольшого баланса; точный endpoint и возможности модели всегда сверяйте с актуальной документацией провайдера.

Опубликовано: 26 августа 2026 г.
最后更新: 26.08.2026

Похожие статьи

Отказ от ответственности

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

© 2026 Выбор API. All rights reserved.