Перейти к содержимомуKumoДокументация
Разделы
На странице
Интеграции

SDK

Официальные SDK OpenAI и Anthropic, Python и Node: установка, клиент с base URL шлюза и ключом из окружения, один вызов. Ваш код остаётся вашим кодом.

Открыть как Markdown

Быстро

SDK менять не нужно. Ставится тот же официальный пакет, что и всегда; меняются два аргумента конструктора — base URL и ключ.

# OpenAI-совместимый диалект
pip install openai
npm install openai

# Нативный диалект Anthropic
pip install anthropic
npm install @anthropic-ai/sdk

Ключ держите в переменной окружения. Ни один пример ниже не пишет секрет в исходник — все они читают KUMO_API_KEY, поэтому сначала экспортируйте её в той оболочке, из которой запускаете код.

export KUMO_API_KEY="kumo_sk_..."

Кошелёк новой организации пуст: первый вызов без пополнения ответит 402 (оплата).

OpenAI SDK

Base URL — https://api.kumorouter.com/v1, вместе с /v1. SDK дописывает к нему путь операции сам.

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.kumorouter.com/v1",
    api_key=os.environ["KUMO_API_KEY"],
)

answer = client.chat.completions.create(
    model="<model>",
    max_tokens=128,
    messages=[{"role": "user", "content": "Объясни токены одной строкой."}],
)
print(answer.choices[0].message.content)

Потолок вывода обязателен: запрос без max_tokens (он же max_completion_tokens) отвергается, а не остаётся неограниченным.

Anthropic SDK

Base URL — https://api.kumorouter.com, голый origin, без `/v1`: SDK дописывает /v1/messages сам. Ключ едет в заголовке x-api-key, и SDK ставит его туда без вашего участия.

import os
from anthropic import Anthropic

client = Anthropic(
    base_url="https://api.kumorouter.com",
    api_key=os.environ["KUMO_API_KEY"],
)

answer = client.messages.create(
    model="<model>",
    max_tokens=128,
    messages=[{"role": "user", "content": "Объясни токены одной строкой."}],
)
print(answer.content[0].text)
Заметка

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

Как пишется заголовок с ключом → Что умеет модель →

Поток

Оба SDK умеют поток, и шлюз отвечает им в форме их собственного протокола: события в порядке прихода и завершающий кадр. Отличие от унарного вызова одно — сбой после начала потока обрывает его без завершающего кадра, и такой ответ считается неудачным вызовом, а не коротким.

Стриминг целиком →

Библиотеки поверх OpenAI

Фреймворки вроде LangChain или LlamaIndex обычно ходят к моделям через тот же клиент OpenAI. Если у библиотеки настраивается base URL клиента OpenAI — она работает со шлюзом так же, как прямой вызов: подставьте https://api.kumorouter.com/v1 и ключ, остальное не трогайте.

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

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