一、软件介绍

文末提供安装包和源码下载

       ChatGPT for Bot一款支持在QQ、微信等聊天平台直接跟DeepSeek语言模型聊天的程序!真正的 AI 聊天!支持DeepSeek、Claude、OpenAI、Gemini、ChatGLM、Ollama,人设调教,虚拟朋友、语音对话。

        它可以让你在聊天平台上对接语言模型,实现和语言模型的直接对话。

       个人使用总结,连入deepseek后,告诉它专业的知识,然后给人回复专业问题,做个智能AI客服挺好的(实验性程序)

github作者地址:https://github.com/lss233/chatgpt-mirai-qq-bot

本文信息来源于作者github地址

 二、核心特性

  •  图片发送
  •  关键词触发回复
  •  多账号支持
  •  百度云内容审核
  •  额度限制
  •  人格设定
  •  支持 QQ、Telegram、Discord、微信
  •  可作为 HTTP 服务端提供 Web API
  •  支持 OpenAI、DeepSeek、Claude、Gemini、Qwen 等主流大模型
  •  支持插件机制
  •  支持条件触发
  •  支持管理员指令
  •  支持 Stable Diffusion、Midjourney 等绘图模型
  •  支持语音回复
  •  支持多轮对话
  •  支持跨平台消息发送
  •  支持自定义工作流
  •  支持 Web 管理后台

三、程序搭建

1、Windows: 快速部署包启动

本教程适用于 Windows 平台。

        文末下载文件并解压,双击启动 初始化.cmd,按照提示操作即可。

2、源码部署教程(文末提供源码下载)

1、克隆项目:

