Примеры для фреймворков
Готовые примеры для каждого поддерживаемого фреймворка. Каждый пример — полноценный обработчик.
grammY — с middleware
bot.ts
import { Bot } from "grammy";import { sidekickMiddleware } from "sidekick-sdk";const bot = new Bot("BOT_TOKEN");// Register middleware — injects `sidekick` into every handlerbot.use(sidekickMiddleware({apiKey: "sk_live_xxxxx",platformId: "plt_xxxxx",}));bot.on("message:text", async (ctx) => {const llmReply = await getLlmResponse(ctx.message.text);// Your existing keyboard (if any)const kb = {inline_keyboard: [[{ text: "👍", callback_data: "like" },{ text: "👎", callback_data: "dislike" }],],};const result = await ctx.sidekick.inject({userId: ctx.from.id,message: llmReply,languageCode: ctx.from.language_code || "en",isPremium: ctx.from.is_premium,keyboard: kb,});await ctx.reply(result.message, { reply_markup: result.keyboard });});
grammY — без middleware
bot.ts
import { Bot } from "grammy";import { Sidekick } from "sidekick-sdk";const bot = new Bot("BOT_TOKEN");const sk = new Sidekick({apiKey: "sk_live_xxxxx",platformId: "plt_xxxxx",});bot.on("message:text", async (ctx) => {const llmReply = await getLlmResponse(ctx.message.text);const result = await sk.inject({userId: ctx.from.id,message: llmReply,languageCode: ctx.from.language_code || "en",isPremium: ctx.from.is_premium,});await ctx.reply(result.message, { reply_markup: result.keyboard });});
Telegraf
bot.ts
import { Telegraf } from "telegraf";import { Sidekick } from "sidekick-sdk";const bot = new Telegraf("BOT_TOKEN");const sk = new Sidekick({apiKey: "sk_live_xxxxx",platformId: "plt_xxxxx",});bot.on("text", async (ctx) => {const llmReply = await getLlmResponse(ctx.message.text);const kb = {inline_keyboard: [[{ text: "👍", callback_data: "like" },{ text: "👎", callback_data: "dislike" }],],};const result = await sk.inject({userId: ctx.from.id,message: llmReply,languageCode: ctx.from.language_code || "en",isPremium: ctx.from.is_premium,keyboard: kb,});await ctx.reply(result.message, { reply_markup: result.keyboard });});
node-telegram-bot-api
bot.js
import TelegramBot from "node-telegram-bot-api";import { Sidekick } from "sidekick-sdk";const bot = new TelegramBot("BOT_TOKEN", { polling: true });const sk = new Sidekick({apiKey: "sk_live_xxxxx",platformId: "plt_xxxxx",});bot.on("message", async (msg) => {if (!msg.text || !msg.from) return;const llmReply = await getLlmResponse(msg.text);const result = await sk.inject({userId: msg.from.id,message: llmReply,languageCode: msg.from.language_code || "en",isPremium: msg.from.is_premium,});await bot.sendMessage(msg.chat.id, result.message, {reply_markup: result.keyboard ?? undefined,});});