首页 >国际 > > 正文

观天下!NoneBot2 + Go-cqhttp开源通信框架玩转智能AI机器人 - ChatGPT

腾讯云 2023-02-13 10:04:44

一、前言

NoneBot2为跨平台Python异步聊天机器人框架,本文将阐述在Linux系统搭建一套QQ机器人,如何在日常使用中带来更多便利,为我们服务。

二、安装及配置必要运行环境

本文以Gentoo Linux作为演示,其他发行版操作上没有本质区别。


【资料图】

1、安装pip

可以从软件源里安装,也可以通过get-pip脚本安装:

wget https://bootstrap.pypa.io/get-pip.pypython get-pip.py

注意Python必须是3.x版本。

当然也可以编译安装,选择其中一种方式安装即可。作为演示,这里直接从软件源进行安装:

安装成功后检查下版本:

pip --version

2、安装nb-cli并配置PATH

nb-cliNoneBot2的脚手架,后续都将使用脚手架管理运行项目,使用pip安装即可:

pip install nb-cli

二进制文件路径默认在当前目录的.local/bin下面,因此需要加入到PATH环境变量中去:

echo "export PATH=$PATH:/root/.local/bin" >> /etc/profilesource /etc/profile

路径要根据实际路径做更改,或者将二进制目录mv到已有的PATH路径中。

这里使用zsh作为shell解释器,因此写入的是zsh配置文件,或者写入到/etc/zsh/zprofile

echo "export PATH=$PATH:/root/.local/bin" >> .zshrcexec zshecho $PATH

查看版本号:

nb --version

这里的版本为nb cli版本,并非NoneBot版本,因此不要被误导,以为自己装的是nonebot1。

三、NoneBot2配置及参数选择

1、创建NoneBot项目

直接执行nb命令:

cd /optnb

会交互式询问,这里选择第一项回车。

2、选择bootstrap框架

接着选择bootstrap回车:

3、选择驱动器

输入项目名后,回车选择FastAPI驱动器:

4、选择通信协议

使用空格选择通信协议,QQ平台这里选择OneBot V11,之后回车:

V12刚出不久,相对V11不太稳定成熟,目前绝大部分插件也是基于V11兼容的。

5、安装依赖及创建虚拟环境变量

安装依赖、创建虚拟环境变量这里默认都选YES:

6、选择内建插件echo

内建插件,选择echo即可:

7、测试运行

安装完后会提示运行命令,cd到项目目录,测试运行情况:

cd test-bot nb run --reload

到此项目创建完成,CTRL+C终止。

四、go-cqhttp配置与安装

1、安装go-cqhttp

go-cqhttp并不需要手动独立安装,NoneBot2已经把它集成为插件并可以通过nb去管理插件,用户并不需要去关心go-cqhttp安装在哪,相对前一个版本简化了大量配置。

使用nb命令,依次选择Manage bot plugins--> Install nonebot plugin to current project并回车:

输入nonebot_plugin_gocqhttp插件名回车:

到此go-cqhttp安装完成。其他所有插件也可以使用此类方式安装,当然也可以使用如下命令安装:

pip安装:

pip install 

nb安装:

nb plugin install 

2、配置.env.prod

每个项目目录下都会有一个.env.prod配置文件,所有插件的变量名等都会在这个文件里定义,也包括NoneBot2自带的一些变量。

这里如下设置:

DRIVER=~fastapi   #指定驱动器,默认已有HOST=0.0.0.0  # 监听IPPORT=36985    # 监听端口SUPERUSERS=["123456789"]  # 超级管理员QQ,即机器人主人QQ,改成自己的COMMAND_START=["/", ""]  # 配置命令起始字符COMMAND_SEP=["."]  # 配置命令分割字符

3、配置go-cqhttp

使用nb run运行后,可以看到go-cqhttp监听了我们在.env.prod设置的端口:

使用浏览器访问URL:http://IP:36985/go-cqhttp/#/

可以看到进程日志都会在这里展示,并且自带一些简要的系统资源监控情况。

点击左上角的添加账号,输入要运行机器人的QQ账号,并选择设备类型:

可以仅输入账号,然后在控制台进程日志扫码登录,也可以账号密码一并输入,出于安全考虑更建议前者。

设备类型选择,只要不涉及多端登录导致冲突即可,这里选择Android Watch

之后点击启动:

进程日志会输出二维码,使用刚刚提交的QQ账号扫描登录即可。

到此则说明没有任何问题,此时可以关闭浏览器端,浏览器这步主要用于配置QQ账号、查看系统负载等。

4、测试验证

我们前面已经安装echo内建插件,用于打印输出。私聊机器人或者群里艾特机器人,测试生效情况:

五、写SystemD服务

可选项,为了方便管理NoneBot2服务,如果你觉得太麻烦也可以考虑使用screennohup &

Gentoo@root# vim /etc/systemd/system/nonebot.service[Unit]Description=Nonebot Daemon ServiceAfter=network.target[Service]User=rootWorkingDirectory=/opt/test-botExecStart=/root/.local/bin/nb runExecStop=/usr/bin/pkill -9 nb[Install]WantedBy=multi-user.target

写完服务后,重载systemd并启用开机自启动:

systemctl daemon-reloadsystemctl enable --now nonebot.servicesystemctl status nonebot.service

六、ChatGPT安装及配置

1、OpenAI注册

首先到OpenAI官网注册账号,国外手机验证可以到sms接码平台获取短信验证。

注册账号后,你已经可以在chatgpt网页版使用:

注意proxy需要全局模式,最好是美国,否则会提示区域限制访问:

2、安装ChatGPT插件

以下几种安装方式,选取一种即可。

1)Plugins Store搜索

可以在NoneBot2的插件商店搜索ChatGPT相关插件:

2)CLI下搜索

或者在nb命令行下搜索。

依次选择Manage bot plugins--> Search for nonebot plugins published on nonebot homepage,搜索关键词gpt即可:

3)使用nb安装

以nonebot-plugin-gpt3为例,使用nb安装:

依次选择Manage bot plugins--> Install nonebot plugin to current project,之后输入nonebot-plugin-gpt3回车即可:

4)使用pip安装

如果觉得交互太麻烦,也可以使用pip或者nb直接安装:

pip install nonebot-plugin-gpt3  # pip安装nb plugin install nonebot-plugin-gpt3 # nb安装

3、配置api-key

1)生成API key

首先到API keys页面创建一个key并复制它:

2)写入配置文件

生成key后,写入到config/chatgpt_api_key.yml,内容如下:

api_keys: ["sk-xxx"]        # API keygpt3_command_prefix: "gpt3" # 定义触发的关键词gpt3_need_at: False         # 是否需要被@gpt3_image_render: False    # 是否需要将回答渲染为图片gpt3_max_tokens: 800        # 返回回答的最大长度

4、测试验证

之后使用systemctl重启下NoneBot2

systemctl reboot nonebot.service

或者首次直接在项目目录前端执行nb run,方便观察日志。

测试提问:

可以看到提问和回答间隔时间在几秒到十几秒,这中间还需要考虑服务器到OpenAI API的网络传输质量情况。经过验证,API调用没有美国地域的必然要求,只要有访问境外服务器的能力即可。

如果局域网下没有相关代理网关(比如OpenWrt),则需要在系统内部配置代理,可以参考我这篇文章。

5、收费情况

1)免费额度

截至目前(2023.2.13),OpenAI官方对于注册账户会赠送18美元的API调用额度,可以在Usage页面查看使用情况:

2)不同模型的tokens价格

每个模型价格不一样,偏向的场景与功能也不大一样,具体参考官方文档。

当前价格列表:

Davinci模型为例,0.02美元1K次tokens,那么18美元免费额度的总tokens数量为90万次tokens。

3)token是怎么定义的

根据官方的解释,tokens就是每个自然语言处理的片段。

一个token为4个字符(char)或0.75个单词(words),比如this会花费1个token,而this is会花费两个token,today is也是两个token。

4)tokens辅助计算工具

使用tokenizer可以在线计算:

七、附录

1.NoneBot2官方文档

2.NoneBot2项目主页

3.Go-cqhttp

4.NoneBot2插件页面

5.OpenAI API

6.各个Module的tokens价格

7.ChatGPT Web版

8.Tokens计算工具-tokenizer

附带PDF版本:

NoneBot2 + Go-cqhttp开源通信框架玩转智能AI机器人 - ChatGPT.pdf
上一篇: 下一篇:
x
推荐阅读

观天下!NoneBot2 + Go-cqhttp开源通信框架玩转智能AI机器人 - ChatGPT

