DikayaОткрыть чат

OpenAI-совместимый API: Python, запуск и стоимость

OpenAI-совместимый API позволяет обращаться к моделям Dikaya через привычный формат запросов: задайте base_url=https://dikaya.cloud/v1, личный ключ и API-ID модели. Для первого запуска используйте текстовый Chat Completions с явным лимитом ответа. Ниже — готовые примеры Python, проверка каталога и формула стоимости с учётом кэшированных токенов.

Коротко о главном

  • Совместимый формат не означает доступ к моделям OpenAI или всем функциям стороннего клиента.
  • Ключ хранится в окружении серверного приложения; в коде примеров нет настоящих секретов.
  • Оплата определяется токенами и тарифом модели, а не фиксированной ценой сообщения.

Что означает OpenAI-совместимый API

Совместимость означает знакомую структуру HTTP-запросов и ответов, которую понимают SDK и некоторые AI-клиенты. Для базового Chat Completions приложение передаёт model и массив messages, затем читает ответ. Но разные сервисы могут поддерживать разный набор параметров и инструментов. Поэтому замену адреса следует проверять на конкретном сценарии, а не считать автоматическим переносом всей платформы.

Dikaya предоставляет собственные публичные модели seller-flash, seller-pro и seller-pro-2. Pro 2 — доработанная версия на основе GLM-5.3. Использование библиотеки openai в примере не означает, что запрос идёт к модели OpenAI. Адрес, ключ и model вместе определяют, к какому сервису и варианту модели вы обращаетесь.

Руководство рассчитано на разработчика, который подключает Python-приложение или настраивает совместимый клиент. Сначала добейтесь одного корректного текстового ответа, затем добавляйте потоковую выдачу и хранение истории. Для Responses и Messages используйте соответствующие разделы справочника: их структуры не нужно механически смешивать с Chat Completions.

Base URL, ключ и каталог моделей

Создайте аккаунт и откройте раздел API и баланса. Скопируйте личный ключ в переменную окружения DIKAYA_API_KEY на машине, где запускается приложение. Не вставляйте его в публичный HTML, браузерный JavaScript или репозиторий. Для клиентского сайта запрос к модели обычно отправляет ваш сервер, а браузер обращается уже к вашему приложению.

Базовый URL клиента — https://dikaya.cloud/v1. Полный адрес Chat Completions — https://dikaya.cloud/v1/chat/completions: библиотека добавляет путь сама, поэтому не передавайте полный endpoint в base_url. Название в интерфейсе и API-ID различаются: используйте seller-pro-2, а не строку «Dikaya Pro 2» или название основы модели.

Перед первой генерацией можно запросить /v1/models с авторизацией. Он показывает доступный конкретному ключу каталог и персональные цены. Это особенно важно, если администратор изменил разрешённые модели или тариф ключа. Публичная таблица в этой статье показывает обычную розницу и не заменяет персональный каталог.

curl https://dikaya.cloud/v1/models \
  -H "Authorization: Bearer $DIKAYA_API_KEY"

Первый запрос через Python SDK

Установите пакет командой python -m pip install openai в выбранном окружении Python. Задайте DIKAYA_API_KEY средствами вашей системы и сохраните пример в отдельный файл. В нём указан короткий запрос, ограничение ответа и отключены автоматические повторы. Код не читает ваши проектные файлы и не запускает инструменты.

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

Для подходящего демо выбраны Pro 2 и предел 512 выходных токенов. Демо нового аккаунта — $0.5 и до 25 запросов, текст без инструментов, до 6000 байт контекста. Увеличение max_tokens в коде не расширяет условия демо. Для длинных задач и агентов сначала пополните баланс.

import os
from openai import OpenAI

with OpenAI(
    api_key=os.environ["DIKAYA_API_KEY"],
    base_url="https://dikaya.cloud/v1",
    max_retries=0,
    timeout=120.0,
) as client:
    response = client.chat.completions.create(
        model="seller-pro-2",
        max_tokens=512,
        messages=[{"role": "user", "content": "Объясни API одним предложением."}],
    )
    print(response.choices[0].message.content or "")
    print(response.usage)

Как включить потоковый ответ

Потоковая выдача возвращает части ответа по мере готовности. В Chat Completions для этого задают stream=True и читают delta.content. Проверяйте, есть ли choices: некоторые служебные части могут иметь другую структуру. Не выводите внутреннее рассуждение как готовый пользовательский ответ; отображайте именно текстовую дельту ответа.

Фрагмент ниже заменяет обычный вызов внутри того же with OpenAI(...) as client. Закрытие потока оформлено контекстным менеджером. Если соединение прервалось, сохраните уже полученный текст и покажите состояние ошибки, а не начинайте молча новую генерацию. Закрытие вкладки само по себе не отменяет учёт уже выполненной работы.

