Telegram AI Assistant - 基于 Telegram 双 Bot 架构的个人知识管理 + AI 助理系统
通过两个 Telegram Bot 协作,帮助你收集、整理、检索个人知识,并提供智能化的 AI 交互体验。
- 📥 收集 Bot: 静默保存笔记、想法、链接,AI 自动反馈
- 🎛 控制 Bot: 配置中心 + AI 对话 + 搜索 + 草稿生成
- 🌐 Web 管理后台: 可视化配置提示词、模型、功能开关
- 🔍 语义搜索: 基于 ChromaDB 的向量检索
- 🤖 多模型支持: Claude / GPT / Gemini / Llama 自由切换
- 📄 RAG 草稿: 基于笔记库自动生成内容
┌─────────────────┐ ┌─────────────────┐
│ Bot 1 (收集) │ │ Bot 2 (控制) │
│ 静默保存笔记 │ │ AI对话/配置 │
└────────┬────────┘ └────────┬────────┘
│ │
└───────────┬───────────┘
│
┌──────▼──────┐
│ Node.js │
│ 后端服务 │
└──────┬──────┘
│
┌───────────┼───────────┐
│ │ │
┌────▼────┐ ┌────▼────┐ ┌────▼────┐
│ChromaDB │ │OpenRouter│ │Web Admin│
│向量数据库│ │ AI API │ │管理后台 │
└─────────┘ └─────────┘ └─────────┘
- Node.js 18+
- Docker (用于 ChromaDB)
- 两个 Telegram Bot Token
- OpenRouter API Key
- 在 Telegram 搜索 @BotFather
- 发送
/newbot,按提示创建 Bot - 保存 Bot Token(格式:
123456789:ABCdefGHI...) - 重复上述步骤创建第二个 Bot
💡 建议命名:
- Bot 1:
XXX_Input_Bot(收集信息)- Bot 2:
XXX_Assistant_Bot(AI 助理)
- 访问 OpenRouter
- 注册/登录账号
- 在 Keys 页面 创建 API Key
- 保存 API Key
# 1. 克隆项目
git clone https://github.com/lyulyulyu999/telegram-ai-assistant.git
cd telegram-ai-assistant
# 2. 配置环境变量
cp .env.example .env
# 编辑 .env 填写你的配置
# 3. 一键启动所有服务
docker compose up -d
# 4. 查看日志
docker compose logs -f
# 5. 停止服务
docker compose down# 1. 克隆项目
git clone https://github.com/lyulyulyu999/telegram-ai-assistant.git
cd telegram-ai-assistant
# 2. 一键配置(填写所有 Token 和 Key)
./scripts/setup.sh
# 3. 启动所有服务
./scripts/start.sh
# 或者使用 npm workspaces
npm install
npm start运行 setup.sh 或编辑 .env 时需要填写:
| 配置项 | 说明 | 示例 |
|---|---|---|
| INPUT_BOT_TOKEN | Bot 1 的 Token | 123456:ABC... |
| OUTPUT_BOT_TOKEN | Bot 2 的 Token | 789012:DEF... |
| OPENROUTER_API_KEY | OpenRouter API Key | sk-or-v1-... |
| WEBHOOK_URL | HTTPS Webhook 地址 | https://xxx.loca.lt |
直接发送任何内容即可保存:
- 📝 文字笔记
- 🔗 链接
- 💡 想法灵感
命令:
/start- 查看帮助/stats- 查看统计
命令:
/start或/menu- 打开控制台
控制台功能:
- 📝 提示词管理 - 创建/编辑/切换 AI 人格
- 🤖 切换模型 - 选择不同的 AI 模型
- 💬 AI 对话 - 开启/关闭对话模式
- 🔍 搜索 - 语义搜索笔记
- 📄 草稿 - 基于笔记生成内容
- 📊 统计 - 查看笔记数量
访问 http://你的服务器IP:3001
功能:
- 📊 仪表盘 - 统计概览
- 📝 提示词管理 - 可视化编辑
- 🤖 模型设置 - 为不同功能配置模型
- ⚙️ Bot 设置 - 功能开关
- 🔄 版本管理 - 配置快照
| 服务 | 默认端口 | 说明 |
|---|---|---|
| Bot 服务 | 3000 | Telegram Webhook 接收 |
| 管理后台 | 3001 | Web 管理界面 |
| ChromaDB | 8000 | 向量数据库 |
Telegram Webhook 要求 HTTPS。开发环境推荐使用 localtunnel(无需注册):
# 安装
npm install -g localtunnel
# 启动(在新终端)
lt --port 3000或使用 ngrok:
# 安装后启动
ngrok http 3000获取 HTTPS URL 后,更新 .env 中的 WEBHOOK_URL。
推荐使用 PM2 管理进程:
# 安装 PM2
npm install -g pm2
# 启动所有服务
pm2 start scripts/ecosystem.config.js
# 设置开机自启
pm2 startup
pm2 savetelegram-ai-assistant/
├── packages/ # Monorepo 包管理
│ ├── bot/ # Telegram Bot 代码
│ │ ├── src/
│ │ │ └── index.js # 主程序
│ │ └── package.json
│ └── admin/ # Web 管理后台
│ ├── src/
│ │ └── server.js # 后端服务
│ ├── public/ # 前端文件
│ └── data/ # 配置数据
├── scripts/ # 脚本工具
│ ├── setup.sh # 一键配置
│ ├── start.sh # 启动脚本
│ ├── stop.sh # 停止脚本
│ └── ecosystem.config.js # PM2 配置
├── docker/ # Docker 配置
│ └── Dockerfile # 多阶段构建
├── docs/ # 文档
│ └── TROUBLESHOOTING.md # 故障排除
├── .env.example # 环境变量模板
├── docker-compose.yml # Docker Compose 配置
├── package.json # 根 package.json (workspaces)
├── CONTRIBUTING.md # 贡献指南
└── README.md
详细问题请查看 故障排除文档
原因: Webhook 没有包含 callback_query 类型
解决:
source .env
curl "https://api.telegram.org/bot$OUTPUT_BOT_TOKEN/setWebhook" \
-d "url=$WEBHOOK_URL/webhook/output" \
-d 'allowed_updates=["message","callback_query"]'# 查看日志
docker compose logs -f
# 重启服务
docker compose restart
# 重新构建
docker compose up -d --build欢迎提交 Issue 和 Pull Request!
详细贡献指南请查看 CONTRIBUTING.md
如果这个项目对你有帮助,欢迎 Star ⭐️