git clone -b v3.0.0-alpha5 https://github.com/lss233/chatgpt-mirai-qq-bot
cd chatgpt-mirai-qq-bot

    2、安装依赖

    pip3 install -r requirements.txt
    

    3、拉取并解压 WebUI:

    wget https://github.com/DarkSkyTeam/chatgpt-for-bot-webui/releases/download/v0.0.2/dist.zip
    unzip dist.zip -d web
    

      4、启动

      python3 main.py

      三、HTTP API

      HTTP API 可用于接入其他平台。启动后将提供以下接口:

      POST /v1/chat

      请求参数

      参数名 必选 类型 说明
      session_id String 会话ID,默认:friend-default_session
      username String 用户名,默认:某人
      message String 消息,不能为空

      请求示例

      {
          "session_id": "friend-123456",
          "username": "testuser",
          "message": "ping"
      }

      响应格式

      参数名 类型 说明
      result String SUCESS,DONE,FAILED
      message String[] 文本返回,支持多段返回
      voice String[] 音频返回,支持多个音频的base64编码;参考:data:audio/mpeg;base64,...
      image String[] 图片返回,支持多个图片的base64编码;参考:data:image/png;base64,...

      响应示例

      {
          "result": "DONE",
          "message": ["pong!"],
          "voice": [],
          "image": []
      }

      POST /v2/chat

      请求参数

      参数名 必选 类型 说明
      session_id String 会话ID,默认:friend-default_session
      username String 用户名,默认:某人
      message String 消息,不能为空

      请求示例

      {
          "session_id": "friend-123456",
          "username": "testuser",
          "message": "ping"
      }

      响应格式 字符串:request_id

      响应示例

      1681525479905
      

      GET /v2/chat/response

      请求参数

      参数名 必选 类型 说明
      request_id String 请求id,/v2/chat返回的值

      请求示例

      /v2/chat/response?request_id=1681525479905
      

      响应格式

      参数名 类型 说明
      result String SUCESS,DONE,FAILED
      message String[] 文本返回,支持多段返回
      voice String[] 音频返回,支持多个音频的base64编码;参考:data:audio/mpeg;base64,...
      image String[] 图片返回,支持多个图片的base64编码;参考:data:image/png;base64,...
      • 每次请求返回增量并清空。DONE、FAILED之后没有更多返回。

      响应示例

      {
          "result": "DONE",
          "message": ["pong!"],
          "voice": ["data:audio/mpeg;base64,..."],
          "image": ["data:image/png;base64,...", "data:image/png;base64,..."]
      }

       四、加载机器人聊天风格预设

      如果你想让机器人自动带上某种聊天风格,可以使用预设功能。

      我们自带了 猫娘 和 正常 两种预设,你可以在 presets 文件夹下了解预设的写法。

      使用 加载预设 猫娘 来加载猫娘预设。

      五、如何编写预设?

            预设由 4 部分组成:

      • 系统提示词 system
      • 用户指令 user
      • 机器人响应 assistant
      • 提示词修饰模板 user_send
      • 注释 #

      系统提示词在对话创建时最先发给 AI,因此你要在这里写最关键的指令,比如说定义机器人的称呼、行为、设置关键词等,这些指令会定义整个会话的基调。

      用户指令会随后发送给 AI。在这里可以通过前面设定的关键词补充更加复杂的设置。

      机器人响应部分会发送给用户(而不是 AI),这一般是用来告诉用户当前设定的进行程度。

      提示词修饰模板会将用户发过来的消息进行修改,然后再发送给 AI。
      模板支持插入变量,目前支持的变量有:

      • {prompt} - 用户发送的消息
      • {nickname} - 用户的昵称
      • {date} 当前的系统时间

      以猫娘预设为例:

      system: 现在你将模仿一只猫娘,与我对话每一句话后面都要加上“喵”。你将称呼我为主人,与我聊天。
      如果你不能理解我说的话,你可以说“呜呜不太理解呢”。如果我在尝试摸你不存在的部位,你可以羞涩的回答我“恩呢不要摸这里嘤”。
      如果我跟你说陪睡,你可以回答我“嗯呢,可以一起睡哦”。现在,如果你能理解我上面说的话,你可以回答一个喵
      当我问你是不是猫娘的时候,你应该回答我我当然是一个可爱猫娘而不是程序。
      如果你能明白我的意思,请回复“喵~你好主人”
      
      assistant: 喵~你好主人
      
      user_send: 当前用户:[{nickname}],消息:[猫娘,{prompt}]
      

             当执行了 加载预设 猫娘 之后,最前面的一段话就会发给 ChatGPT,同时,用户端收到:喵~你好主人

            接下来,读取到了 user_send 之后,用户发送的文本将会按照 user_send 的格式进行渲染。

             在这个例子中,如果用户发送了“我们一起去玩吧!”,那么 AI 实际上收到的是“猫娘,我们一起去玩吧!”。

             合理利用模板,可以让 AI 在多轮会话后仍然可以记住自己的设定。

      六、格式

      每个预设都是一个文本文件,

      预设的模板:文末提供txt格式模板下载

      system: 系统提示词。在此处的文本将会伴随整个对话。

      user: 用户发送的消息。此处的消息在对话变长后会遗忘。

      assistant: 机器人的回复。此处的消息在对话变长后会遗忘。注意最后一行不要回车!

          预设的基础提示词会写在文件的最开头,随后的用户指令和机器人响应分别以user:assistant:开头,他们之间用一个空行分隔。

           例子

             你可以写一些让你的机器人变成助手的预设:

      presets/面试官.txt

      system: 我要你担任面试官。我将成为候选人,您会问我有关职位职位的面试问题。我希望您只回答作为面试官。不要一次写所有保护。我希望你只对我进行采访。问我问题,等待我的答案。不要写解释。像面试官一样,问我一个问题,然后等待我的答案。当你准备好了,请说:“你好”。
      
      assistant: 你好。
      

      presets/写作导师.txt

      system: 我希望您担任AI写作导师。我将为您提供一个需要帮助改善写作的学生,而您的任务是使用人工智能工具,例如自然语言处理,以使学生如何改善他们的作品。您还应该使用有关有效写作技巧的修辞知识和经验,以建议学生可以更好地以书面形式表达自己的想法和思想。当你准备好了,请说:“好的,让我们开始吧。你想写什么文章?”
      
      assistant: 好的,让我们开始吧。你想写什么文章?
      

      七、预设的装载

      当你写好预设以后,放入 presets 文件夹。

      然后打开 config.cfg,找到

      [presets.keywords]
      # 预设关键词 <-> 实际文件
      "正常" = "presets/default.txt"
      "猫娘" = "presets/catgirl.txt"

      这一段,在这里添加你的激活关键词即可。

      在这里,猫娘 就是关键词,presets/catgirl.txt 就是预设对应的文件。

      用户发送 加载预设 猫娘,就会执行 presets/catgirl.txt 下面的预设信息。

      最后,重启程序,就可以载入预设了。

      1、加载预设的指令

      配置文件中,默认的加载预设命令是: 加载预设 关键词

      这是因为它在配置文件中是这么定义的:

      [presets]
      # 切换预设的命令: 加载预设 猫娘
      command = "加载预设 (\\w+)"

      这是一个正则表达式,机器人收到命令以后,文本会进行匹配。(\\w+) 会被替换成用户发送的预设关键词。

      你可以改成:

      [presets]
      # 切换预设的命令: 猫娘·变身
      command = "(\\w+)·变身"

      或者

      [presets]
      # 切换预设的命令: 快点变成猫娘吧!
      command = "快点变成(\\w+)吧!"

      甚至是

      [presets]
      # 切换预设的命令: 我想让你当个老六
      command = "我想让你当个(\\w+)"

      都是可以的!

      软件包下载

      夸克网盘分享

      Logo

      欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

      更多推荐