MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    基于GPT3.5的猫娘插件(可以指定群友变猫娘!)03/22更新

    插件发布
    java plugin python gpt3.5 openai
    8
    26
    6073
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • stay_miku
      stay_miku 最后由 stay_miku 编辑

      03/22更新:(仅需更新服务端)

      • 服务端增加了代理的配置(在config.py中配置,默认为不启用),方便不开tun模式使用(我好像没测试过它能不能成功使用系统代理来着,算了开摆),需要注意urllib3的版本需要为1.25.11或以下,高版本会报错,用以下命令改版本:
      pip install urllib3==1.25.11
      

      03/20更新:(插件和服务端都需要更新)

      • 完善了提示词(提示词内添加了限制回复长度,尽可能的避免过快的token消耗,并完善了相关设定)
      • 可配置请求api超时的时间了(因为最近请求api的时候总是timeout,官方默认timeout需要等10分钟,所以加了这个功能)
      • 可以配置自动同意加好友请求的黑白名单了(之前会自动同意所有加好友请求,现在可以在config里面配置是否同意加好友)
      • 最近的api怎么总是timeout啊!!!

      03/19更新:(插件与服务端都需要更新)

      • 新功能!可以指定一个群员变猫娘(伪造转发消息),整蛊专用!使用方法为 @一名群员 后接上 变猫娘 即可,效果图:
        313028.png
        屏幕截图 2023-03-19 004156.png
        (当前局限性:只能让一个群里的一个群员变猫娘,换群就算同一个人都不行)
      • 现在将会自动创建猫娘了(免得新用户想和猫娘对话的时候来一句还没创建哦~)默认猫娘名字可以在config.py中修改(默认为猫娘)

      03/16更新: 只需更新mirai插件即可

      • 新增了私聊功能!(在群里放不开手脚就可以私聊涩涩了)银杏化
      • 可以@机器人来执行命令了(针对一些人的使用习惯做的兼容)
      • 可以清空主人名字了(不用再想主人该叫啥了)
      • 优化了部分文本

      一些功能展示:
      3e950cc012a3631c.png
      主要功能:

      • 对话
      • 预设对话
      • 撤销上一个对话(不论是用户发的还是bot发的)
      • 重新生成对话
      • 修改设定
      • 清空历史对话(不会清除设定)
      • 更多功能可使用命令 #ai帮助 #不常用命令帮助 来查看

      插件地址
      服务端地址

      主要特色可自定义项可太多了,哼哼:

      • 可以自定义设定(使用默认设定是可以轻松修改猫娘设定的名字和主人名字,默认设定可以在配置文件中自行修改),该设定不会因为清除历史消息而改变(方便重开)
      • 可以预设一段对话(或单独预设一段ai的回复),ai会将预设的回复认为是自己以前说过的话对于不听话的猫娘可以用这个功能
      • 每个人的猫娘都是单独的(尝试多人对话的时候ai会精分,效果很差)
      • 可以撤销对话中的上一句话,或者让猫娘重新回答
      • 可以说一段话但让猫娘不立刻回答,或者让猫娘立刻回答不论用户是否说话
      • 可以设置temperature,按官方的解释大概就是一个0到2的数值,越高ai的回复会越偏离用户的提问(默认为1.0)

      使用方法:

      • 前往插件地址下载插件放入mirai的plugins文件夹内
      • 手动在mirai根目录下创建一个名为openaiHost的文件,文件内以ip:端口格式填写服务端的ip地址和端口(如 127.0.0.1:23458)
      • 使用以下命令来克隆项目(没git的话可以前往服务端地址手动将所有.py文件都下载到一个文件夹里)
      git clone https://github.com/stay-miku/OpenAI_Chat3.5-python-server.git
      
      • 手动修改config.py中的配置,注意必须修改api_key配置项(可以去这里获取apikey)其他配置按需修改(有中文注释提示了每个配置项的功能,应该都会改吧)
      • 运行main.py即可启动服务端(注意之前填写的地址要与该服务端地址相同,端口也需和配置文件内的相同,如果服务端与插件在同一台机器上运行ip地址可填写127.0.0.1),注意服务端需可以访问外网(放到国外vps上运行或者科学上网)单独服务端就是为了可以把这部分放到其他服务器上,才不是我菜写不来Java的api访问用不来miraihttp

      服务端的命令:

      • stop :关闭服务端
      • list :当前ai列表
      • get ai列表显示的名字 选项 :获取对应ai的当前配置,选项有:prompt messages name owner_name
        used_tokens temperature(每个选项代表是么自己探索吧~)

      注意事项:

      • 每个人使用猫娘功能前需使用命令 #创建 猫娘名字(必填) 主人名字(选填) 来创建,不然什么功能都用不了_(:з」∠)_
      • 一定一定要记得改config.py内的api_key哦!

      最后:

      • 默认的设定已经把猫娘调教好了(可恶,为什么不反抗,截演示图片的时候还想展示下预设对话的强大之处的说)
      • 有啥问题可以尽管问
      • 第一次发布插件,也是个github新手,代码也很差,要是做错了什么不要打我(哭~)
      1 条回复 最后回复 回复 引用 1
      • cwyu
        cwyu 最后由 编辑

        调教得好强🤩,我能借鉴一下你的预设那一段吗?可以注明是抄了你的。我在bilibili上抄的预设没有你的强

        stay_miku 2 条回复 最后回复 回复 引用 0
        • stay_miku
          stay_miku @cwyu 最后由 编辑

          @cwyu 这段调教设定可能只对GPT3.5的api有效,因为看官方文档的时候提及了chatGPT会自带一个设定提示(就是为啥chatGPT总会说自己是一个人工智能助手,因为在对话开始前系统会先一步告诉ai它是个人工智能助手,这样调教咒语效果会变差)

          1 条回复 最后回复 回复 引用 0
          • stay_miku
            stay_miku @cwyu 最后由 编辑

            @cwyu 而且截图是配合了预设对话的(这玩意洗脑能力很强,可以决定后来的对话走向),单独使用还是偶尔会不听话。你要是想试试的话在服务端的配置里可以找到提示词,把名字和主人名选项替换掉就行了

            cwyu 1 条回复 最后回复 回复 引用 0
            • cwyu
              cwyu @stay_miku 最后由 编辑

              @stay_miku 好的,明白了。

              1 条回复 最后回复 回复 引用 0
              • G
                greatwo2 最后由 编辑

                有时会出现 api达到限制,请稍后再使用 的提示是什么意思

                stay_miku 2 条回复 最后回复 回复 引用 0
                • stay_miku
                  stay_miku @greatwo2 最后由 编辑

                  @greatwo2 这个错误是因为OpenAI官方对api的使用速度做了限制,不允许每分钟的请求数量以及请求的总token数量超过某一限制(不同的模型有不同的限制,账号充没充钱也不一样),用的时候不要让ai回复太快就没啥问题,出现这个错误只要等一分钟就行。(不过我在用的时候有时候明明没用过也会api速度限制,但是这个错误我是直接except官方库抛出的错误,所以只能认为是OpenAI自己的锅了)

                  1 条回复 最后回复 回复 引用 0
                  • stay_miku
                    stay_miku @greatwo2 最后由 编辑

                    @greatwo2 找出问题了,官方的api因为太多人用过载了所以会报这个错误,这种情况只能让ai重新回答或者等用的人少的时候才行了(这几天官方api的速度越来越慢了,前几天还只要几秒就能响应一句话,现在都要十几秒了)

                    1 条回复 最后回复 回复 引用 0
                    • S
                      scott90578 最后由 scott90578 编辑

                      此回复已被删除!
                      cwyu 1 条回复 最后回复 回复 引用 0
                      • cwyu
                        cwyu @scott90578 最后由 编辑

                        此回复已被删除!
                        stay_miku 1 条回复 最后回复 回复 引用 0
                        • stay_miku
                          stay_miku @cwyu 最后由 编辑

                          此回复已被删除!
                          cwyu 1 条回复 最后回复 回复 引用 0
                          • cwyu
                            cwyu @stay_miku 最后由 编辑

                            @stay_miku 是后端问题,没返回数据,没解析到,所以gson报错了。今天上午有人就告诉我有这种情况,我重启了一下好了。可能是python写接口还是太不稳定了(之前那个回复我删了,因为上面那个朋友好像问错帖子了哈哈,然后他删了我也删了)

                            stay_miku 1 条回复 最后回复 回复 引用 0
                            • stay_miku
                              stay_miku @cwyu 最后由 编辑

                              @cwyu emmm,顺带问一下mirai项目该怎么导入第三方库(Java属于初学者,这些东西弄不来_(:з」∠)_)

                              cwyu 1 条回复 最后回复 回复 引用 0
                              • cwyu
                                cwyu @stay_miku 最后由 编辑

                                @stay_miku 项目下有个build.gradle.kts文件,文件下面加个dependencies {
                                implementation("com.squareup.okhttp3:okhttp:4.7.2")
                                implementation ("com.google.code.gson:gson:2.8.6")
                                }。格式就是我上面打的。这样写

                                stay_miku 1 条回复 最后回复 回复 引用 0
                                • stay_miku
                                  stay_miku @cwyu 最后由 编辑

                                  @cwyu okk,一直想用json处理数据无奈json库不知道怎么导入,就直接用socket不要http了(我的插件前后端就靠着socket活了╮( •́ω•̀ )╭)

                                  1 条回复 最后回复 回复 引用 0
                                  • cwyu
                                    cwyu 最后由 编辑

                                    嗯。gson还是很好用的。比那个应该是kotlin自带的那个kotlinx.serialization.json.Json方便很多

                                    1 条回复 最后回复 回复 引用 0
                                    • lixnif
                                      lixnif 最后由 编辑

                                      请问一下,监听端口我需要修改吗? 目前是远程主机 装了 mirai本体以及python的服务端,顺便开了梯子。使用Edge浏览器是可以正常访问chat.openai.com

                                      监听IP已经改成127.0.0.1了,在群里@机器人 对话后,提示 > "连接服务器错误,请稍后再试", 有可能是监听端口的问题吗?

                                      lixnif stay_miku 2 条回复 最后回复 回复 引用 0
                                      • lixnif
                                        lixnif @lixnif 最后由 编辑

                                        @lixnif 我仔细思考了一下我学的C语言的网络编程知识,然后我就在想插件端是怎么读取到服务端的ip和端口的,然后我回去翻了翻介绍,才意识到要自己创建一个文件夹哈哈....

                                        1 条回复 最后回复 回复 引用 0
                                        • stay_miku
                                          stay_miku @lixnif 最后由 编辑

                                          @lixnif 连接服务器错误是插件连接python服务端出错了,如果提示的报错有api字样,就是python服务端请求openai的api出错了(另外openai的库可以设置前置代理的,只是我一直没把这个功能加进去(:3_ヽ)_(我一直没用上这个功能),使用socks代理流量的话需要配置前置代理)。
                                          配置文件需要手动添加算是比较麻烦的一个点(但是自动添加之后一般还是要改的嘛不是我懒!)

                                          1 条回复 最后回复 回复 引用 1
                                          • lixnif
                                            lixnif 最后由 编辑

                                            感谢,实际上是我忘了在插件端创建文件了

                                            stay_miku 1 条回复 最后回复 回复 引用 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post
                                            Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact