Giter Site home page Giter Site logo

well2333 / nonebot_plugin_nai3_bot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alpaca4610/nonebot_plugin_nai3_bot

0.0 0.0 0.0 1.69 MB

基于GPT4+NovelAI V3,使用自然语言让NAI3出图的同时以自定义人格与用户聊天。

Python 100.00%

nonebot_plugin_nai3_bot's Introduction

NoneBotPluginLogo

NoneBotPluginText

nonebot-plugin-nai3-bot

介绍

  • 本插件基于GPT4+NovelAI V3/Stable Diffusion API,Bot在将自然语言转换为NAI3提示词并绘图发送的同时以自定义人格与用户聊天。
  • 用户可以正常与指定人格(需要调教prompt,目前插件内置的人格为群友指定的BA角色天童爱丽丝)聊天。在聊天过程中可以使用自然语言描述AI绘图的需求,Bot会根据用户的聊天内容修改AI绘图所用的提示词(见效果图),并且判断是否需要调用Novel V3模型/Stable Diffusion进行绘画。如果为正常聊天则不会触发绘画功能,如果Bot判断用户有AI绘画的需求,则会调用NAI3绘图,并将图片和提示词发送到群内。
  • 每个用户和Bot有独立的聊天记录。
  • 随机生成画师风格串绘图和随机同人图生成

效果

Alt Alt Alt

安装

  • 手动安装

    git clone https://github.com/Alpaca4610/nonebot_plugin_nai3_bot.git
    

    下载完成后在bot项目的pyproject.toml文件手动添加插件:

    plugin_dirs = ["xxxxxx","xxxxxx",......,"下载完成的插件路径/nonebot-plugin-nai3-bot"]
    
  • 使用 pip

    pip install nonebot-plugin-nai3-bot
    

配置文件

在Bot根目录下的.env文件中追加如下内容:

必填内容:

nai3_token = "xxxx"  # NovelAI的token,与sd_api二选一
sd_api = "xxxxxx"    # stable diffusion的API地址,与nai3_token二选一。示例 http://{ip}:{port}/sdapi/v1/txt2img
oneapi_key = "sk-xxxxxxxxxx"  # (必填)OpenAI官方或者是支持OneAPI的大模型中转服务商提供的KEY

可选内容:

oneapi_url = "https://xxxxxxxxx"  # (可选)大模型中转服务商提供的中转地址,使用OpenAI官方服务不需要填写
oneapi_model = "gpt-4" # (可选)使用的语言大模型,建议使用gpt4或gpt4o模型以达到更好的体验效果此项,默认使用gpt-4模型

NAI3的token获取地址方法: Alt

使用方法

  • ** 聊天内容/绘图需求 (**是触发与Bot对话的关键字)
  • 记忆清除 : 清除当前用户的聊天记录
  • 切换人格 : 切换机器人聊天的人格
  • 随机画风 需要在画师串后面补充的正面提示词 : 随机生成NAI3的画师风格串进行绘图
  • 随机同人 角色名称( 格式参考:magallan(arknights) ) : 随机生成指定角色的同人图,若不指定,则随机从预设角色列表中选择

可能存在的问题

  • 由于调教prompt的原因,机器人可能会偶尔出错,此时继续和TA对话或者是使用记忆清除命令重新开始对话即可。
  • 注意语言大模型的token消耗量
  • 插件目前没有实现绘图排队提醒,多用户同时绘图NAI3可能会返回错误。

添加人格

  1. 在机器人运行目录的data文件夹下创建文件nai3_character.json
  2. 参考人格调教模版,将模版中的第1部分修改成你的新人格和更改剩下部分的人格名称。
  3. 参考人格列表模版,修改nai3_character.json文件。json文件的格式如下:
    {
         "name": "人格名称(用于切换人格时区分)",
         "nickname": "人格昵称",
         "prompt": "调教prompt的base64编码格式,请参照默认人格模版,将模版中的第1部分修改成你的新人格和更改剩下部分的人格名称即可,然后再将文字转换成base64编码填入此部分"
     }
    多人格切换请写成json列表的形式
  4. 发送切换人格,根据机器人的提示即可切换当前人格。若切换之前存在历史对话,清除聊天历史记录即可和新人格对话。

TODO

  • 添加用户自定义人格功能
  • 代理支持
  • 支持绘图排队信息提醒(NAI3只支持一次出一张图)

nonebot_plugin_nai3_bot's People

Contributors

alpaca4610 avatar well2333 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.