Doubao Seed 2.1 API (2026): Pro и Turbo без регистрации в Volcano

Вызывайте Doubao Seed 2.1 Pro ($0.884/$4.42 за M) и Turbo (вдвое дешевле: $0.442/$2.212) с одного endpoint. 256K контекста, один ключ, без отдельной регистрации в Volcano.

Doubao Seed 2.1 API (2026): Pro и Turbo без регистрации в Volcano

Doubao Seed 2.1 API (2026): Pro и Turbo без регистрации в Volcano

ByteDance анонсировала Doubao Seed 2.1 24 июня 2026 года на конференции Volcano Engine FORCE. Два варианта, Pro и Turbo, оба с контекстом 256K. Идти к ним напрямую означает аккаунт Volcano Engine: либо регистрация, которой нужны номер телефона, проверка по реальному имени и пополнение в CNY, либо отдельный зарубежный аккаунт на международной консоли Volcano с международной картой. Этот гайд идёт третьим путём. Вы вызываете оба варианта с одного OpenAI-совместимого endpoint единым ключом, который, возможно, у вас уже есть, и переключаетесь между ними правкой одной строки.

Ответ за 30 секунд

  • Что можно сделать: Вызывать Doubao Seed 2.1 Pro и Turbo из стандартного OpenAI SDK (Python или Node), переключаться между ними сменой строки model и отправлять ввод изображений в любой из них.
  • Сколько времени нужно: Около 5 минут, если ключ ofox у вас уже есть. Около 10, если надо зарегистрироваться.
  • Что вам нужно: API-ключ ofox.ai, SDK openai (любой свежей версии) и два model ID: volcengine/doubao-seed-2.1-pro и volcengine/doubao-seed-2.1-turbo.

Краткая версия по ценам, поскольку именно она определяет каждое решение о маршрутизации ниже: Pro — это $0.884 вход и $4.42 выход за миллион токенов. Turbo ровно вдвое дешевле, $0.442 и $2.212. Кешированный вход опускает пол ещё ниже, $0.177 на Pro и $0.085 на Turbo. Окно 256K одинаково на обоих.

Doubao Seed 2.1 ProDoubao Seed 2.1 Turbo
Model IDvolcengine/doubao-seed-2.1-provolcengine/doubao-seed-2.1-turbo
Вход ($/M)$0.884$0.442
Выход ($/M)$4.42$2.212
Кешированный вход ($/M)$0.177$0.085
Окно контекста256,000256,000
Макс. вывод256,000256,000
МодальностьТекст + изображение на вход, текст на выходТекст + изображение на вход, текст на выход
ПозиционированиеФлагман с глубоким рассуждением: сложный кодинг, длинноцепочечные агенты, многошаговая поставкаНизкая цена, низкая задержка: высокочастотный корпоративный трафик

Цена Turbo за токен ровно вдвое меньше цены Pro по входу, выходу и кешированному входу. ByteDance говорит, что функционал Turbo полный, а производительность сопоставима с Pro, и это формулировка вендора, а не бенчмарк, так что вопрос маршрутизации ниже на деле звучит как «насколько вы уверены, что дешёвый вариант держит планку на этой конкретной задаче».

Что можно делать после этой настройки (и чего нельзя)

Сначала выставим ожидания, потому что никто не любит обнаруживать стену уже после сборки.

Вот что даёт эта настройка:

  • Вызывать оба варианта Seed 2.1 через форму OpenAI Chat Completions. Ваш существующий код на OpenAI по большей части работает после трёх правок: ключ, base URL, model.
  • Маршрутизировать по стоимости. Отправлять дешёвые высокочастотные вызовы в Turbo и резервировать Pro под тяжёлое рассуждение, где одна строка на вызов решает, какой именно.
  • Отправлять изображения. Оба варианта принимают блок контента image_url, так что скриншот или диаграмма заходят рядом с текстом.
  • Платить в долларах международной картой, ключом, который, возможно, уже покрывает ваши другие модели, без второго аккаунта на регистрацию.
  • Делить один ключ между Doubao и остальными моделями на том же шлюзе, что важно, когда нужен фолбэк, не требующий ещё одной регистрации.

А вот чего она не даёт:

  • Точную прайс-лист цену Volcano Engine. В пути стоит шлюз, так что долларовые цифры здесь — это тариф ofox, а не сырой тариф Volcano. Они идут плотно друг за другом (примерно 6.8 RMB к доллару против опубликованных ByteDance цифр ¥6 / ¥30 за миллион), но не идентичны.
  • Гарантию, что «Turbo работает как Pro». Это формулировка ByteDance с запуска. Протестируйте её на своей нагрузке, прежде чем маршрутизировать production-трафик на силе маркетинговой строки.
  • Офлайн- или self-hosted-вариант. Seed 2.1 — это API-only модель. Скачать open-weight чекпойнт нельзя.

