一个使用 grammY + ElysiaJS + Bun 构建的现代化 Telegram 机器人。
- grammY: 现代化的 Telegram Bot 框架,提供完整的 TypeScript 支持
- ElysiaJS: 高性能 Web 框架,专为 Bun 优化
- Bun: 极速的 JavaScript 运行时
- xsAI: 超轻量级 AI SDK (< 6KB),支持文本生成和流式输出
- Webhook 模式: 支持生产环境部署
# 克隆项目
git clone <your-repo>
cd telegram-ai-bot
# 安装依赖
bun install-
创建
.env.local文件,具体支持的环境变量请参考./src/env.ts -
从 @BotFather 获取 bot token
-
从 OpenRouter 获取 API key
# 开发模式
bun run dev
# 代码检查
bun run lint
# 代码修复
bun run lint:fix/start- 欢迎消息- 文本消息回复 - 使用 AI 智能回复用户消息
- 流式响应 - 实时显示 AI 生成的文本
使用 xsAI SDK 提供强大的 AI 功能:
import { streamText } from '@xsai/stream-text'
const { textStream } = await streamText({
apiKey: process.env.OPENAI_API_KEY,
baseURL: process.env.OPENAI_BASE_URL,
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: userMessage }
],
model: 'gpt-4o'
})
// 流式响应处理
for await (const textPart of textStream) {
// 实时更新回复
}- 🚀 超轻量级:相比其他 SDK,安装大小减少 100 倍,打包大小减少 12 倍
- 📦 模块化:只安装需要的功能包
- 🔧 兼容性:支持任何 OpenAI 兼容的 API
- 💾 极小体积:
@xsai/generate-text仅 21KB 安装大小,3.5KB 打包大小
这个项目展示了如何将现代化的技术栈结合:
- grammY 处理 Telegram Bot API 交互
- ElysiaJS 提供高性能的 HTTP 服务器
- xsAI 提供轻量级 AI 文本生成能力
- Webhook 方式接收 Telegram 更新
- TypeScript 提供类型安全
- Bun 运行时优化性能
对于生产环境,需要设置 webhook:
curl -X POST \
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook \
-H "Content-Type: application/json" \
-d '{"url": "https://your-domain.com/"}'- grammY 文档 - Telegram Bot 框架
- ElysiaJS 文档 - 高性能 Web 框架
- xsAI 文档 - 轻量级 AI SDK
- Bun 文档 - JavaScript 运行时
- xsAI GitHub - 源码仓库
- xsAI 介绍博客 - 详细介绍
- Telegram Bot API - 官方文档