Skip to content

API и SDK

Для SDK и своих клиентов apikey.center удобнее всего рассматривать как OpenAI-compatible базовый URL.

Это страница не про один конкретный инструмент, а про общий принцип: если библиотека умеет работать с OpenAI-compatible API, то в большинстве случаев ее можно подключить к apikey.center просто через замену base_url и api_key.

Если библиотека умеет работать с OpenAI-compatible API, используй:

https://apikey.center/v1

Это подходит для:

  • собственных скриптов
  • backend-сервисов
  • SDK-клиентов
  • no-code или low-code коннекторов, если они ждут OpenAI-style endpoint

Что нужно проверить до интеграции

Section titled “Что нужно проверить до интеграции”

Перед кодом полезно заранее понять четыре вещи:

  • где в библиотеке задается base_url
  • где задается api_key
  • какой именно метод использует клиент: chat/completions, responses или другой OpenAI-compatible маршрут
  • какой model ID реально доступен тебе через GET /v1/models

Первая проверка через GET /v1/models

Section titled “Первая проверка через GET /v1/models”

macOS / Linux:

Terminal window
curl https://apikey.center/v1/models \
-H "Authorization: Bearer $APIKEY_CENTER_API_KEY"

Windows PowerShell:

Terminal window
Invoke-WebRequest `
-Uri "https://apikey.center/v1/models" `
-Headers @{ Authorization = "Bearer $env:APIKEY_CENTER_API_KEY" }

Если этот шаг не проходит, не нужно сразу дебажить SDK. Сначала добейся корректного ответа на этом самом простом HTTP-check.

Минимальный cURL для chat/completions

Section titled “Минимальный cURL для chat/completions”
Terminal window
curl https://apikey.center/v1/chat/completions \
-H "Authorization: Bearer $APIKEY_CENTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_MODEL_ID",
"messages": [
{ "role": "user", "content": "ping" }
]
}'

Минимальный пример через OpenAI-style SDK

Section titled “Минимальный пример через OpenAI-style SDK”

Если библиотека поддерживает настройку base_url, логика обычно выглядит так:

import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.APIKEY_CENTER_API_KEY,
baseURL: "https://apikey.center/v1",
});
const response = await client.chat.completions.create({
model: "YOUR_MODEL_ID",
messages: [{ role: "user", content: "ping" }],
});
console.log(response.choices[0]?.message);

Смысл примера не в конкретной библиотеке, а в общей схеме:

  • ключ берется из env
  • base URL указывает на https://apikey.center/v1
  • model ID задается явно

Порядок безопасной интеграции

Section titled “Порядок безопасной интеграции”
  1. сначала проверь GET /v1/models
  2. потом проверь один прямой HTTP-запрос
  3. потом подключай SDK
  4. потом добавляй retry, streaming, tool calling и остальную логику

Так проще отделить transport-проблемы от проблем кода приложения.

Что должно быть в любом SDK-примере

Section titled “Что должно быть в любом SDK-примере”
  • base_url или аналогичный параметр
  • api_key
  • явный model ID
  • короткий тестовый запрос
  • отдельная проверка GET /v1/models, если клиент не видит модели

Дополнительно полезно держать такие правила:

  • не хардкодить ключ в исходники
  • не полагаться на дефолтный base URL библиотеки
  • не скрывать model ID глубоко в конфиге, пока интеграция еще не проверена

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

  • сначала проверь GET /v1/models
  • затем проверь один минимальный inference-request
  • если models работает, а inference нет, проблема обычно уже в wire format клиента или model ID
  • верни исходный base_url библиотеки
  • убери временный APIKEY_CENTER_API_KEY из env
  • верни прежний model ID, если менял его только ради проверки
  • откати локальные тестовые примеры, если добавлял их временно

Оставили дефолтный URL библиотеки

Section titled “Оставили дефолтный URL библиотеки”

Если клиент всё еще ходит в api.openai.com или другой дефолтный endpoint, значит base_url не был реально переопределен.

Проверяют SDK до проверки обычного HTTP

Section titled “Проверяют SDK до проверки обычного HTTP”

Это делает диагностику сложнее. Сначала лучше добиться успеха на GET /v1/models и одном curl.

Подставили несуществующий model ID

Section titled “Подставили несуществующий model ID”

Если авторизация и URL уже правильные, а inference все равно не идет, очень часто проблема именно в названии модели.