Tip
基于 new-api,one-api 聚合模型对话 Telegram 的机器人,操作方便,部署简单,动态拉取 API 所支持的所有模型(openai 官方 API 也支持)
动态获取 API 支持的所有模型
支持 AMD64/ARM64
镜像大小 17M,内存占用 10M
——By drfyup
本项目提供了以下主要功能:
- 与用户进行 AI 对话: 机器人通过 Telegram 接收用户消息,并将其发送给 OpenAI API 进行处理,然后返回生成的文本。
- 多轮对话: 机器人能够记住之前的对话,提供连续对话的上下文支持,并能设置最大对话轮数。
- 指定使用的 OpenAI 模型: 支持从多个 OpenAI 模型中选择当前使用的模型,包含默认模型的配置。
- 消息历史管理: 支持清除当前会话历史,保持对话上下文清晰可控。
- 权限管理: 通过配置文件,可以限制允许与机器人交互的用户和频道。
- 日志记录: 记录详细的操作日志,包括消息收发、API 请求和错误等信息,便于排查问题和审计。
如果您的系统尚未安装 Docker 和 Docker Compose,请使用以下命令简便地进行安装。
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
在安装 Docker 后,您可以使用以下命令安装 Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.15.0/docker-compose-$$(uname -s)-$$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
您可以通过运行以下命令确认 Docker 和 Docker Compose 已正确安装:
docker --version
docker-compose --version
在系统任意目录克隆仓库到本地并进入项目根目录:
git clone https://github.com/3377/fyaitg.git
cd fyaitg
项目的目录结构如下:
.
├── main.go # 程序入口文件
├── config/
│ └── config.yaml # 配置文件
├── Dockerfile # Docker镜像描述文件
├── docker-compose.yaml # Docker Compose配置文件
└── README.md # 项目说明文档
在启动 Docker 容器之前,请确保编辑 config/config.yaml
文件以包含正确的 Telegram Token 和 OpenAI 的 API Key,并根据需要配置其他参数。示例如下:
telegram_token: ""
openai_config:
api_key: ""
api_url: "" # 类似 https://api.openai.com/v1,写到v1截止
default_model: "gpt-4o-mini" # 初始化模型,不写没关系,动态获取后直接选择即可
system_prompt: "基于中文对话" # 系统提示词配置
history_length: 10 # 保存的最近对话轮数
history_timeout_minutes: 30 # 对话保留时间,单位:分钟
allowed_users:
- tg号 # Telegram用户ID
allowed_channels:
- "频道号" # 允许的Telegram频道名称
该项目已在 Docker Hub 上构建并发布,仓库及镜像名为 drfyup/fyaitg:latest
。您可以直接使用以下步骤快速启动项目:
如果您希望以最小的方式启动容器,可以执行以下命令:
docker run -d --name telegram-bot -v $(pwd)/config:/app/config -p 8000:8000 drfyup/fyaitg:latest
这个命令将启动机器人,并挂载本地的配置文件目录到容器内部的 /app/config
路径,确保配置文件能够被读取并使用。外部端口 8000 暴露出来以便进行健康检查(可选)。
如果您希望使用 Docker Compose 进行部署,则可以直接使用已经准备好的 docker-compose.yaml
文件。执行以下命令:
docker-compose up -d
这个命令会根据 docker-compose.yaml
文件的描述启动应用,并在后台运行。默认情况下使用的是 drfyup/fyaitg:latest
镜像,不需要手动构建。
如果需要停止运行:
docker-compose down
该项目在 Docker Hub 上持续集成更新简化了更新流程。当有新的版本发布时,您只需通过以下步骤进行更新:
拉取最新版本镜像:
docker pull drfyup/fyaitg:latest
重启容器:
docker stop telegram-bot
docker rm telegram-bot
docker run -d --name telegram-bot -v $(pwd)/config:/app/config -p 8000:8000 drfyup/fyaitg:latest
直接拉取最新的镜像并重新启动服务:
docker-compose pull
docker-compose up -d --force-recreate
在重新启动之前,请确保您已正确配置了 config.yaml
文件。
如果配置文件 config.yaml
发生了变化,可以直接在编辑后进行服务刷新,使用 Docker Compose 执行