provod.ai / docs
API

Миграция совместимого с OpenAI клиента

Замените базовый URL и ключ API в существующей совместимой с OpenAI интеграции.

Обновлено

Запустите полный пример с SDK

Официальный OpenAI SDK можно сохранить для методов, которые входят в совместимый API provod.ai. Понадобятся Node.js, npm, curl и jq. Начните с одного обычного, не потокового запроса Chat Completions: он возвращает единый JSON-ответ, а не части по мере готовности.

Установите SDK

Terminal
npm install openai

Задайте ключ и выберите актуальную модель

Запросите текстовые модели, которые принимают используемый в примере параметр max_tokens. Проверки ниже требуют available == true и исключают записи для графических адресов API.

Terminal
set -euo pipefail

export PROVOD_API_KEY="sk_..."

if ! MODELS_JSON="$(
  curl --fail-with-body --silent --show-error "https://api.provod.ai/v1/models?output_modalities=text&supported_parameters=max_tokens" \
    -H "Authorization: Bearer $PROVOD_API_KEY"
)"; then
  printf '%s\n' "$MODELS_JSON" >&2
  exit 1
fi

if ! PROVOD_MODEL="$(
  jq -er '
    first(
      .data[]
      | select(
          .available == true
          and ((.architecture.output_modalities // []) | index("text"))
          and ((.supported_parameters // []) | index("max_tokens"))
          and ((.supported_endpoint_types // []) | all(. != "image-generation" and . != "image-edit"))
        )
      | .id
    )
  ' <<<"$MODELS_JSON"
)"; then
  printf 'No available text model with max_tokens found in /v1/models.\n' >&2
  exit 1
fi

export PROVOD_MODEL
printf '%s\n' "$PROVOD_MODEL"

Создайте клиент и запрос

Сохраните код в файле migrate.mjs:

migrate.mjs
import OpenAI from "openai";

const apiKey = process.env.PROVOD_API_KEY;
const model = process.env.PROVOD_MODEL;

if (!apiKey || !model) {
  throw new Error("Set PROVOD_API_KEY and PROVOD_MODEL");
}

const client = new OpenAI({
  apiKey,
  baseURL: "https://api.provod.ai/v1"
});

const completion = await client.chat.completions.create({
  model,
  messages: [{ role: "user", content: "Reply with ok" }],
  max_tokens: 64
});

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

Запустите и прочитайте результат

Terminal
node migrate.mjs

При успехе программа выводит текст из choices[0].message.content, например:

Output
ok

Существующий совместимый с OpenAI клиент меняет только базовый URL и ключ.

Сохраните SDK и направьте поддерживаемые методы в provod.ai.

Перенесите новые настройки на provod.ai

Уже настроенные клиенты с адресом api.promptra.ru могут использовать его как адрес совместимости на время миграции. Во всех новых и обновляемых конфигурациях указывайте https://api.provod.ai/v1. Адрес совместимости помогает при переходе, но это не бессрочная гарантия его доступности.

Учитывайте границы совместимости

Замена baseURL не добавляет все адреса OpenAI. Пример работает, потому что client.chat.completions.create() соответствует опубликованному контракту POST /v1/chat/completions. provod.ai также публикует список моделей и документированные адреса изображений, но сейчас не предоставляет POST /v1/responses, API векторных представлений и адреса транскрибации или перевода аудио.

Перед миграцией выясните, какой метод вызывает SDK или инструмент. Если ему нужен неопубликованный адрес API и его нельзя переключить на Chat Completions или Messages, одной замены URL недостаточно.

Оставьте получение каталога в настройке

Обновляйте данные через GET /v1/models, а не считайте идентификатор модели из примера постоянным. Добавляйте необязательные поля запроса с учётом текущей доступности модели и её supported_parameters.

Публичный код ошибки — это значение для клиента в ошибке API, обычно error.code. Для диагностики миграции сохраните его вместе с HTTP-статусом, не используя внутренние данные транспорта.

Решение проблем

На этой странице