Если вы прогоняли настройку Doubao Seed 2.0 ранее в этом году, мышечная память переносится. Разница в линейке: 2.0 был четырёхуровневым бюджетным семейством (Pro, Lite, Mini, Code), 2.1 — это двухвариантный флагманский сплит (Pro с глубоким рассуждением и Turbo вдвое дешевле), и model ID поменялись соответственно.

Рамка решения: когда использовать эту настройку (а когда НЕТ)

Перед шагами решите, действительно ли путь через шлюз — ваш путь.

Используйте, когда:

  • Вы не хотите заводить отдельный аккаунт Volcano или проходить его проверку по телефону и реальному имени просто чтобы оценить модель.
  • Вы хотите Pro и Turbo за одним ключом, чтобы маршрутизация по стоимости была сменой строки, а не второй интеграцией.
  • Вы уже вызываете другие модели через OpenAI-совместимый endpoint и хотите, чтобы Doubao встал на тот же путь в коде.

Пропустите, когда:

  • У вас уже есть верифицированный аккаунт Volcano Engine (домашний или международный) и вы вызываете только Doubao. Прямой путь избегает лишнего хопа через шлюз, а стоимость регистрации вы уже заплатили.
  • Вам нужна точная прайс-лист цена Volcano до сотых для закупочной таблицы. Идите к источнику.
  • Ваши правила комплаенса требуют конкретной гарантии резидентности данных. Уточните это напрямую у провайдера; сторонний шлюз не меняет того, где исполняется инференс.

Одно правило остановки: если всё, что вам было нужно, — это первый успешный вызов, подтверждающий, что модель существует и отвечает, можно остановиться на Шаге 4. Шаги с 5-го — это маршрутизация, обработка ошибок и командная настройка.

Системные требования

Ничего тяжёлого. Весь смысл OpenAI-совместимого endpoint в том, что клиент скучен.

КомпонентТребованиеПримечания
РантаймPython 3.8+ или Node.js 18+То, на чём уже работает ваш существующий OpenAI SDK
SDKopenai (Python или JS)Любая свежая версия; форма Chat Completions стабильна
API-ключОдин ключ ofox.ai (sk-ofox-...)Из панели ofox после регистрации
Endpointhttps://api.ofox.ai/v1OpenAI-совместимый base URL
СетьИсходящий HTTPSСтандартный исходящий HTTPS, без особой маршрутизации

Вам не нужен SDK Volcano Engine, endpoint volces.com или какой-либо специфичный для ByteDance клиент. Шлюз нормализует базовый API в форму OpenAI.

Пошаговая установка

Шаг 1: получите API-ключ

Зарегистрируйтесь на ofox.ai, откройте панель и создайте ключ. Он выглядит как sk-ofox-.... Держите его вне системы контроля версий; обычное место — переменная окружения.

export OFOX_API_KEY="sk-ofox-your-key-here"

Ожидаемый результат: echo $OFOX_API_KEY печатает ваш ключ в текущей оболочке.

Шаг 2: установите SDK

# Python
pip install openai

# или Node
npm install openai

Ожидаемый результат: pip show openai (или npm ls openai) сообщает установленную версию. Подойдёт что угодно свежее; форма запроса, используемая здесь, не менялась по всей современной линии SDK.

Шаг 3: smoke-тест endpoint через curl

Прежде чем писать какой-либо код, убедитесь, что ключ и endpoint разговаривают друг с другом. Этот вызов идёт в Turbo, потому что он дешевле для теста.

curl https://api.ofox.ai/v1/chat/completions \
  -H "Authorization: Bearer $OFOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "volcengine/doubao-seed-2.1-turbo",
    "messages": [{"role": "user", "content": "Reply with the single word: ready"}]
  }'

Ожидаемый результат: JSON-тело с choices[0].message.content, содержащим ready. Если получили 401 — ключ неверен или не задан. Если получили 404 на модель, перепроверьте написание ID (это volcengine/doubao-seed-2.1-turbo, с точками в 2.1, а не дефисами).

Шаг 4: первый вызов из Python

from openai import OpenAI

client = OpenAI(
    api_key="sk-ofox-...",            # or os.environ["OFOX_API_KEY"]
    base_url="https://api.ofox.ai/v1",
)

