新闻中心

玩转多功能QQ机器人【含ChatGPT实现】

2025-07-22
浏览次数:
返回列表
本文记录用nonebot2搭建多功能QQ机器人的流程,包括go-cqhttp和nonebot2环境搭建,解决了Linux下的扫码问题,介绍了配置及自建模块方法,附chatgpt模块示例,已实现文生图等多项功能。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

玩转多功能qq机器人【含chatgpt实现】 -

手把手实现多功能QQ机器人

现在网络上已经有很多的教程去教学QQ搭建,我这里再写一个完整的流程搭建及自建模块如何实现。

(主要是怕自己搭完一次就忘了,算是个记录博客)

实现功能

采用目前主流的nonebot2完成QQ机器人搭建。

这是一个QQ机器人功能合集。

目前实现了如下功能:

  • [X] 文生图-openai
  • [X] 代码生成-openai
  • [X] 随机图片-request
  • [X] 单次聊天-openai-chatgpt
  • [X] 天气预报-request
  • [X] ip查询-高德
  • [ ] 文生图 其他版本
  • [ ] 多轮聊天

1. go-cqhttp环境搭建

下载go-cqhttp压缩包

https://docs.go-cqhttp.org/guide/quick_start.html#%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B

或者在github下载,都一样

https://github.com/Mrs4s/go-cqhttp/releases

按照官网流程进行操作即可

https://docs.go-cqhttp.org/guide/quick_start.html

我的config.yml已放在go-cqhttp文件夹中,可进行参考。

PS linux环境下踩坑记录

这里可能会存在一个情况,在配置好config.yml运行脚本之后

若配置文件没有写密码,会提示你进行扫码,扫码需要保持设备之间是局域网环境,我实操linux系统无法解决这个问题

美图云修 美图云修

商业级AI影像处理工具

美图云修 50 查看详情 美图云修

后面解决的方法是:将Windows中生成的device.json文件复制到linux对应的位置,即可解决问题。

2. 安装nonebot2环境

先放官网地址

https://v2.nonebot.dev/docs/start/installation

安装nonebot2

pip install nb-cli
   

3. 运行bot.py

配置qqaibot/config.json

  1. openai-key可以在openai获取
  2. app_id和app_secret可以在free-api
  3. gaode_key可以在高德获取
{   "openai_key": "sk-xxxxxxxxxxxxxxxx",   "app_id": "xxxxxxxxxxxxxxxxx",   "app_secret": "xxxxxxxxxxx",   "gaode_key": "xxxxxxxxxxxxxxxxx"}
       

到这里在运行go-cqhttp的前提下,你已经可以执行

qqaibot/bot.py

完成机器人的运行

4. 如何补充自己的模块

可以参考我的写法,在下面路径新建文件夹

qqaibot/src/plugins/

每一个文件夹都是一个模块,然后完成自己的模块编写即可。

举例chatgpt DEMO 如下:

chatbot.py

import configimport openaifrom nonebot import on_commandfrom nonebot.adapters.onebot.v11 import MessageEvent, MessageSegmentfrom nonebot.rule import to_mefrom revChatGPT.Official import Chatbot# 只有艾特机器人才会触发rule = to_me()

key, _, _, _ = config.getToken()

chat = on_command("chatgpt", aliases={                  "对话", "聊天", "chat"}, priority=99, rule=rule)@chat.handle()async def gpt3chat(event: MessageEvent):

    # 获取用户发送的消息
    msg = str(event.get_message()).strip()    if len(msg.split(" ")) == 1:        await chat.send(MessageSegment.text("请输入对话提示(或检查格式)"))        await chat.send(MessageSegment.text("格式:聊天 你吃饭了吗?"))    if len(msg.split(" ")) > 1:        await chat.send(MessageSegment.text("收到,本bot正在组织语言..."))
        flag = msg.split(" ")[0]
        prompt = msg.split(" ", 1)[1]        if flag == "对话" or flag == "gpt" or flag == "聊天" or flag == "chat":            try:
                res = await getres(prompt)            except:                await chat.send(MessageSegment.text("请求超时,可能是网络问题"))                await chat.finish(MessageSegment.text("请重试"))            await chat.finish(MessageSegment.text(res))async def getres(prompt):

    openai.api_key = key

    chatbot = Chatbot(api_key=key)
    response = chatbot.ask(prompt)

    res = response["choices"][0]["text"]    return res.strip()
   

以上就是玩转多功能QQ机器人【含ChatGPT实现】的详细内容,更多请关注其它相关文章!


# 解决问题  # 美食文化门户网站推广  # 酒店seo常规方法  # 半岛网络营销推广公司  # 阜康百度seo  # 陈若楠seo  # 商业营销推广方案模板  # 网站建设百度推广  # 微信营销推广反思  # seo中随机调用的标签  # 大连旅游营销推广招聘  # 官网  # 开源  # 命令行  # linux  # 中文网  # 玩转  # 离线  # 自己的  # 美图  # 多功能  # fig  # 网络问题  # chatgpt  # ai  # qq  # windows  # git 


相关栏目: 【 行业资讯67740 】 【 技术百科0 】 【 网络运营39195


相关推荐: 市盈率ttm写的亏损是什么意思  单身交友必备软件  2025年国外最佳语音聊天软件排行榜  三星 nfc什么功能是什么意思  npm如何声明命令  如何查看电脑的固态硬盘  typescript需要学多久  如何选购ssd固态硬盘  如何用固态硬盘做缓存  壁挂炉power常亮是什么意思  vue组件typescript怎么用  m*en repository的作用是什么  怎么看手机是不是双模5g手机  怎么关360壁纸广告  微波炉power中文是什么意思  春运哪天抢票最好  春运抢票如何快速抢到票  如何查看网站域名解析  燃气热水器上的power是什么意思  如何以管理员身份打开命令提示符  苹果的type-c接口是什么  苹果16哪些型号好用  苹果16哪些功能好用  linux如何查看命令的参数  如何在固态硬盘上安装win7系统  如何开发typescript  光刻机的分类及其优缺点  如何安装固态硬盘win10  折叠屏手机为什么没火  估值水平比较中市盈率E是什么意思  折叠屏手机信号哪个最强  征信不好如何短期恢复  老电脑如何装固态硬盘  华为5g手机怎么选择  闪光灯power闪烁是什么意思  如何用命令查看数据库日志文件  域名解析后为什么要进行域名备案  j*a数组怎么比较abc  统计学中power值是什么意思  win7怎么关闭360壁纸屏保  datediff函数怎么用视频  阿里云手机云盘怎么用_阿里云盘苹果手机怎么用教程  对象数组怎么用j*a  typescript全局配置放哪里  双十一哪一天买比较便宜?  4800日元等于多少人民币  什么是unix时间戳  苹果16有哪些可以设置  tft单片机怎么写彩屏  5g手机4g卡怎么没有网络 

搜索