Простой Telegram-бот на Heli API: пользователь пишет сообщение, бот отправляет его в chat completions и возвращает ответ модели. Base URL https://getheli.ru/v1, ключ sk-heli-…, оплата в рублях за токены.
Что понадобится
- Токен Telegram-бота от @BotFather.
- Ключ Heli с главной getheli.ru.
- Python 3.10+ и библиотеки
python-telegram-bot,openai.
Пример на Python
import os
from openai import OpenAI
from telegram import Update
from telegram.ext import Application, CommandHandler, MessageHandler, filters, ContextTypes
HELI_BASE_URL = "https://getheli.ru/v1"
HELI_API_KEY = os.environ["HELI_API_KEY"]
TELEGRAM_TOKEN = os.environ["TELEGRAM_BOT_TOKEN"]
MODEL = "google/gemini-2.5-flash"
client = OpenAI(base_url=HELI_BASE_URL, api_key=HELI_API_KEY)
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text("Привет! Задай вопрос — отвечу через Heli API.")
async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
user_text = update.message.text or ""
response = client.chat.completions.create(
model=MODEL,
messages=[
{"role": "system", "content": "Ты вежливый ассистент поддержки."},
{"role": "user", "content": user_text},
],
max_tokens=512,
)
reply = response.choices[0].message.content or "Не удалось получить ответ."
await update.message.reply_text(reply)
def main() -> None:
app = Application.builder().token(TELEGRAM_TOKEN).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message))
app.run_polling()
if __name__ == "__main__":
main()Для экономии используйте Gemini Flash или GPT-4.1 mini. Другие модели — в каталоге.
Запуск
export HELI_API_KEY="sk-heli-ВАШ_КЛЮЧ"
export TELEGRAM_BOT_TOKEN="123456:ABC..."
pip install python-telegram-bot openai
python bot.pyПодробнее о формате запросов — в документации Heli. Как выбрать модель для бота — в статье «Какую модель выбрать для чат-бота».
Попробуйте Heli за 30 секунд
Ключ sk-heli- и кабинет создаются сразу. После подтверждения почты — 50 ₽ на баланс.