resp = client.chat.completions.create(
    model="volcengine/doubao-seed-2.1-pro",
    messages=[{"role": "user", "content": "Explain MoE routing in two sentences."}],
)
print(resp.choices[0].message.content)

Ожидаемый результат: ответ в две фразы у вас в терминале. Три вещи отличают это от стандартного вызова OpenAI: api_key, base_url и model. Стриминг, инструменты и структурированный вывод используют те же методы SDK, которые вы уже знаете.

Шаг 5: тот же вызов из Node

import OpenAI from "openai";

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

const resp = await client.chat.completions.create({
  model: "volcengine/doubao-seed-2.1-pro",
  messages: [{ role: "user", content: "Explain MoE routing in two sentences." }],
});
console.log(resp.choices[0].message.content);

Ожидаемый результат: тот же ответ в две фразы. JS SDK использует baseURL (camelCase) там, где Python использует base_url. Это единственная ловушка по написанию.

Шаг 6: переключение Pro и Turbo одной строкой

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

MODELS = {
    "pro":   "volcengine/doubao-seed-2.1-pro",
    "turbo": "volcengine/doubao-seed-2.1-turbo",
}

def ask(tier: str, prompt: str) -> str:
    resp = client.chat.completions.create(
        model=MODELS[tier],
        messages=[{"role": "user", "content": prompt}],
    )
    return resp.choices[0].message.content

print(ask("turbo", "Summarize this ticket in one line."))   # cheap path
print(ask("pro",   "Plan a three-step refactor for this module."))  # hard path

Ожидаемый результат: оба вызова возвращают ответ. Дешёвое резюме идёт через Turbo по $0.442/$2.212; задача планирования — через Pro по $0.884/$4.42. Вы решаете на каждый вызов, за какой именно платить.

flowchart TD
    A[Incoming request] --> B{Hard reasoning,<br/>long-chain agent,<br/>multi-step delivery?}
    B -->|Yes| C[model = volcengine/<br/>doubao-seed-2.1-pro<br/>$0.884 in / $4.42 out]
    B -->|No: summarize, classify,<br/>high-frequency call| D[model = volcengine/<br/>doubao-seed-2.1-turbo<br/>$0.442 in / $2.212 out]
    C --> E[Same endpoint<br/>api.ofox.ai/v1]
    D --> E
    E --> F[Response]

Частые ошибки при настройке (и их лечение)

Сбои здесь почти все из тех же трёх категорий: неверный ключ, неверная строка модели, неверная форма запроса. Таблица покрывает то, что реально вылезает.

СимптомВероятная причинаЛечение
401 UnauthorizedКлюч отсутствует, истёк или с лишним пробеломПереэкспортируйте ключ; проверьте, что в заголовке Authorization: Bearer нет хвостового пробела
404 на модельОпечатка в ID, обычно 2-1 вместо 2.1Используйте точные строки: volcengine/doubao-seed-2.1-pro / volcengine/doubao-seed-2.1-turbo
Connection refused / DNS-ошибкаBase URL указывает на OpenAI или хост с опечаткойЗадайте base URL https://api.ofox.ai/v1 (обратите внимание на /v1)
400 на запрос с изображениемБлок image_url некорректен или нет префикса data: на base64Отправьте {"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}}
Пустой или обрезанный выводmax_tokens задан слишком низко или вы читаете не то полеПоднимите max_tokens; читайте choices[0].message.content
429 Too Many RequestsВсплеск выше вашего текущего лимита по частотеДобавьте экспоненциальный backoff; повторите после задержки, которую предлагает ответ
Медленный первый токен на ProМодель с глубоким рассуждением тратит время до выдачиОжидаемо на Pro для тяжёлых промптов; маршрутизируйте чувствительные к задержке вызовы в Turbo
model работает в curl, падает в SDKSDK прибит к устаревшему base URL через переменную окруженияПроверьте OPENAI_BASE_URL; явный аргумент base_url/baseURL должен побеждать, но оставшаяся переменная окружения может сбить старые настройки

Командная / многопользовательская конфигурация

Соло-настройка — это один ключ в одной переменной окружения. Команде нужно, чтобы ключ делился безопасно, а выбор модели был согласован, чтобы люди не хардкодили каждый свой уровень.

Схема, которая держится: храните ключ в своём менеджере секретов, выставляйте endpoint и уровень по умолчанию через переменные окружения и пусть небольшой конфиг решает Pro против Turbo на каждое окружение.

# .env.example (committed); real .env stays out of git
OFOX_API_KEY=          # pulled from the team secret manager, never committed
OFOX_BASE_URL=https://api.ofox.ai/v1
DOUBAO_TIER=turbo      # dev/staging default; prod can override to pro per route

Затем читайте их вместо литералов, чтобы ни один разработчик не прибил уровень случайно:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["OFOX_API_KEY"],
    base_url=os.environ.get("OFOX_BASE_URL", "https://api.ofox.ai/v1"),
)
DEFAULT_MODEL = f"volcengine/doubao-seed-2.1-{os.environ.get('DOUBAO_TIER', 'turbo')}"

