Инструменты

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. 1Получите токен бота у @BotFather.
  2. 2Установите grammy и openai, вставьте код ниже.
  3. 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 — обе ошибки называют причину прямо.