Skip to main content

Plugin for the Suggar chat framework compatible with Nonebot2.

Project description

nonebot

Nonebot Plugin Suggarchat

Plugin for the Suggar chat framework compatible with Nonebot2.

Visual Studio Code Python PyPi

描述

适用于Nonebot2Onebot V11 适配器的LLM聊天插件

温馨提示

本插件全局性较高!可能会与其他插件冲突,请谨慎使用!

如果你想主要做聊天类型的Bot,请忽略。

在Suggar机器人实现中,暂时没有发现有冲突,如果有,请提交至Issues。

本插件更面向于有Nonebot2基础或插件开发者以及有LLM API开发/使用经验的用户!

不推荐直接调用resources.py的方法,而是通过插件API进行调用。


传入LLM的信息格式如下,请自行在提示词内做好处理,便于LLM理解(这里我提供了use_base_prompt选项,如果启用了可以忽略,这个选项将自动在你的prompt前插入内容,对消息段作出解释):

不会写就来QQ群问群主吧(

点击查看详细格式 可解析的消息段:文字,at,合并转发

at+文字:

你好世界@Somebody

合并转发(暂不支持解析嵌套的合并转发消息):

\(合并转发
[YYYY-MM-DD hh:mm:ss PM/AM][昵称(QQ号)]说:<内容>
[[YYYY-MM-DD hh:mm:ss PM/AM][昵称(QQ号)]说:<内容>]
)\
......以此类推

私聊普通消息:

[YYYY-MM-DD weekday hh:mm:ss AM/PM]用户昵称(QQ号):<内容>

私聊引用消息:

私聊普通消息格式+ (((引用的消息))):其他消息段解析后内容

私聊合并转发消息:

私聊普通消息格式+合并转发消息格式

聊群普通消息:

[管理员/群主/自己/群员][YYYY-MM-DD weekday hh:mm:ss AM/PM][昵称(QQ号)]说:<内容>

聊群引用消息:

聊群普通消息格式+ (((引用的消息))):其他消息段解析后内容

聊群合并转发消息:

聊群普通消息格式+合并转发消息格式

戳一戳消息:

\(戳一戳消息\) 昵称(QQ:qq号) 戳了戳你

对于源码

警告!本插件源码可能含有以下内容

点我开始赤史

《三角形具有稳定性》

if:
    if:
        if:
            if:
            else:
        else:
    else:
else:

《无意义分支》

if a:do()
else:pass

《如判断》 其实是懒得改陈年史山缩进,但为了不必要的麻烦,就这样了(

if True:
    todo()
#或者说
while True:
    todo()
    break

特性(不是bug那个)

  • OpenAI API 支持
  • QQ群组聊天支持
  • QQ私聊支持
  • 群组AT触发
  • API 开放
  • 戳一戳消息触发支持
  • (未来将会支持)多模型切换选择
  • (未来将会支持)黑名单/白名单
  • 不同群内自定义聊天开关
  • 不同聊群可设置的自定义补充Prompt
  • 向超控(特定聊群)推送插件的错误日志
  • 自定义Bot消息被撤回时缓解尴尬的推送
  • 合并转发/引用消息解析支持(只会解析纯文本/at消息段,如果您不理解这是什么意思,你可以理解为丢给LLM的信息只有"@a 你好"这样的格式)

安装方式

  1. 通过pip安装

    • 确保已安装Python(版本>=3.9)。 打开命令行工具,执行以下命令来安装插件:
      pip install nonebot-plugin-suggarchat
      
  2. 通过PDM安装

    pdm add nonebot-plugin-suggarchat
    

以上方法需要在你的pyproject.toml中的plugins列表添加如下内容:

plugins=["nonebot_plugin_suggarchat"]
#添加"nonebot_plugin_suggarchat"
  1. 通过nb-cli安装
    nb plugin install nonebot-plugin-suggarchat
    

配置文件

  • 配置文件路径:通常位于项目的运行目录的config目录下,文件名为config.json

配置项说明

点此展开
配置项 类型 默认值 解释
memory_length_limit int 50 单会话允许存储的最大消息数(如果您不知道这是什么意思,请不要修改
enable bool false 是否启用聊天机器人(即该插件)
poke_reply bool true 是否启用戳一戳回复功能
private_train dict { "role": "system", "content": "<请修改这里的内容>" } 私聊的系统提示词
group_train dict { "role": "system", "content": "<请修改这里的内容>" } 群聊训的系统提示词
enable_group_chat bool true 是否启用群聊功能
enable_private_chat bool true 是否启用私聊功能
allow_custom_prompt bool true 是否允许自定义提示
allow_send_to_admin bool true 是否允许向管理员发送消息
admin_group int 0 管理员群组的ID
admins list[int] [] 管理员用户的列表
open_ai_base_url string "" OpenAI协议 API URL
open_ai_api_key string "" OpenAI协议 API 密钥
say_after_self_msg_be_deleted bool true 自己的消息被删除后是否回复
group_added_msg string "你好,我是Suggar,欢迎使用Suggar的AI聊天机器人,你可以向我提问任何问题,我会尽力回答你的问题,如果你需要帮助,你可以向我发送“帮助”" 加入群组时发送的欢迎消息
send_msg_after_be_invited bool true 被邀请进群后是否发送消息
after_deleted_say_what list[str] [ "Suggar说错什么话了吗~下次我会注意的呢~", "抱歉啦,不小心说错啦~", ... ] 消息被删除后随机回复的内容
use_base_prompt bool true 是否使用基本提示词(即让LLM理解消息段解析)

讨论

QQ 交流群: 链接

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_suggarchat-0.1.4.2.1.tar.gz (33.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nonebot_plugin_suggarchat-0.1.4.2.1-py3-none-any.whl (33.1 kB view details)

Uploaded Python 3

File details

Details for the file nonebot_plugin_suggarchat-0.1.4.2.1.tar.gz.

File metadata

File hashes

Hashes for nonebot_plugin_suggarchat-0.1.4.2.1.tar.gz
Algorithm Hash digest
SHA256 51d70867c5c69484141ffc501b93b4cb58eee7a8c154f726e85d3bff8caf92c0
MD5 ec61129f1e55a56be88576f1350abd44
BLAKE2b-256 246bcfedce187cfd400558d528e6a65db5a330e57d007bf91a4e5a31702cb058

See more details on using hashes here.

File details

Details for the file nonebot_plugin_suggarchat-0.1.4.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_suggarchat-0.1.4.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 254e71eed4cba91d4a183f7eba1246ca951bd796af5e4a56ecabc280a0a9d48f
MD5 8b7054dad946f910c861fdfdc7ada992
BLAKE2b-256 d85c4a5b95f5a1038ec56cf73c4e4911b1b4a69e72b6989f10306b34353ec52d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page