Практика · проверено 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.