Telegram Bot
Бот в Telegram. Отвечает пользователям через модели ApiMira по одному ключу.
Своего бота проще собрать на grammY: он берёт сообщения из Telegram, а ответы — у шлюза через официальный SDK OpenAI.
Что понадобится
- Base URL
- https://apimira.com/v1
- API-ключ
- am-ВАШ_КЛЮЧСоздаётся в кабинете, раздел «API-ключи». Полное значение показывается один раз.
- Model ID
- google/gemini-3.7-flashКопируется из каталога целиком, вместе с префиксом до «/».
Как подключить
- 1Получите токен бота у @BotFather.
- 2Установите grammy и openai, вставьте код ниже.
- 3Положите BOT_TOKEN и APIMIRA_API_KEY в окружение и запустите бота.
// npm i grammy openai
import { Bot } from "grammy";
import OpenAI from "openai";
const ai = new OpenAI({
apiKey: process.env.APIMIRA_API_KEY,
baseURL: "https://apimira.com/v1",
});
const bot = new Bot(process.env.BOT_TOKEN);
bot.on("message:text", async (ctx) => {
const answer = await ai.chat.completions.create({
model: "google/gemini-3.7-flash",
messages: [{ role: "user", content: ctx.message.text }],
});
await ctx.reply(answer.choices[0].message.content ?? "");
});
bot.start();Для длинных ответов включите потоковую выдачу и правьте уже отправленное сообщение по мере поступления текста — иначе пользователь смотрит на пустой чат десятки секунд.
Вызов функций поддерживается, поэтому агентные режимы работают. Строгий JSON-режим (response_format) и снятый формат functions шлюз отвергает ошибкой unsupported_parameter — параметр не игнорируется молча. Картинки на вход принимаются у моделей с пометкой «Видит картинки» на странице «Модели»: часть content типа image_url со ссылкой вида data:image/png;base64,… (PNG, JPEG или WebP, до 5 МБ каждая, до 50 штук на запрос). Внешние ссылки шлюз не скачивает, а модель без этой пометки отвечает ошибкой unsupported_capability — обе ошибки называют причину прямо.