Несколько вещей, которые уберегут команду от проблем:

ВопросСолоКоманда
Хранение ключаОдна переменная окружения локальноМенеджер секретов (Vault, AWS Secrets Manager, Doppler), инъекция при деплое
Выбор уровняХардкод нормаленУправляется переменной DOUBAO_TIER, чтобы dev по умолчанию шёл в Turbo, а prod явно выбирал Pro
Видимость стоимостиГлаз на панельТегируйте запросы по сервису, чтобы сплит Pro/Turbo был атрибутируем
Онбординг«Вот ключ».env.example в репозитории, ключ выдаётся только через менеджер секретов

Форма «один ключ, один endpoint» — это то, что делает администрирование дешёвым. Один credential на ротацию, один base URL, и единственное решение на команду — какой уровень каждое окружение берёт по умолчанию. Для атрибуции стоимости читайте объект usage на каждом ответе (prompt_tokens, completion_tokens) и логируйте его против уровня, который вы вызывали; так вы через месяц узнаете, совпал ли ваш сплит Pro/Turbo с планом или тихо уплыл к дорогому варианту. Если вы поднимаете более широкий шлюз перед несколькими моделями, паттерн мультимодельного роутера покрывает слой маршрутизации, который стоит над этим.

Продвинуто: маршрутизация Pro/Turbo и ввод изображений

Cost-aware маршрутизация в одном цикле

Частая production-форма — дешёвый первый проход на Turbo с эскалацией в Pro только тогда, когда дешёвый ответ недостаточно хорош. Правило эскалации ваше, и именно над ним стоит думать, поскольку плохое правило либо эскалирует всё (вы платите по ценам Pro за задачу формата Turbo), либо не эскалирует никогда (вы выдаёте ответы Turbo на задачах, которым нужен был Pro). Порог уверенности, проверка длины или дешёвый прогон-валидатор — все разумные триггеры. Сама замена модели — это одна строка.

def answer(prompt: str, hard: bool) -> str:
    tier = "pro" if hard else "turbo"
    resp = client.chat.completions.create(
        model=f"volcengine/doubao-seed-2.1-{tier}",
        messages=[{"role": "user", "content": prompt}],
    )
    return resp.choices[0].message.content

Окупаемость держится на математике. Возьмём нагрузку в миллион запросов в месяц, каждый в среднем по 500 входных и 500 выходных токенов. Всё на Pro — это примерно 500M входа по $0.884 плюс 500M выхода по $4.42, около $2,652 в месяц до экономии на кешированном входе. Всё на Turbo, тот же объём ложится около $1,327, половина счёта, потому что цена Turbo за токен ровно вдвое меньше по всем статьям. Маршрутизируйте 80 процентов в Turbo и эскалируйте тяжёлые 20 процентов в Pro — и вы сидите около $1,592, куда ближе к полу Turbo, чем к потолку Pro. Рычаг — это сплит, а не модель. Кешированный вход опускает его ещё ниже на промптах, повторяющих системный блок, поскольку кеш-тариф $0.177 на Pro и $0.085 на Turbo против полного входного тарифа.

Стриминг ответа

Длинные ответы Pro ощущаются медленными, если ждать полного завершения. Стримьте токены по мере поступления; единственная правка — stream=True и итерация чанков. Замена модели и здесь остаётся однострочной.

stream = client.chat.completions.create(
    model="volcengine/doubao-seed-2.1-pro",
    messages=[{"role": "user", "content": "Draft a migration plan, step by step."}],
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)

Ожидаемый результат: текст печатается постепенно, а не весь сразу. Это важнее на Pro, где проход с глубоким рассуждением может помолчать секунду, прежде чем начать выдавать. Первый токен Turbo обычно приходит быстрее, ради чего он и существует.

Отправка изображения в любой из вариантов

Оба варианта мультимодальны (на вход текст плюс изображение, на выход текст). Блок контента — стандартная OpenAI vision-форма, так что скриншот или график заходят сразу.

import base64

with open("screenshot.png", "rb") as f:
    b64 = base64.b64encode(f.read()).decode()

resp = client.chat.completions.create(
    model="volcengine/doubao-seed-2.1-pro",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "What does this error dialog say to do?"},
            {"type": "image_url",
             "image_url": {"url": f"data:image/png;base64,{b64}"}},
        ],
    }],
)
print(resp.choices[0].message.content)

