Docker部署”微信机器人”指南,5秒启动

2023年 12月 7日 83.7k 0

讲一下微信机器人的Docker部署方式。Docker部署”微信机器人”指南,5秒启动

Docker是什么

Docker是一个用于创建和运行应用程序的平台。它使用称为容器的技术,可以将软件及其所有依赖项打包在一起,使其可以在任何系统上一致地运行。这就像是一个虚拟的盒子,你可以在里面放入你需要的所有东西,无论你在哪里打开这个盒子,里面的东西都会以同样的方式运行。

如果你了解虚拟机的话,那可以简单的将Docker理解为更轻量的虚拟机。 其中, Docker是容器引擎, 而通过Docker镜像跑起来的一个实例,叫容器(Container)。一个容器可实现一个或多个服务(进程)。

Docker部署有什么优势?

无环境依赖。 使用docker部署无需下载源码和安装依赖,只需要获取 docker-compose.yml 配置文件并启动容器即可。

Docker 部署微信机器人

机器上安装Docker引擎

从Docker官网 (https://docs.docker.com/engine/install/) 下载对应平台(Linux, Windows, Mac) 安装包。Docker部署”微信机器人”指南,5秒启动微信截图_20231130212832.png

不同平台上多种不同安装方式,可参考官方文档。这里以Windows上为例讲解, 主要有以下几步:

1. 双击 Docker Desktop Installer.exe 运行安装程序。
2. 当出现提示时,确保在 Configuration 页面上选择 Use WSL 2而不是 Hyper-V 选项,这取决于您对后端的选择。
3. 如果您的系统只支持这两个选项中的一个,您将无法选择使用哪个后端。
4. 按照安装向导上的说明授权安装程序并继续安装。
5. 安装成功后,选择 Close 以完成安装过程。
6. 如果管理员帐户与用户帐户不同,则必须将该用户添加到 docker-users 组。以管理员身份运行计算机管理,并导航到本地用户和组 > 组 > docker-Users。右击可将用户添加到组中。签出并重新签入以使更改生效。

安装完成后,你需要启动 “Docker Desktop” 应用程序(Docker Engine)。它可能会提示你登陆,我们只需要跑Container, 可以不登陆。运行docker -v 和 docker-compose version 有正常输出就算是Ready了。

PS C:UsersYaha> docker -v
Docker version 23.0.5, build bc4487a
PS C:UsersYaha> docker-compose version
Docker Compose version v2.17.3

准备Config文件

一个示例的Config文件(docker-compose.yml) 从这里下载 https://open-1317903499.cos.ap-guangzhou.myqcloud.com/docker-compose.yml,  里面的配置与config.json类似。

  • OPEN_AI_API_KEY: 替换成你的OpenAI API Key;
  • OPEN_AI_API_BASE: 如果网络有问题,可指定一个可连的OpenAI API反向代理地址,可自建,也可看下面示例;
  • SINGLE_CHAT_PREFIX: 设置触发机器人回复的聊天前缀。如果像下面代码中设置为空的话,则每条对话都会回复;
  • GROUP_CHAT_PREFIX: 设置群聊中触发机器人回复的聊天前缀。一般是登陆微信的昵称,这样的效果是群聊中只有@你的消息机器人才会回复。
  • GROUP_NAME_WHITE_LIST: 设置机器人在哪些群聊中会回复。如果是ALL_GROUP,则是所有群聊中都要回复。
  • SPEECH_RECOGNITION: 设置为true的话,则会识别语音消息,并回复。如不必要,建议关闭。
version: '2.0'
services:
  chatgpt-on-wechat:
    image: zhayujie/chatgpt-on-wechat
    container_name: chatgpt-on-wechat
    security_opt:
      - seccomp:unconfined
    environment:
      OPEN_AI_API_KEY: 'YOUR API KEY'
      MODEL: 'gpt-3.5-turbo'
      OPEN_AI_API_BASE: 'https://openai-forward.metadl.com/v1'
      PROXY: ''
      SINGLE_CHAT_PREFIX: '["bot", "@bot"]'
      SINGLE_CHAT_REPLY_PREFIX: '"[bot] "'
      GROUP_CHAT_PREFIX: '["@bot"]'
      GROUP_NAME_WHITE_LIST: '["ChatGPT测试群", "ChatGPT测试群2"]'
      IMAGE_CREATE_PREFIX: '["画", "看", "找"]'
      CONVERSATION_MAX_TOKENS: 1000
      SPEECH_RECOGNITION: 'False'
      CHARACTER_DESC: '你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。'
      EXPIRES_IN_SECONDS: 3600
      USE_GLOBAL_PLUGIN_CONFIG: 'True'
      USE_LINKAI: 'False'
      LINKAI_API_KEY: ''
      LINKAI_APP_CODE: ''

启动Container

进入 docker-compose.yml 同级目录,用以下命令,可以启动container。 如果是首次启动,会自动下载Docker Image,存在本地,稍等一会。 如果本地有Docker Image了,5秒种启动完成。

cd chatgpt-on-wechatdocker
docker-compose up -d

docker-compose up -d 是一个 Docker 命令,用于在后台(detached mode)启动并运行定义在 docker-compose.yml 文件中的多个容器。这个命令会自动处理容器间的依赖关系。如果要停掉正在运行的容器,可以用命令: docker-compose down

Docker部署”微信机器人”指南,5秒启动

扫码登陆

登陆二维码在日志里,通过以下命令持续查看日志。日志中看到"Start auto replying"表示登录成功。退出查看日志按 Ctrl+C, Container进程会持续在后台运行。

docker logs -f chatgpt-on-wechat

Docker部署”微信机器人”指南,5秒启动0613546a308adb3b20451c1e322f5378.png

使用知识库

上面的操作只是让微信机器人接入了ChatGPT,可以回答通识问题,但它不能联网,不能回答特定问题。如果我问它 “越山兄最喜欢吃什么?”, 它回答不上来的。给它一个外挂的知识库,则可以解决回答特定领域问题。

最简单的连接知识库的方式是使用Link-AI.tech

  • 微信扫码登陆 https://link-ai.tech/
  • 点左边菜单“知识库” - “创建知识库”,输入任意名字
  • 上传知识库文档(txt, pdf,md等)Docker部署”微信机器人”指南,5秒启动
  • 点击“应用接入”菜单, 创建Link-AI API key, 复制下来Docker部署”微信机器人”指南,5秒启动
  • 点击 “我的应用” -  创建知识库应用,记得绑定前面创建好的知识库。Docker部署”微信机器人”指南,5秒启动
  • 创建成功页面上,记得这个APP Code, 也可以在应用配置页面上查看。Docker部署”微信机器人”指南,5秒启动
  • docker-compose.yml中改以下几行, 就接入了LinkAI,会优先查询知识库进行回答
  •       USE_LINKAI: 'True'
          LINKAI_API_KEY: 'Link_LiQttLoJ37fUEIR7NM02L63sxx'
          LINKAI_APP_CODE: 'giV3EnYq'
    

    8 Docker方式重启应用

    docker-compose down
    docker-compose up -d
    docker logs -f chatgpt-on-wechat
    #扫码重新登陆
    

    Docker部署”微信机器人”指南,5秒启动

    注意事项

    使用此项目微信机器人

  • PC端和机器人登陆是互斥的,只能同时登陆一处。
  • 使用LinkAI接入AI能力的话,则不需要OpenAI API Key。
  • 此项目(https://github.com/zhayujie/chatgpt-on-wechat)还可接入企业微信,公众号,飞书;支持各种插件实现特定功能;

    来源:越山集

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论