Практика · проверено 2 августа 2026 г. · 11 минут

AI API для Telegram-бота

Безопасная схема состоит из трёх частей: Telegram отправляет update вашему backend, backend вызывает Celestria Gate секретным ключом, затем отправляет пользователю только готовый ответ. Ключ AI API никогда не попадает в код Telegram-клиента.

Архитектура без утечки ключа

Принимайте Telegram webhook на HTTPS endpoint. Проверяйте секрет webhook, извлекайте chat_id и текст, затем вызывайте Responses API от имени вашего сервера. Для локальной разработки можно использовать polling, но production webhook проще масштабировать и наблюдать.

Связывайте Telegram user ID с внутренним лимитом, но не передавайте персональные данные модели без необходимости. Для защиты от злоупотреблений ограничьте длину сообщения, частоту и максимальное число параллельных запросов.

Минимальный обработчик TypeScript

import OpenAI from "openai";

const ai = new OpenAI({
  apiKey: process.env.CELESTRIA_API_KEY,
  baseURL: "https://api.celestriagate.com/v1",
});

export async function answerTelegram(text: string) {
  const response = await ai.responses.create({
    model: "gpt-5.6-luna",
    instructions: "Отвечай кратко и по-русски.",
    input: text.slice(0, 8_000),
    max_output_tokens: 600,
  });

  return response.output_text || "Не удалось получить ответ";
}

Память диалога

Для короткого продолжения можно сохранить previous_response_id на пару chat_id + user_id. Для управляемой долговременной истории храните сообщения в своей базе, делайте summary и отправляйте только релевантный контекст.

Не позволяйте одному пользователю бесконечно наращивать контекст: длинная история увеличивает задержку и стоимость. Установите TTL, предел сообщений и команду /new для сброса диалога.

Чек-лист запуска

  • Проверяйте Telegram secret token и отклоняйте неизвестные webhook-запросы.
  • Храните TELEGRAM_BOT_TOKEN и CELESTRIA_API_KEY в разных секретах.
  • Ставьте rate limit на пользователя и общий concurrency limit.
  • Используйте Luna по умолчанию, а дорогую модель включайте по команде или маршрутизации.
  • Не логируйте сообщения целиком без понятной политики хранения.
  • Добавьте /help, /new, /balance и понятную обработку таймаута.

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

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

Для массовых коротких ответов начните с GPT-5.6 Luna. Переключайтесь на Terra или Sol только для задач, где eval показывает заметный прирост качества.

Можно ли вызывать AI API прямо из Telegram Mini App?

Не следует: пользователь сможет извлечь ключ. Mini App должен обращаться к вашему backend, а уже backend — к Celestria Gate.

Как ограничить расходы одного пользователя?

Сочетайте собственный rate limit и квоту пользователя с лимитом отдельного API-ключа в Celestria Gate.

Источники

Канонический адрес материала · Получить API-ключ