Telegram + AI API

Нейросеть для Telegram-бота по одному ключу

NormaHub отвечает на сообщения ваших пользователей: один ключ, один base_url и любая модель из каталога — GPT для диалогов, Claude для сложных запросов. Ключ живёт на backend, бюджет защищён лимитами.

Для кого: владельцы ботов, инди-разработчики и команды, которым нужен ИИ в Telegram без прямых кабинетов

Создать API key

Быстрый старт

От ключа до первого ответа

  1. 01

    Создайте отдельный API-ключ под бота и пополните баланс рублями.

  2. 02

    Подключите backend к base_url и возьмите model ID из каталога.

  3. 03

    Задайте лимит ключа, max_tokens и скользящее окно истории диалога.

Рабочий шаблон

Скопируйте основу и замените модель

Используйте только идентификатор из актуального каталога. Ключ храните в переменной окружения.

Python · ответ бота
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NORMAHUB_API_KEY"],  # только backend!
    base_url="https://api.normahub.cc/v1",
)

answer = client.chat.completions.create(
    model="MODEL_ID",
    messages=[
        {"role": "system", "content": "Отвечай коротко и по-русски."},
        {"role": "user", "content": text[:2000]},
    ],
    max_tokens=256,
).choices[0].message.content
Один ключ и баланс на все модели — от быстрых диалогов до сильной генерации.
Ключ только на backend: Telegram-клиент и мини-приложение его никогда не видят.
Лимит ключа и rate limit в коде защищают бюджет от спама и атак.

Детали решения

Как это устроено

Зачем боту единый API

Пользователь пишет в Telegram, ваш backend добавляет ключ и обращается к NormaHub, ответ уходит в чат — модель меняется одним параметром. Разумная связка: дешёвая быстрая модель отвечает в личке, сильная подключается точечно на тяжёлые команды. Без аккаунта OpenAI, доступа к Anthropic по региону и VPN: один ключ, один баланс и один формат запросов покрывают модели каталога.

Сколько стоит диалог

Каждый ответ считается как входные токены плюс выходные по тарифу выбранной модели, поэтому экономика бота — это короткие ответы и короткая память. Ограничивайте выход значением max_tokens 256–512 и передавайте не весь лог переписки, а скользящее окно из пяти-шести последних реплик: иначе каждое сообщение будет стоить как сумма всего диалога. Точные ставки входа и выхода каждой модели смотрите в каталоге, а формулу месячного бюджета разберите в гайде по стоимости токенов.

Нюансы и лимиты

Публичный бот — это открытый кошелёк, поэтому защиты три: rate limit на пользователя в коде, spend limit на API-ключе в кабинете и обрезка входа с max_tokens на каждый вызов. Долгие ответы упираются в таймауты Telegram: сначала отправляйте промежуточное «Думаю…», затем редактируйте сообщение результатом. Ошибки маппите в человеческие ответы, а request ID пишите в лог рядом с user_id. История для MVP — в памяти процесса, для продакшена — Redis или Postgres с TTL.

Оплата и контроль расходов

Запросы оплачиваются с предварительно пополненного баланса по актуальным ставкам выбранной модели. Минимум и комиссия показываются перед оплатой в кабинете; лимит расходов задаётся для API-ключа.

Ограничения доступности

Возможности зависят от модели и внешнего маршрута. При недоступности provider запрос может завершиться ошибкой; проверяйте каталог, статус и документацию перед production.

Частые вопросы

Где хранить API-ключ Telegram-бота?

Только на backend-сервере, в переменных окружения. Ключ нельзя вшивать в клиент, мини-приложение или публичный репозиторий: его извлекут и потратят ваш баланс.

Какую модель выбрать для бота?

Быструю и дешёвую для диалогов с короткими ответами, сильную — для тяжёлых команд. Точные model ID и цены — в каталоге моделей.

Пользователь заспамил бота. Что защитит бюджет?

Три слоя сразу: rate limit на пользователя в коде, spend limit на API-ключе в личном кабинете и max_tokens на каждый вызов. Один слой без остальных — полумера.

Бот отвечает медленно. Что делать?

Сразу отвечайте промежуточным сообщением, затем редактируйте его результатом. Держите max_tokens разумным и задавайте timeout клиенту.