分享一个自己写的QQ机器人后端,支持AI聊天、绘画、语音,还有发送涩图和翻唱

## 整合包及教程可能已过时,可以前往项目仓库
https://github.com/syuchua/QFurina

查看最新版本,还有文档站查看部署方法: 

https://qfurina.yuchu.me

顺便,求个star~

今天来分享一个我自己写的芙宁娜QQ机器人后端,拥有的能力包括但不限于AI聊天、绘画、发送涩图、AI语音、翻唱歌曲等,还兼具上下文功能,支持自定义system_prompt,适配http和反向ws连接。先来一波展示:

食用方法

  • 直接对话即可
    • 发送发一张来一张+关键词即可自定义发送涩图,比方说发一张卡芙卡

    不放完整图片了,防止被夹(话说被举报是这个原因吗)

    ![(upload://6bA4B06G8ztgKR0tIT2vu2XBAxG.png)
    • 发送来份涩图来份色图再来一张 即可发送随机涩图
      ![(upload://yPtpx4Ku8AkAIdD1jpmLBsOEjDN.png)
    • 发送画一张生成一张 即可发送AI绘画(如果config.json里有GPT有关的配置,则关键词会调用dalle进行绘画,除dalle外,还支持白嫖bing的AI绘画,需提前将cookie的值填入cookies.json中,只有一个账号的cookie就按字典格式填一个,多个的话可以放进列表里)
    • 发送语音说,``语音回复 +要用语音说的话让机器人发送语音,或者再提示词里提示机器人通过把#voice`标签放在回复的开头,实现更生动地语音回复。
    • 发送点歌+歌曲名进行点歌,支持模糊匹配。
    • R-18?
      该接口的涩图数量足有十几万,其中r18占27.8%,建议公共场合尽量设置为0,2的话,还是不要太相信自己的运气了(问就是惨痛的教训)

命令功能

机器人支持以下命令:

  • /help:显示帮助信息。
  • /reset:重置当前会话。
  • /character:输出config.json中的character值,也即当前的人设。
  • /history: 输出之前的条消息记录,默认十条,也可以接空格+数字指定。
  • /clear:清除消息记录,默认十条,可接空格+数字指定。
  • /music_list: 获取歌曲列表
  • /r18 [0, 1, 2]切换涩图接口r18模式,0为关闭,1为开启,2随机
  • /model [new_model]切换模型,新模型需先在model.json中配置好

语音功能需要本地搭建gpt-sovits,可以参考视频https://b23.tv/9dOdMo6

这里放上本地搭建语音整合包
GPT-SoVITS-Inference

部署

接下来是机器人项目的部署,对接QQ使用的是支持onebot协议的llonebot,所以其他类似项目如LagrangeNapCat也是可以的,这里仅演示llonebot的配置,默认使用反向ws连接

包含NTQQ,llonebot插件,MongoDB安装包和项目源码的整合包下载整合包并解压

先双击install_windows.exe安装NTQQ,然后把llonebot.zip复制到NTQQ的插件目录下解压,重启QQ即可在设置里看到有关配置,然后就是填写反向ws监听地址

ws://127.0.0.1:8011/ws

然后是双击MongoDB的安装文件,没什么好讲的,安装完成后进入bin目录,打开cmd,输入

 mongod --dbpath D:\MongoDB\data --logpath D:\MongoDB\log\mongodb.log --logappend   #替换成你自己的对应目录

关闭终端,填写机器人项目的config,config.json里是基础配置

  • openai_api_key: 你的openai_api_key
  • model: 使用的模型,默认为gpt-3.5-turbo
  • self_id:机器人的QQ号。
  • admin_id:管理员的QQ号。
  • block_id: 要屏蔽的QQ号。
  • nicknames:机器人的昵称列表。
  • system_message:系统消息配置,最重要的是character,相当于机器人的人格。
  • connection_type: 连接类型,可选http或ws_reverse
  • report_secret: http事件上传密钥。仅使用http连接时需要填写,默认的123456也可以不管
  • enable_time: 设置定时开启时间
  • disable_time: 设置定时关闭时间
  • proxy_api_base: openai_api_key请求地址,默认为https://api.openai.com/v1
  • system_messagecharacter里填写人设
  • reply_probability: 当收到的消息中没有nickname时的回复频率,1为每一条都回复,0为仅回复带有nickname的消息,默认0.5
  • r18: 0为关闭r18,1开启r18,2为随机发送(慎选)
  • audio_save_path: 语音文件保存位置
  • voice_service_url: 语音接口地址
  • cha_name:语音接口指定角色
    dialogues.json里主要是配置一些固定回答,一般没什么用,除非有什么恶趣味
    model.json里主要是非gpt的其他模型的配置,如果填了,会覆盖config.json里GPT的配置需要为OneAPI格式,model里填写的模型名需要现在aviliable_models里填上。vision代表是否支持识图,如果你的模型可以识图就填true(如果使用gpt系列模型,gpt4系列默认允许识图)

视频教程

【芙宁娜QQ机器人搭建教程】 芙宁娜QQ机器人搭建教程_哔哩哔哩_bilibili

获取bing的cookie用于非gpt系列的AI绘图

如果视频无法渲染可以点击链接下载

项目开源仓库

syuchua/MY_QBOT: 一个简单的QQ机器人后端框架 (github.com)

一些跟芙芙聊天的日常

【谁家傻芙芙连9.8和9.11哪个大都分不清】 谁家傻芙芙连9.8和9.11哪个大都分不清_原神

288 个赞

有没有微信的。

3 个赞

这个不会被腾讯封号吗

2 个赞

感谢分享

2 个赞

微信比较容易封,而且也没有onebot这种好的协议,最多只能聊天,发不了图

3 个赞

一般不跳脸,或者只是发这种整合包一类的就没事,毕竟播放量也高不到哪里去

2 个赞

感谢分享

4 个赞

大佬,是不是这个也能部署到linux服务器上

对的,不过我这里只分享了Windows端的教程

1 个赞

好的大佬,正好我服务器上安装有ncqq :grinning:

1 个赞

哪有涩图?差评啦!

1 个赞

涩图好像被举报了一次,就换成链接了

1 个赞

感谢分享

1 个赞

感谢

3 个赞

gxfx

3 个赞

这个可以,看样子,我的能在扣扣复活了

1 个赞

感谢,虽然我已经在用别的方式了 :joy:

1 个赞

感谢新框架,周末学起来~~

1 个赞

是怎么避开被封号这个问题的呢

2 个赞

啪的一下就点进来了,很快呀 :tieba_024:

2 个赞