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

news/2024/5/20 8:08:23 标签: docker, 服务器, 机器人, openai, chatgpt

原项目地址:
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

dockercompose_34">二、 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:~#


http://www.niftyadmin.cn/n/52043.html

相关文章

【流畅的python】第一章 Python数据模型

文章目录第一章 Python 数据模型1.1 python风格的纸牌1.2 如何使用特殊方法-通过创建一个向量类的例子1.3 特殊方法汇总第一章 Python 数据模型 python最好的品质是一致性 python解释器碰到特殊句法时&#xff0c;会使用特殊方法去激活一些基本的对象操作 这些特殊的方法以两个…

HTML-CSS-js教程

HTML 双标签<html> </html> 单标签<img> html5的DOCTYPE声明 <!DOCTYPE html>html的基本骨架 <!DOCTYPE html> <html> </html>head标签 用于定义文档的头部。文档的头部包含了各种属性和信息&#xff0c;包括文档的标题&#…

Python自动化测试实战篇(4)selenium+unttest+ddt实现自动化用例测试,模拟用户登陆点击交互测试,Assert捕获断言多种断言

这些是之前的文章&#xff0c;里面有一些基础的知识点在前面由于前面已经有写过&#xff0c;所以这一篇就不再详细对之前的内容进行描述 Python自动化测试实战篇&#xff08;1&#xff09;读取xlsx中账户密码&#xff0c;unittest框架实现通过requests接口post登录网站请求&…

python数据结构:数组、链表、栈、队列、树

目录1.数组1.1 数组的数据结构1.1.1 数组的定义1.1.2 随机访问和连续内存1.1.3 静态内存和动态内存1.1.4 物理大小和逻辑大小1.2 数组的操作1.2.1 增加数组大小1.2.2 减小数组大小1.2.3 插入一项1.2.4 删除一项1.2.5 复杂度权衡1.3 二维数组2.链表2.1 链表分类2.2 链表特点2.3 …

教你三相永磁同步电机隆博戈观测matlab搭建

一、观测器原理 对这个原理不懂的小伙伴们&#xff0c;可以去看B站DR_can的视频。后续有空我再将这里细化讲解一下 简而言之&#xff1a;目标就是设计一组K值使得模型估算的Xhat 和 实际的X相等。 Xhat - X收敛于0&#xff0c;即知道了实际的X的值&#xff0c;这就是观测器的基…

SpringBoot整合(二)MyBatisPlus技术详解

MyBatisPlus详解 一、标准数据层开发 MyBatisPlus&#xff08;简称MP&#xff09;是基于MyBatis框架基础上开发的增强型工具&#xff0c;旨在简化开发、提高效率 MyBatisPlus的官网为:https://mp.baomidou.com/ 1.1 标准CRUD 1.2 新增 int insert (T t)T:泛型&#xff0c…

剑指Offer 第27天 JZ75 字符流中第一个不重复的字符

字符流中第一个不重复的字符_牛客题霸_牛客网 描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如&#xff0c;当从字符流中只读出前两个字符 "go" 时&#xff0c;第一个只出现一次的字符是 "g" 。当从该字符流中读出前六个字符 “google&…

IP-Guard控制台的账号登录是否支持双因子认证?

支持,从4.61.1XX.0的版本开始支持此功能,目前双因子功能的效果是使用管理员账号登录控制台,输入账号密码验证后,还需验证邮箱验证码,来增加管理员账号的安全性。 步骤概括如下: 1、配置邮箱报告服务器 登陆控制台,打开工具-选项,选中邮件报告服务器设置,并添加一个可用…