with client.chat.completions.create(
    model="seller-pro-2",
    max_tokens=512,
    messages=[{"role": "user", "content": "Кратко объясни потоковый ответ."}],
    stream=True,
) as stream:
    for chunk in stream:
        if chunk.choices:
            text = chunk.choices[0].delta.content
            if text:
                print(text, end="", flush=True)
print()

Как рассчитать стоимость API по токенам

Токены — единицы обработки текста, а не число сообщений или страниц. В расчёте отдельно учитываются обычный вход, кэшированный вход и выход. Кэшированные токены уже входят в общий вход, поэтому их сначала вычитают из обычного входа и только затем применяют пониженную ставку. Выход может включать рассуждение: эти токены не надо добавлять второй раз.

Пример при текущих розничных тарифах: 1000 входных токенов и 500 выходных токенов Pro 2 без кэша стоят $0.011. Если 800 из этих 1000 входных токенов пришлись на кэш, расчёт даёт $0.00668. Это арифметические примеры с заданным usage, а не обещание, что реальный ответ всегда будет иметь такой объём или попадать в кэш.

До запуска Dikaya резервирует оценку расхода. После известного usage списывается фактическая сумма и возвращается неиспользованный остаток резерва. При неизвестном исходе резерв сохраняется для сверки. Изображения для платных Pro-моделей добавляют отдельный этап Flash, поэтому простой текстовый пример не описывает полную цену запроса с изображением.

cost_usd = (
    (input_tokens - cached_tokens) * input_per_m
    + cached_tokens * cached_per_m
    + output_tokens * output_per_m
) / 1_000_000
Обычная розница Dikaya, USD за 1 млн токенов. Для персонального тарифа проверьте /v1/models с вашим ключом.
МодельВходКэшированный входВыход
Dikaya Flash
seller-flash
$2$0.2$6
Dikaya Pro
seller-pro
$6$0.6$10
Dikaya Pro 2
seller-pro-2
$6$0.6$10

Посчитать свой текстовый запрос

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

Стоимость: $0.011

Проверка ошибок и ограничений клиента

Если API отклонил запрос, сначала посмотрите HTTP-статус и сообщение, не повторяя генерацию бесконечно. При 401 проверьте ключ и заголовок Authorization. При 400 проверьте model, структуру messages и допустимость параметров. При 429 уменьшите параллельность и учитывайте лимит запросов. Эти ситуации требуют разных действий, а не одного общего автоматического повтора.

Для платного шлюза предел тела JSON — 16 МиБ; лимит max_tokens по умолчанию 2048, явный максимум до 65536 с учётом модели. Для демо ограничения ниже. Если клиент добавляет большую историю или описания инструментов, короткий видимый вопрос всё равно может создавать большой вход. Проверяйте фактически отправляемую структуру, не печатая ключи в журналы.

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

Как перейти от примера к рабочей интеграции

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

OpenAI-совместимый API удобен, когда детали подключения остаются в конфигурации, а работа приложения опирается на проверяемый контракт. Храните ключ отдельно, выбирайте точный API-ID, явно задавайте лимит ответа и обрабатывайте неопределённые исходы. Затем расширяйте интеграцию по одному сценарию, сверяя результат, usage и актуальный каталог.

Вопросы и ответы

Нужно ли переписывать приложение для Dikaya API?

Для простого Chat Completions часто достаточно настроить base_url, ключ и API-ID модели. Но это не гарантия полной совместимости всех функций приложения. Сначала проверьте обычный текстовый вызов, затем стриминг и дополнительные параметры. Файлы, инструменты, история и отдельные функции редактора могут требовать собственной настройки и проверки.

Почему цена одного сообщения заранее не фиксирована?

Сообщения различаются длиной входа, историей, выходом и долей кэшированных токенов. Рассуждение входит в выходной расход, а обработка изображений может добавить отдельный этап. Поэтому цену считают по категориям токенов и тарифам модели. До запроса резервируется оценка, после известного usage происходит расчёт фактического расхода.

Можно ли пользоваться API без подписки?

Dikaya использует предоплаченный баланс без ежемесячной подписки и срока сгорания. Чат и API расходуют общие средства аккаунта. Пополнение начинается от $5, подходящая сумма может получить бонус после подтверждённой оплаты. Демо выдаётся один раз подходящим аккаунтам и не предназначено для неограниченной работы или агентных инструментов.

Источники и условия

Материал подготовлен с помощью AI. Факты о Dikaya сверены с каталогом, документацией и правилами сервиса; примеры запросов не являются записью реального ответа или сравнительным тестом моделей. Внешние источники поясняют исходные технологии и не заменяют условия Dikaya. Публикует Dikaya — сервис, о котором идёт речь в руководстве.

Продолжить по теме

Проверьте на своей задаче

Возьмите один пример, подставьте свои вводные и оцените результат. Для короткой проверки подойдёт доступное вашему аккаунту демо; для длинных запросов ознакомьтесь с условиями пополнения.

Открыть чат Dikaya Перейти к документации