Как встроить LLM в свой код на Python и Node.js через API TokenMaster
Чтобы добавить языковую модель в свой сервис, бота или скрипт, не нужны отдельные SDK под каждого провайдера: TokenMaster отдаёт все модели через OpenAI-совместимый API, поэтому подходит обычный клиент openai в Python и стандартный fetch/axios в Node.js. Достаточно указать Base URL и ключ — и можно отправлять запросы к DeepSeek, GLM и Qwen одним и тем же кодом.
Что понадобится
- Python 3.8+ с установленной библиотекой
openai(устанавливается черезpip install openai). - Node.js 18+ (в нём уже есть встроенный
fetch; дляaxios—npm install axios). - API-ключ TokenMaster вида
sk-…— создаётся в разделе «Ключи» после регистрации на tokenmaster.ru. - Активный баланс для запросов к моделям.
Перед началом стоит проверить окружение: для Python подойдёт библиотека openai ветки 1.x, а в актуальных LTS-версиях Node.js встроенный fetch доступен сразу, без установки дополнительных пакетов.
Python: клиент openai с base_url
Самый простой путь — официальная библиотека openai. Установите её:
pip install openai
Затем создайте клиент, указав base_url — это и есть адрес шлюза TokenMaster:
from openai import OpenAI
client = OpenAI(
api_key="sk-ВАШ_КЛЮЧ",
base_url="https://tokenmaster.ru/v1",
)
response = client.chat.completions.create(
model="deepseek-flash",
messages=[
{"role": "system", "content": "Ты — полезный ассистент."},
{"role": "user", "content": "Объясни, что такое API, в одном абзаце."},
],
)
print(response.choices[0].message.content)
Ответ модели лежит в response.choices[0].message.content. Поменяв только поле model (например, на deepseek-v4-pro, glm-4.5 или модель Qwen), вы переключаетесь между провайдерами без изменения остального кода.
Для чатов и ассистентов удобен потоковый вывод — текст приходит частями, как в обычном диалоге. Для этого добавьте stream=True и читайте фрагменты в цикле:
stream = client.chat.completions.create(
model="deepseek-flash",
messages=[{"role": "user", "content": "Расскажи коротко о Python."}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")
Node.js: fetch и axios к /v1/chat/completions
В Node.js можно обойтись вообще без зависимостей — встроенный fetch отправляет POST-запрос прямо на эндпоинт /chat/completions:
const response = await fetch("https://tokenmaster.ru/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer sk-ВАШ_КЛЮЧ",
},
body: JSON.stringify({
model: "deepseek-flash",
messages: [
{ role: "user", content: "Привет! Представься в двух предложениях." },
],
}),
});
const data = await response.json();
console.log(data.choices[0].message.content);
Ответ приходит в формате OpenAI: текст модели находится в data.choices[0].message.content, а в data.usage — информация о потраченных токенах. Если в проекте уже используется axios, код почти не отличается — меняется только способ отправки:
import axios from "axios";
const { data } = await axios.post(
"https://tokenmaster.ru/v1/chat/completions",
{
model: "deepseek-flash",
messages: [{ role: "user", content: "Привет! Представься в двух предложениях." }],
},
{
headers: {
"Content-Type": "application/json",
Authorization: "Bearer sk-ВАШ_КЛЮЧ",
},
}
);
console.log(data.choices[0].message.content);
В обоих вариантах в data.choices[0].message.content приходит только текст ответа. Полный ответ содержит и служебные поля: data.usage — число токенов запроса и ответа, data.model — модель, которая фактически обработала вызов. Это удобно для учёта расходов и логирования.
Подключение TokenMaster
TokenMaster — это AI-шлюз с OpenAI-совместимым API, поэтому параметры подключения одинаковы для любого языка:
- Base URL:
https://tokenmaster.ru/v1 - API Key: ваш ключ вида
sk-…
Один ключ и один баланс дают доступ сразу к нескольким семействам моделей: DeepSeek (deepseek-flash, deepseek-v4-pro), GLM / Zhipu (glm-4.5, glm-5 и другие) и Qwen. Актуальный список и цены — в «Model Square» на tokenmaster.ru/pricing, а документация по эндпоинтам — на tokenmaster.ru/docs. Оплата принимается из России, без привязки к зарубежной карте.
Проверка работы
Запустите пример — если в консоли появился осмысленный текст, интеграция работает. Типичные ошибки:
- 401 / invalid api key — ключ скопирован не полностью или неверно; проверьте, что он начинается с
sk-и передан в заголовкеAuthorization: Bearer …. - connection error — неправильный адрес; Base URL должен быть ровно
https://tokenmaster.ru/v1, а для Node.js эндпоинт —https://tokenmaster.ru/v1/chat/completions. - insufficient quota — на балансе TokenMaster недостаточно средств; пополните его в разделе «Кошелёк».
Частые вопросы
Нужно ли ставить SDK конкретных провайдеров?
Нет. Достаточно стандартного клиента openai (Python) или обычного fetch/axios (Node.js) — OpenAI-совместимый формат работает из коробки.
Как сменить модель?
Просто поменяйте значение model в теле запроса: deepseek-flash, deepseek-v4-pro, glm-4.5, glm-5 или модель Qwen. Код при этом не меняется.
Подходит ли это для продакшена? Да. Для больших нагрузок добавьте обработку ошибок, повторы при таймаутах и храните ключ в переменных окружения, а не в коде.
Как включить потоковый вывод?
В Python добавьте stream=True в chat.completions.create. В Node.js проще всего взять официальный SDK openai с параметром stream: true — он отдаёт текст частями через delta.content; при работе с fetch нужно читать SSE-поток из тела ответа.
Итог
Встроить LLM в свой код проще, чем кажется: в Python используется клиент openai с base_url, а в Node.js — обычный fetch или axios к /v1/chat/completions. Укажите Base URL https://tokenmaster.ru/v1, ключ sk-… и модель — и DeepSeek, GLM и Qwen станут доступны из любого приложения одним и тем же кодом.
TokenMaster