Skip to content

DESN131/TgChatBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram AI 私人聊天机器人

一个基于 Telegram Bot 的 AI 对话项目,支持:

  • 单用户(白名单)访问控制
  • 多对话管理(新建、切换、删除、历史)
  • 角色提示词(系统提示词)管理
  • 每个对话固定角色,不可切换
  • 请求超时与简单速率限制
  • 本地运行与 Docker 部署

1. 功能概览

  • /new [标题]:新建对话,先展示角色列表,再通过回复编号/名称选择角色
  • /list:查看对话列表
  • /switch <ID>:切换对话
  • /delete <ID>:删除对话(至少保留一个)
  • /history [ID]:查看历史记录
  • /roles:查看角色列表与当前对话角色

2. 项目结构

.
├─ chat.py
├─ requirements.txt
├─ Dockerfile
├─ docker-compose.yml
├─ .env.example
└─ data/
   ├─ roles/         # 角色提示词,*.txt(文件名即角色名)
   └─ sessions/      # 每个用户的会话数据,<user_id>.json

3. 环境变量

复制模板并填写:

cp .env.example .env

Windows PowerShell:

Copy-Item .env.example .env

关键配置:

  • TELEGRAM_BOT_TOKEN:BotFather 生成的机器人 Token
  • LLM_API_KEY:你的模型平台 API Key
  • LLM_BASE_URL:模型平台 OpenAI 兼容接口地址
  • LLM_MODEL:模型名称
  • LLM_REQUEST_TIMEOUT_SECONDS:单次请求超时(秒)
  • RATE_LIMIT_SECONDS:同一用户最小请求间隔(秒)
  • ALLOWED_TELEGRAM_USER_IDS:允许访问的 Telegram 用户 ID(逗号分隔)

4. 角色提示词配置

data/roles/ 下放置至少一个 .txt 文件,例如:

  • data/roles/助手.txt
  • data/roles/程序员.txt

文件内容就是该角色的系统提示词。

5. 本地运行

5.1 安装依赖

pip install -r requirements.txt

5.2 启动

python chat.py

6. Docker 运行

6.1 构建并后台启动

docker compose up -d --build

6.2 查看日志

docker compose logs -f

6.3 停止

docker compose down

7. 安全建议

  • 不要提交 .env 到仓库
  • 仅在 ALLOWED_TELEGRAM_USER_IDS 中保留你自己的用户 ID
  • 定期轮换 TELEGRAM_BOT_TOKENLLM_API_KEY
  • 服务器部署时建议用普通用户运行容器/进程,不使用 root

8. 常见问题

启动报错:未找到系统提示词文件

请确认 data/roles/ 下至少有一个 .txt 文件。

机器人无响应

请检查:

  1. TELEGRAM_BOT_TOKEN 是否正确
  2. ALLOWED_TELEGRAM_USER_IDS 是否包含你的 Telegram ID
  3. LLM_BASE_URLLLM_MODEL 是否可用
  4. 日志中是否有超时/鉴权错误

About

TgChatBot是一款基于 Telegram Bot 的 AI 私人聊天机器人。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors