src/config
读取和校验环境变量。
COPILOT PROMPT
这份文档是给 GitHub Copilot Agent 使用的完整重构说明,目标是让它按 Project Xiomn 的要求重构 Telegram-AI-Bot-Pro。
GOALS
把项目重构成可稳定部署的 Telegram AI Bot,而不是临时 Demo。
支持普通 Gemini 文本 / 图片 / 文件处理。
支持 Gemini Live 原生音频对话,但要和普通 Gemini Provider 分开。
减少 slash command,主要使用 Telegram inline button 做交互。
整理环境变量,更新 .env.example。
修复 Zeabur 部署启动错误,保证容器可运行。
整理文件解析能力:PDF / DOCX / XLSX / TXT。
保持代码结构清晰,方便后续继续扩展 OpenAI-compatible、Qwen、DeepSeek 等 Provider。
ARCHITECTURE
读取和校验环境变量。
不同 AI Provider:gemini、gemini-live、openai-compatible。
Telegram 消息处理、按钮交互、回复封装。
文件解析:PDF、DOCX、XLSX、TXT。
数据库、会话状态、用户设置。
通用工具函数。
ENV
COPY THIS
请你作为 GitHub Copilot 智能体,重构这个 Telegram AI Bot 项目。
项目目标:
这是一个要部署到 Zeabur / VPS 的 Telegram AI Bot,不是本地 Demo。请优先保证项目可以稳定构建、启动和部署。
核心要求:
1. 支持普通 Gemini:
- 文本对话
- 图片理解
- 文件内容总结
- 多轮上下文
2. 支持 Gemini Live:
- 原生音频对话
- 实时语音能力
- 与普通 Gemini Provider 分开实现
- 不要把 Live API 当普通 chat completion 使用
3. Telegram 交互:
- 尽量减少 slash command
- 使用 inline keyboard / inline button 作为主要交互方式
- 用户点击按钮可以切换模式、选择模型、查看帮助、进入设置
4. 文件解析:
- 支持 txt / md / json / csv
- 支持 pdf
- 支持 docx
- 支持 xlsx
- 注意 pdf-parse 在 ESM 项目中的导入兼容性
5. Zeabur 部署:
- 必须监听 process.env.PORT
- 确保 npm start 能启动
- 确保 Docker / Zeabur 环境不会因为缺少环境变量直接崩溃
- 对必要环境变量给出清晰错误提示
- 更新 README 和 .env.example
6. 建议代码结构:
- src/config:读取环境变量
- src/providers/gemini:普通 Gemini
- src/providers/gemini-live:Gemini Live
- src/telegram:Telegram bot handlers
- src/parsers:文件解析
- src/storage:数据库和会话
- src/utils:通用工具
7. 环境变量请至少包含:
- BOT_TOKEN
- AI_PROVIDER
- AI_MODEL
- AI_API_KEY
- AI_BASE_URL
- GEMINI_API_KEY
- GEMINI_MODEL
- GEMINI_LIVE_API_KEY
- GEMINI_LIVE_MODEL
- GEMINI_LIVE_BASE_URL
- DATABASE_FILE
- PASSWORD
- PORT
8. 请特别修复或避免这些问题:
- Zeabur BackOff / 容器反复重启
- pdf-parse default export 错误
- Unexpected identifier 'parsePdf'
- Docker build 阶段错误读取 node_modules
- 缺少 PORT 监听
- 环境变量不完整导致启动崩溃
请先扫描整个仓库,给出重构计划,然后按模块逐步修改。每次修改后请确保:
- npm install 可以成功
- npm run build 或 npm start 不报错
- README 和 .env.example 与代码一致
- Zeabur 可以根据 PORT 正常启动服务