Ожидаемый результат: текстовый ответ, прочитавший изображение. Поменяйте строку модели на volcengine/doubao-seed-2.1-turbo, и тот же вызов пойдёт на более дешёвом варианте. Если вам нужна генерация изображений, а не понимание — это другая модель ByteDance; API изображений Seedream 4.5 покрывает эту сторону.

Хотите попробовать на реальной нагрузке? Один ключ ofox вызывает оба варианта Seed 2.1 плюс остальной каталог с https://api.ofox.ai/v1, с оплатой в долларах и без регистрации в Volcano Engine. Начните со страницы модели Doubao Seed 2.1 Pro.

Альтернативы

Если путь через шлюз вам не подходит, честные варианты:

  • ofox.ai (этот гайд). Один ключ, оба варианта, оплата в долларах, OpenAI-совместимый endpoint и другие модели на том же credential. Лучше всего, когда хотите Doubao без отдельного аккаунта Volcano и хотите фолбэк-модель на том же ключе. Поверх прайс-листа Volcano лежит наценка шлюза.
  • Volcano Engine (напрямую). Собственный endpoint ByteDance, на двух консолях. Стандартная регистрация требует номер телефона, проверку по реальному имени и пополнение в CNY; международная консоль принимает регистрацию по email и международную карту под зарубежный аккаунт. Самая дешёвая прайс-лист цена, если вы откроете и сохраните один из этих аккаунтов, и правильный выбор, когда Doubao — единственная модель, которую вы используете.
  • Другой OpenAI-совместимый агрегатор. Несколько шлюзов теперь несут Doubao. Форма интеграции та же, что здесь; сравнивайте по цене, ширине остального каталога и валюте оплаты. Если вы уже на мультимодельной настройке, гайд по доступу к Kimi K2.5 проходит тот же паттерн с одним endpoint для другого семейства моделей, что полезно для перекрёстной проверки того, что на деле даёт «один ключ, много моделей».

FAQ

Что такое Doubao Seed 2.1 и когда он вышел? Doubao Seed 2.1 — это новое поколение семейства моделей ByteDance, анонсированное 24 июня 2026 года на конференции Volcano Engine FORCE. Два варианта, Pro и Turbo, оба с контекстом 256K. Pro — флагманская модель с глубоким рассуждением; Turbo — недорогой и низколатентный вариант под высоконагруженный трафик.

Сколько стоит API Doubao Seed 2.1? Через ofox.ai в долларах: Pro — $0.884 вход и $4.42 выход за миллион токенов, кешированный вход $0.177. Turbo ровно вдвое дешевле: $0.442 вход, $2.212 выход, $0.085 кешированный вход. У обоих контекст 256K и максимальный вывод 256K.

Можно ли использовать Doubao Seed 2.1 без аккаунта Volcano Engine? Да. Собственная регистрация Volcano требует номер телефона и проверку по реальному имени, а международная консоль — отдельный зарубежный аккаунт. ofox — третий путь: регистрация по email и международная карта дают один ключ, который вызывает оба варианта плюс другие модели.

В чём разница между Pro и Turbo? Pro — флагманская модель с глубоким рассуждением для высокосложной работы. Turbo стоит ровно вдвое дешевле за токен и нацелен на чувствительный к задержке высокочастотный production. ByteDance говорит, что производительность Turbo сопоставима с Pro; относитесь к этому как к заявлению вендора и проверяйте на своих задачах.

Как переключаться между Pro и Turbo в коде? Поменяйте одну строку. Оба работают на одном endpoint, так что вы меняете model между volcengine/doubao-seed-2.1-pro и volcengine/doubao-seed-2.1-turbo. Всё остальное остаётся идентичным.

Поддерживает ли Doubao Seed 2.1 ввод изображений? Да. Оба варианта мультимодальны (на вход текст плюс изображение, на выход текст). Прикрепите блок контента image_url, несущий URL или base64 data URI, рядом с текстовым промптом.

Как Doubao Seed 2.1 сравнивается с GPT-5.5? ByteDance позиционирует три улучшения Seed 2.1 (поставка кода, длинноцепочечные агентные задачи, мультимодальное понимание) против GPT-5.5. Это формулировка вендора с запуска, а не независимый бенчмарк, так что проверяйте её, прежде чем зависеть от неё.

Какое окно контекста? 256 000 токенов контекста и до 256 000 токенов максимального вывода, одинаково на Pro и Turbo.

Источники, проверенные для этого апдейта