openAI gpt部署服务器QQ机器人docker实现

2023-11-15

原项目地址:
https://github.com/RockChinQ/QChatGPT

过程视频链接:
【open AI GPT 结合QQ机器人服务器部署docker实现】 https://www.bilibili.com/video/BV1Fs4y1e7zc/?share_source=copy_web&vd_source=358d2c0ee887bac52ac329814c2473f0

一、Ubuntu Docker

1.首先确认Ubuntu已安装CURL

若未安装可参考:
CURL不是默认安装的工具,需手动下载,过程分为以下几步:

1.更新软件库

sudo apt-get update

2.安装curl

sudo apt install curl

2.使用官方安装脚本自动安装

安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

二、 Ubuntu docker-compose安装

1.不推荐git路径的下载,太慢了,可参考下列路径

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

2.添加可执行权限

sudo chmod +x /usr/local/bin/docker-compose

三、下载所需要文件

i. 克隆仓库

git clone https://github.com/mikumifa/QChatGPT-Docker-Installer
cd QChatGPT-Docker-Installer

ii. 进行部署

linux系统可以直接使用loadFile.sh (已安装 git 和 wget)

chmod +x loadFile.sh && ./loadFile.sh 

可能会出现一个unzip什么什么的报错,安装即可:

sudo apt install unzip

最终效果如下,bot目录内是当前的RockChinQ/QChatGPT项目里面的内容,mirai目录内是ITXTech下载后解压到mirai里面

.
├── bot
│   ├── config-template.py
│   ├── LICENSE
│   ├── main.py
│   ├── pkg
│   ├── README.md
│   ├── requirements.txt
│   ├── res
│   ├── sensitive.json
│   └── tests
├── docker-compose.yaml
├── loadFile.sh
├── mirai
│   ├── LICENSE
│   ├── mcl
│   ├── mcl.cmd
│   ├── mcl.jar
│   └── README.md
├── _mirai.Dockerfile
└── _setup.Dockerfile

三、配置启动mirai

i. 初始化mirai

docker compose run --rm mirai

ii. 在mirai上登录QQ

login <机器人QQ号> <机器人QQ密码>

如果你的账号开启了设备锁,可以考虑先关闭。

滑动验证码

有时候登陆账号还需要滑动验证码。这种情况可以使用 TxCaptchaHelper 处理。

在手机上安装 TxCaptchaHelper,打开后输入 mirai 给出的请求码,完成滑动验证即可。

备份设备文件

成功通过设备锁验证之后,在 bots/QQ号 文件夹中可以找到 device.json 文件,这个文件保存了此次登录的虚拟设备信息。
你可以备份这个文件,以后在其他地方使用 mirai 登录这个账号时,可以用备份的文件覆盖 device.json,这样可以避免设备锁验证。

iii. 配置自动登录

当机器人账号登录成功以后,执行

autologin add <机器人QQ号> <机器人密码>
autologin setConfig <机器人QQ号> protocol ANDROID_PAD

