搭建Telegram群里的AI GPT机器人

docker compose是这样的:

version: "3.5"
services:
  chatgptbot:
    container_name: q58_ai_bot
    image: yym68686/chatgpt:latest
    environment:
      - BOT_TOKEN=749xxx70:AAEuxxxxxxx3myk
      - API=sk-NqnBxxxxxxx88E5
      - WEB_HOOK=https://telegram-ai-bot.q58.org
      - GPT_ENGINE=gpt-4o-mini
      - API_URL=https://oapi.czl.net/v1/chat/completions
      - NICK=@Q58_AI_bot
      - GOOGLE_API_KEY=AIzaxxxxxjFms
      - GOOGLE_CSE_ID=33xxxx44b97
      - ADMIN_LIST=591xxxxxx993
      - GROUP_LIST=-10xxxxx81
      - REPLY=true
      - PASS_HISTORY=10
      - SYSTEMPROMPT=你是Q58社区论坛的AI助手, 当用户询问问题时, 如果没有指定语言, 则需要使用中文回复.
    volumes:
      - ./user_configs:/home/user_configs
    ports:
      - 4397:8080

下面一个个解释:

BOT_TOKEN

这个是找一个机器人号, 叫Bot Father, 新建一个机器人, 然后输入名字,编码, 成功了它就会发给你机器人的token

API

这个是gpt的key, 我用的是oapi的, 所以下面的API_URL也就是自定义的.

WEB_HOOK

这个可以提升机器人回复的速度, 这个网址是通过nginx, 反代这个容器的对外端口, 也就是下面的4397, 然后把绑定的域名放在这里就行

GPT_ENGINE

这个是默认模型, 设置不设置都可以, 因为运行后可以使用/info进行设置

API_URL

ai接口的url, 如果是官方就是https://api.openai.com/v1/chat/comletions

NICK

这个是机器人的名字, 这样在群里它就只会回复@它的消息, 不然每个人的消息它都回复, 就乱了

GOOGLE_API_KEY和GOOGLE_CSE_ID

创建Google Cloud项目:
在Google Cloud Console (https://console.cloud.google.com/) 上创建一个新的项目。
记下项目ID,后面会用到。
启用谷歌搜索控制台API:
移至Google Cloud Console。
打开您的项目。
在侧边菜单中选择 “API 和服务”,然后在 “仪表盘” 选项卡上找到 “谷歌搜索控制台API”(Google Custom Search API)。
启用 “谷歌搜索控制台API”。
单击 “凭据”,然后创建一个新凭据(API密钥)。记下生成的API密钥。
在Google搜索控制台上设置搜索引擎:
在Google搜索控制台(https://programmablesearchengine.google.com/about/)上创建一个新的搜索引擎。
配置搜索引擎的设置,例如搜索内容的范围、注册为网站管理员等。
记下搜索引擎ID。

ADMIN_LIST

管理员列表, 这个自己搜一下机器人, 叫 Telegram: Contact @myidbot , 然后输入/getid, 就可以了.

GROUP_LIST

可以用机器人的群组ID, 这个也是把上面那个机器人邀请到群组里, 然后输入 / , 就会有提示了.

REPLY

启用回复状态

PASS_HISTORY

上下文数量

SYSTEMPROMPT

系统提示词


运行后telegram上就能用了.不过还需要设置一个东西

关闭机器人的群组隐私权限

在Bot Father里面

本来是开着的, 把它"Turn off"就可以了