Оформление
Язык сайта
Валюта цен
Совместимые инструменты
Чат-ботРаботает

Telegram Bot + Evrona

Своего бота легче всего собрать на grammY: сообщения он берёт из Telegram, а ответы — у шлюза через официальный SDK OpenAI.

Что нужно подготовить

Base URLАдрес шлюза
https://evrona.ru/v1
Ключ APIПример; ваш — в кабинете
ev-ВАШ_КЛЮЧ
Model IDЛюбая модель каталога
google/gemini-3.7-flash

Нет ключа? Создайте аккаунт — ключ создаётся в кабинете, в разделе «API-ключи», и полное значение показывается один раз. Model ID копируется из каталога целиком, вместе с префиксом до «/».

Порядок подключения

  1. Возьмите токен бота у @BotFather.

  2. Поставьте grammy и openai, затем вставьте код ниже.

  3. Задайте переменные окружения BOT_TOKEN и EVRONA_API_KEY, затем запустите бота.

bot.js
// npm i grammy openai
import { Bot } from "grammy";
import OpenAI from "openai";

const ai = new OpenAI({
  apiKey: process.env.EVRONA_API_KEY,
  baseURL: "https://evrona.ru/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 — обе ошибки прямо называют причину.