出现mirai登录时提示版本过低:当前QQ版本过低,请升级至最新版本后再登录。点击进入下载页面报错时候删除mirai/bots文件夹里面的数据,见此issue(https://github.com/RockChinQ/QChatGPT/issues/38)

iv. 编写配置文件

在bot目录下创建config.py,将config-template.py的内容复制进去,编辑config.py的修改必需项

mirai/config/net.mamoe.mirai-api-http 文件夹中找到setting.yml,这是mirai-api-http的配置文件

将这个文件的内容修改为:

adapters:
  - ws
debug: true
enableVerify: true
verifyKey: yirimirai
singleMode: false
cacheSize: 4096
adapterSettings:
  ws:
    host: localhost
    port: 8080
    reservedSyncId: -1

verifyKey要求与bot的config.py中的verifyKey相同

4. 启动

i. 启动mirai容器

docker compose run -itd mirai

此命令将在后台启动mirai容器

ii. 启动主程序容器

docker compose run -itd setup

此命令将在后台启动主程序的容器并完成配置

如何将容器切到前台查看日志?

查看容器进程

docker ps

在输出中查看容器的ID,例如:

root@docker-test:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f633b8c1051c qchatgpt-docker-installer-setup “/bin/sh -c 'python …” About a minute ago Up About a minute qchatgpt-docker-installer_setup_run_998f5335ab18
227e44d7d5a2 qchatgpt-docker-installer-mirai “/bin/sh -c 'java -j…” 2 minutes ago Up 2 minutes qchatgpt-docker-installer_mirai_run_c6c8f60da3aa

若要切换到主程序控制台,请查看IMAGE名为qchatgpt-docker-installer-setup的容器的CONTAINER ID,在这里是f633b8c1051c,于是使用以下命令将其切到前台:

docker attach f633b

这是便可以看到主程序的控制台,查看mirai控制台同理

如需将其切到后台运行,请使用组合键Ctrl+P+Q

root@docker-test:~# docker attach f633b
[2022-12-18 07:00:27.247] manager.py (173) - [INFO] : [person_1010553892]发送消息:2
[2022-12-18 07:00:27.248] util.py (67) - [INFO] : message=‘Request to OpenAI API’ method=post path=https://api.openai.com/v1/completions
[2022-12-18 07:00:29.629] util.py (67) - [INFO] : message=‘OpenAI API response’ path=https://api.openai.com/v1/completions processing_ms=872 request_id=6d9f172ce9c1b3f315aa59dc09333836 response_code=200
[2022-12-18 07:00:29.631] manager.py (195) - [INFO] : 回复[person_1010553892]消息:我不明白你的意思。输入!help获取帮助
read escape sequence
root@docker-test:~#

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openAI gpt部署服务器QQ机器人docker实现 的相关文章

随机推荐

  • MySQL C API

    Mysql API数据结构 Mysql API中用到了很多结构体等数据类型 下面就简单说说常用的几个数据结构的含义 至于它们的定义鸡啄米就不贴了 大家可以到Mysql提供的mysql h头文件中查看 MYSQL 连接数据库前 必须先创建MY
  • 【小沐学Android】Android实现socket网络通信

    SOCKET网络通信系列文章链接如下 小沐学python 一 Python简介和安装 Python实现socket网络通信 C 实现socket网络通信 Windows Android实现socket网络通信 nodejs实现socket网
  • Opencv立体相机标定

    0 简要 立体相机标定是立体视觉深度测量的重要步骤 相机标定的精度很大程度上决定了深度的精度 因此掌握立体相机的标定算法和过程至关重要 由于相机标定原理可以在网上找到很多相关资料 因此本文不展开讲原理部分 感兴趣的同学可以移步到https
  • MySQL数据库学习——DQL语句的执行顺序

    1 查询年龄大于15的员工的姓名 年龄 并根据年龄进行升序排序 select name age from emp where age gt 15 order by age asc select e name e age from emp e
  • vim/vi常用命令集

    格式 指令 或指令 参数 指令解释 文件操作 vim vi 打开一个空文件 vim vi a txt 打开当前目录中的a txt文件 若文件不存在则创建一个名为a txt的文件 指定保存位置为当前目录 vim vi home a txt 打
  • SpringBoot常用注解

    一 注解 annotations 列表 SpringBootApplication 包含了 ComponentScan Configuration和 EnableAutoConfiguration注解 其中 ComponentScan让sp
  • 如何通过Tensorflow的变量赋值计算1+2+3+4+5+6+7+8

    一 导入tensorflow import tensorflow as tf 二 定义计算图 1 常量初始化 constant name tf constant value 2 变量初始化 创建变量 name variable tf Var
  • 关于maven项目多模块的打包问题的血泪经历(必看)

    最近公司使用springboot开发项目 使用的构建工具是maven 项目分了很多模块 并且模块之间还存在一定的依赖 比如说一个项目common是提供各项目通用的工具类 公共的类等 例子 项目root 有module common fron
  • Linux编译CPU版本的caffe

    Linux编译CPU版本的caffe caffe框架的编译过程是比较复杂 本人在编译过程中也遇到过比较多的坑 这里把我的经验记录下来 希望大家可以少走点弯路 如果大家觉得此教程有用 记得订阅点赞加分享哦 1 下载caffe 通过git克隆下
  • Vue中天地图的基本引入

    注 如不需要左下角 天地图 文字 找到对应的样式 隐藏即可 index html
  • microsoft WINDOWS 系统错误代码 [收藏]

    MS Windows Error Messages Code Error Message 0 操作成功完成 1 功能错误 2 系统找不到指定的文件 3 系统找不到指定的路径 4 系统无法打开文件 5 拒绝访问 6 句柄无效 7 存储控制块被
  • 【react】string类型的ref(过时的api,可能会在未来的版本中移除,不推荐使用)

    ref可用来获取组件标签的dom节点 给组件标签绑定ref 组件的实例对象上有个属性叫做refs 组件标签上绑的ref值就会显示在refs中 div div
  • 《深入理解计算机系统》实验六Shell Lab 下载和官方文档机翻

    前言 深入理解计算机系统 官网 http csapp cs cmu edu 3e labs html 该篇文章是 实验六Shell Lab的Writeup shlab pdf 机翻 原文 http csapp cs cmu edu 3e s
  • [笔记] Unikernel原型:Docker镜像秒变虚拟机镜像以及无ssh开terminal调试

    现如今docker run各种流行 可是虚拟机并没有消退 有没有办法把镜像部署成一个虚拟机来个暂时的转换呢 有没有好办法在没有ssh的container上可以开个terminal进行调试呢 其实很简单 docker save就可以把整个镜像
  • 必看:主线剧情系列的循序渐进的查看顺序

    必看 主线剧情 系列 的循序渐进的查看顺序 主线剧情 Linux 系列 为嵌入式 Linux 的学习记录 仓库地址 Github Gitee 一开始可以鸟瞰一下 ARM 系列处理器的当前局面 主线剧情 番外01 ARM系列快速鸟瞰 首先是基
  • php短信接口开发经验及具体开发实现

    一 群发短信mt 参数名称 说明 是否必须 备注 Sn 软件序列号 是 格式XXX XXX XXX XXXXX Pwd 密码 是 md5 sn password 32位大写密文 Mobile 手机号 是 必填 支持10000个手机号 建议
  • Centos 7安装mysql

    1 安装前清理工作 1 1 1 清理原有的mysql数据库 使用以下命令查找出安装的mysql软件包和依赖包 rpm pa grep mysql 显示结果如下 mysql80 community release el7 1 noarch m
  • c++中用各种不同的方法来实现交换函数

    今天来学习一下c 中用各种不同的方法来实现交换函数 第一 include
  • 合宙Air001开发板系列教程—01环境搭建与点灯(基于Keil-MDK的开发)

    近日合宙出品了一款 TSSOP20封装 ARM Cortex M0 内核 内置32K Flash 4K RAM 集成多路USART IIC SPI等通讯外设 5个16bit定时器以及1路12bit ADC和2路比较器的国产MCU 10块钱一
  • openAI gpt部署服务器QQ机器人docker实现

    原项目地址 https github com RockChinQ QChatGPT 过程视频链接 open AI GPT 结合QQ机器人服务器部署docker实现 https www bilibili com video BV1Fs4y1e