2023-02-13

环球快资讯:汽车疑问解答:mds区域蓄电池出现着火时的应急措施是什么

2023-02-13

天天新资讯:小米线刷工具miflash_小米线刷工具找不到指定文件

2023-02-12

焦点速读:消防管道连接方式有哪些_消防管道连接方式

2023-02-12

“我不会不辞而别!”—永远的大猫!每日壁纸第三十四期-世界观焦点

2023-02-12

初孕期可以吃鸽子吗_怀孕初期能吃鸽子吗|世界今热点

2023-02-12

歌行体的特点及代表作 歌行体的特点

2023-02-11

马虎的近义词的近义词

2023-02-11

土耳其安塔基亚老城区受损严重播 环球速看

2023-02-11

天天时讯:三星Galaxy S23中Light模式实测:性能损失15%左右,延长手机续航

2023-02-11

Nature:室内空气污染应该引起广泛重视|全球消息

2023-02-11

哪吒票房超越药神_哪吒票房超31亿位列中国影史票房总榜第七-今日热文

2023-02-11

天天报道:客户祝福语大全简短夏日_客户祝福语大全简短

2023-02-11

栗子色发色是什么颜色 栗子色和栗棕色的区别 每日观点

2023-02-11

大交易后,外媒更新夺冠概率:湖人2%、太阳3%、一队高达25%

2023-02-11

【热闻】福州宝龙_关于福州宝龙的介绍

2023-02-11

粗心乘客遗忘行李箱,武汉的哥放空车专程送还_世界快资讯

2023-02-10

撰写伪原创文章的方法技巧都有哪些

2023-02-10

每日时讯!abandon什么意思中文_abandon什么梗

2023-02-10

学习“杭州经验”,宝山区处级党政负责干部政治能力建设专题班赴杭州市学习考察

2023-02-10

11月22曰新闻联播 11月22日今日新闻_焦点要闻

2023-02-10

中国理财网首次披露个人养老金理财产品名单 环球滚动

2023-02-10

零元购《塞尔达:王国之泪》?国外游戏商店被挤崩了

2023-02-10

“万亿之城”泉州鼓励企业拓市场、开满机、开门红  推动一季度工业经济拼进度提效率-每日快报

2023-02-10

前沿热点:移动话费详单怎么查_移动话费详单

2023-02-10

晒平安夜礼物

2023-02-10

个税年度汇算有新变化

2023-02-10

全球球精选!吉林北华师范学院-吉林师范大学 北华大学

2023-02-10

怎么做山药排骨汤-天天最资讯

2023-02-10

上海德达医院心血管治再获认证

2023-02-10

【全球聚看点】什么叫4k高清视频_什么叫4k视频

2023-02-10

山西一煤矿发生死亡1人安全事故 被责令停产整顿

2023-02-09

今热点:梦幻西游所有符石组合大全_符石组合梦幻西游

2023-02-09

只让女青年签“抵制高价彩礼承诺书”,管用吗?

2023-02-09

全球消息!李居明2013属龙运程,李居明属龙的人蛇年运程,李居明属龙的人2013年运程

2023-02-09

宁波能源:未开展任何相关众筹集资业务及销售理财业务

2023-02-09

“俄以44%占据首位,超过中美”_即时焦点

2023-02-09

天天最资讯丨2月09日擒牛姐午后

2023-02-09

天使中单符文_lolAP天使s6天赋加点、符文搭配、英雄出装及对线技巧-今日看点

2023-02-09

全球热消息:民事调解案件自动履行率低的原因及对策

2023-02-09

啫喱是啥意思_天天报资讯

2023-02-09

联想s5如何显示实时流量?|天天视讯

2023-02-09

迎春花是什么颜色_迎春花有哪些颜色_今日热文

2023-02-09

世界即时:波段是什么意思?5分钟带你了解

2023-02-09

早出晚归撞对生肖

2023-02-09

世界看热讯:日本人为什么长寿刘波下载_日本人为什么长寿

2023-02-09

国庆节朋友圈简短文案精选80句

2023-02-09

全球今日报丨柳智敏首场演唱会预告视频,究竟是怎么一回事?

2023-02-09

韩式大酱汤的家常做法_天天资讯

2023-02-08

土耳其总统埃尔多安:地震已致该国9057人死亡 全球资讯

