Channels
Channels xử lý tầng vận chuyển — nhận tin nhắn từ người dùng và gửi phản hồi lại.
Telegram Bot
import { Agent } from '@moon-wave/core';import { TelegramChannel, ChannelRunner } from '@moon-wave/channels';
interface Env { GROQ_API_KEY: string; TELEGRAM_TOKEN: string;}
const agent = new Agent({ name: 'telegram-bot', model: { provider: 'groq', model: 'llama-3.3-70b-versatile' }, systemPrompt: 'Bạn là Telegram bot hữu ích, trả lời bằng tiếng Việt.',});
export default { async fetch(request: Request, env: Env): Promise<Response> { const runner = new ChannelRunner(agent); const telegram = new TelegramChannel(env.TELEGRAM_TOKEN); return telegram.handle(request, runner, { sessionId: 'telegram', env }); },};Setup:
- Tạo bot qua @BotFather trên Telegram
- Set webhook:
https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://your-worker.workers.dev
npx wrangler secret put TELEGRAM_TOKENWeb Chat (SSE)
Stream phản hồi qua Server-Sent Events cho trải nghiệm chat real-time:
import { WebChatChannel, ChannelRunner } from '@moon-wave/channels';
export default { async fetch(request: Request, env: Env): Promise<Response> { const runner = new ChannelRunner(agent); const webchat = new WebChatChannel(); return webchat.handle(request, runner, { sessionId: 'web', env }); },};