OpenAI TypeScript SDK с Novita AI: базовый URL, примеры и Agent Sandbox

OpenAI TypeScript SDK с Novita AI: базовый URL, примеры и Agent Sandbox

Если ваш стек уже использует AI SDK, построенный вокруг OpenAI, то Novita AI — это в основном замена базового URL, ключа API и идентификатора модели. Официальный OpenAI TypeScript SDK поддерживает пользовательские конечные точки, а документация Novita предоставляет совместимые с OpenAI чат-завершения по адресу https://api.novita.ai/openai/v1/chat/completions, поэтому первый шаг миграции очень маленький.

Это делает Novita практичным выбором, когда вы хотите сохранить существующий SDK-воркфлоу и протестировать другой бэкенд модели без переписывания вашего приложения.

OpenAI TypeScript SDK с Novita AI: что меняется, а что остаётся прежним

Пункт По умолчанию OpenAI SDK Настройка Novita AI Почему это важно
Клиентская библиотека openai openai Оставляете тот же TypeScript-пакет.
Базовый URL Конечная точка OpenAI https://api.novita.ai/openai SDK добавляет путь с версией.
Ключ API Ключ OpenAI Ключ API Novita Меняется аутентификация, но не формат вызова.
Имя модели Идентификатор модели OpenAI Идентификатор модели Novita Считайте, что идентификаторы моделей специфичны для провайдера.
Первый запрос chat.completions.create() chat.completions.create() Начинайте с того же шаблона запроса.

Как настроить OpenAI TypeScript SDK с Novita AI

Установите SDK:

npm install openai

Затем направьте его на Novita:

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.NOVITA_API_KEY,
  baseURL: "https://api.novita.ai/openai",
});

const response = await client.chat.completions.create({
  model: "openai/gpt-oss-120b",
  messages: [
    { role: "system", content: "You are a concise technical assistant." },
    { role: "user", content: "Show me the shortest Novita SDK setup in TypeScript." },
  ],
});

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

Начните с чат-завершений. Публичная документация Novita в настоящее время описывает путь чат-завершений, совместимый с OpenAI, так что это самый безопасный первый тест.

Эквивалент Python OpenAI SDK на Novita AI

Тот же шаблон работает и в Python:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NOVITA_API_KEY"],
    base_url="https://api.novita.ai/openai",
)

response = client.chat.completions.create(
    model="openai/gpt-oss-120b",
    messages=[
        {"role": "user", "content": "Explain the Novita setup in one paragraph."}
    ],
)

print(response.choices[0].message.content)

Когда использовать Novita Agent Sandbox с OpenAI SDK

Используйте SDK для вызовов моделей, а Novita Agent Sandbox — когда рабочему процессу требуется выполнение кода, действия браузера или работа с файлами в изолированной среде. Такое разделение оставляет вывод и выполнение раздельными, что является правильным подходом для агентов, пишущих код.

Советы по миграции OpenAI SDK для лучшего опыта разработчика

  • Используйте https://api.novita.ai/openai как базовый URL SDK. OpenAI SDK добавляет путь с версией за вас, поэтому вам не нужно добавлять /v1 вручную.
  • Перед тестированием подставьте идентификатор модели, поддерживаемой Novita. Код SDK может остаться тем же, но идентификаторы моделей специфичны для провайдера.
  • Относитесь к совместимости с OpenAI как к короткому пути миграции, а не как к гарантии, что каждая новая функция платформы ведёт себя одинаково. Перед развёртыванием проверьте текущую документацию Novita.
  • Если ваш рабочий процесс выполняет сгенерированный код, файловые операции или действия браузера, перенесите выполнение в Agent Sandbox вместо локальной машины.

Часто задаваемые вопросы

Достаточно ли одного OpenAI TypeScript SDK?

Да для вызовов моделей. Нет для изолированного выполнения. Если приложение агентское, используйте его вместе с Agent Sandbox.

Могу ли я оставить тот же код в JavaScript и TypeScript?

Да. Использование SDK одинаково.

Что мне прочитать дальше?

Прочитайте руководство по LLM API Novita и справочник по чат-завершениям, затем перед использованием в продакшене уточните точный идентификатор модели в библиотеке моделей.