Telegram-бот
MarkdownБоты · OpenAI Chat
Полное руководство
| Формат | Где настроить |
|---|---|
| OpenAI Chat | У Telegram-фреймворков нет своего слоя LLM: в обработчике сообщений вызывается OpenAI SDK с base_url Ailoot (или Anthropic SDK с base_url без /v1) |
Настройка
Скопируйте конфигурацию и замените sk-... своим ключом из кабинета Ailoot. Лучше хранить ключ в переменной окружения AILOOT_API_KEY, если приложение это умеет.
До запуска запросите GET /v1/models со своим ключом Ailoot. Выберите точный ID модели, у которой методы включают POST /v1/chat/completions, и укажите этот ID в настройках. Для агентов также проверьте поддержку инструментов и возможностей, нужных вашей версии клиента.
Сохраните Python-код как ailoot-telegram-bot.py. Установите зависимости, задайте обе переменные окружения и запустите файл. Напишите боту Hello и проверьте текстовый ответ. При ошибке сохраните Request ID и проверьте исходный результат до новой генерации.
python3 -m pip install "aiogram>=3,<4" openaiailoot-telegram-bot.py
import asyncio
import os
from aiogram import Bot, Dispatcher, F
from aiogram.types import Message
from openai import AsyncOpenAI, APIError
async def main():
dp = Dispatcher()
async with AsyncOpenAI(
base_url="https://api.ailoot.ai/v1",
api_key=os.environ["AILOOT_API_KEY"],
max_retries=0,
) as llm:
@dp.message(F.text)
async def reply(message: Message):
try:
result = await llm.chat.completions.create(
model="claude-sonnet-5-5",
messages=[{"role": "user", "content": message.text}],
)
content = result.choices[0].message.content or "—"
for start in range(0, len(content), 4000):
await message.answer(content[start:start + 4000])
except APIError as error:
await message.answer(
f"{type(error).__name__}; Request ID: "
f"{getattr(error, 'request_id', None) or '—'}"
)
bot = Bot(token=os.environ["TELEGRAM_BOT_TOKEN"])
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())export AILOOT_API_KEY="sk-..."
export TELEGRAM_BOT_TOKEN="<TELEGRAM_BOT_TOKEN>"
python3 ailoot-telegram-bot.pyПример модели: claude-sonnet-5-5, deepseek-v4-pro, qwen3.8-flash. Любую другую модель берите из каталога — проверьте, что у неё есть нужный формат.
Важно знать
Проверка
- Для формата OpenAI адрес —
https://api.ailoot.ai/v1(или полный путь, если приложение просит полный адрес). - Задайте короткий вопрос. Если пришла ошибка — посмотрите код и Request ID и сверьтесь со страницей Ошибки и лимиты.
- 404 сразу после настройки почти всегда означает неверный адрес: лишний или недостающий
/v1. - 402 — не хватает баланса на резерв. Агенты резервируют больше, чем чат: почему.
Документация приложения: https://github.com/openai/openai-python