2023-02-08

当前讯息:助推607.15万人返岗复工 湖南“四强化”助力企业招工稳工

2023-02-08

今日精选:描写指路人五年级作文5篇

2023-02-08

爱博医疗:发行GDR并在瑞士证交所上市获瑞士证交所监管局附条件批准-全球通讯

2023-02-08

当前热文:港媒:中国经济复苏“溢出效应”惠及亚洲

2023-02-08

打印机的正确维修方法

2023-02-08

焦点精选!上网课留学所获学历将不被认证,哪些学生和留学项目最受影响

2023-02-08

每日快讯!“三个度”打造云南巧家人才集聚“生态圈”

2023-02-08

每日视点!查看本机ip地址的方法_怎么查看本机ip地址命令

2023-02-08

爱的经典格言参考 环球快看

2023-02-08

观想科技新设再生资源子公司,经营范围含电池销售 全球报资讯

2023-02-08

今热点:涨奶流奶视频教程_涨奶流奶视频

2023-02-08

蒸菜的做法

2023-02-08

7连板汉王科技收关注函

2023-02-08

【儿童剧预告】音乐剧《吹牛大王科学秀》(需网上预约:梦想剧场栏目)_世界观点

2023-02-08

当前热点-国际金价创新低有人一笔买十根金条 现在值得入手吗

2023-02-08

皇帝的新装写作背景_安徒生皇帝的新装写作背景-全球快资讯

2023-02-08

紫薯怎么弄成汁

2023-02-08

完了,极兔拿下春晚,却丢掉口碑,8毛一单惠客但是投诉爆了

2023-02-08

ufo的真实照片_ufo存在的证据图片-微头条

2023-02-07

手机QQ匿名悄悄话怎么查看

2023-02-07

焦点快看:广州医科大学附属中医医院院长祝维峰:加速推进国家级中医特色重点医院项目,争创华南地区规模最大针灸医院

2023-02-07

创业带火“空壳村”

2023-02-07

薛晓庆:围绕1881开仓_焦点信息

2023-02-07

热点!书通二酉的读法

2023-02-07

瓷肌效果怎么样

2023-02-07

环球今头条!所的部首是什么_我的部首是什么

2023-02-07

2022年Q4全球PC出货量大跌!苹果杀疯了 iPad卖爆

2023-02-07

絮雨什么意思_絮雨 天天日报

2023-02-07

全球观点:美国高科技公司业绩集体滑坡:紧急裁减人员 紧追AI热点

2023-02-07

税种分类五大类详细介绍_税种分类五大类-每日速看

2023-02-07

全球热门:土耳其一天两次强震 数千人伤亡

2023-02-07

微动态丨不入耳?不漏音?塞那Z50S PRO耳夹式耳机体验

2023-02-06

2023重庆情人节派对有哪些?|天天速递

2023-02-06

上海会为智能技术有限公司

2023-02-06

快资讯:战地风云4修改器下载大全,支持12项修改内容等

2023-02-06

今日最新!罕见多位百亿级基金经理“瘦身”,冯明远两度卸任旗下产品,王宗合、曲扬也各自“减负”,是何信号?

2023-02-06

土耳其地震已致该国至少43人死亡 400多人受伤

2023-02-06

当日快讯:港股午评:两大指数低开低走,恒生科技指数跌3.72%,有色金属 医药外包等板块走低

2023-02-06

滙怎么读的组词|焦点速看

2023-02-06

当前通讯!艾艾精工2月6日快速回调

2023-02-06

美国前财长萨默斯:美国经济“软着陆”的可能性比几个月前更大-环球简讯

2023-02-06

【全球新要闻】何以为家电影

2023-02-06

且夫

2023-02-06

中国多地“加推”文旅举措展现市场蓬勃活力

2023-02-05

阿斯顿马丁实验室门前上演“宋式点茶“,正月十五,这条未来生活原型街化身非遗市集_环球滚动

2023-02-05

汤姆猫:正推进与好莱坞国际知名电影公司合作洽谈

2023-02-05

打篮球规则 全球即时

2023-02-05

艾格努:种族歧视让内心崩溃,世界末日早日来!网友:来中国吧!

2023-02-05

增设首批,21处!_天天快看点

2023-02-05

课堂教学中有效追问策略初探_环球动态

2023-02-05