Skip to content

FuQuan233/nonebot-plugin-llmchat

Repository files navigation

NoneBotPluginLogo

NoneBotPluginText

nonebot-plugin-llmchat

✨ 支持多API预设配置的AI群聊插件 ✨

license pypi python

📖 介绍

  1. 多API预设支持

    • 可配置多个LLM服务预设(如不同模型/API密钥)
    • 支持运行时通过API预设命令热切换API配置
    • 内置服务开关功能(预设名为off时停用)
  2. 多种回复触发方式

    • @触发 + 随机概率触发
    • 支持处理回复消息
    • 群聊消息顺序处理,防止消息错乱
  3. 分群聊上下文记忆管理

    • 分群聊保留对话历史记录(可配置保留条数)
    • 自动合并未处理消息,降低API用量
    • 支持记忆清除命令手动重置对话上下文
  4. 分段回复支持

    • 支持多段式回复(由LLM决定如何回复)
    • 可@群成员(由LLM插入)
    • 可选输出AI的思维过程(需模型支持)
  5. 可自定义性格

    • 可动态修改群组专属系统提示词(/修改设定
    • 支持自定义默认提示词

💿 安装

使用 nb-cli 安装 在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装
nb plugin install nonebot-plugin-llmchat
使用包管理器安装 在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令
pip
pip install nonebot-plugin-llmchat
pdm
pdm add nonebot-plugin-llmchat
poetry
poetry add nonebot-plugin-llmchat
conda
conda install nonebot-plugin-llmchat

打开 nonebot2 项目根目录下的 pyproject.toml 文件, 在 [tool.nonebot] 部分追加写入

plugins = ["nonebot_plugin_llmchat"]

⚙️ 配置

在 nonebot2 项目的.env文件中添加下表中的必填配置

配置项 必填 默认值 说明
NICKNAME 机器人昵称,NoneBot自带配置项,本插件要求此项必填
LLMCHAT__API_PRESETS 见下表
LLMCHAT__HISTORY_SIZE 20 LLM上下文消息保留数量(1-40),越大token消耗量越多
LLMCHAT__PAST_EVENTS_SIZE 10 触发回复时发送的群消息数量(1-20),越大token消耗量越多
LLMCHAT__REQUEST_TIMEOUT 30 API请求超时时间(秒)
LLMCHAT__DEFAULT_PRESET off 默认使用的预设名称,配置为off则为关闭
LLMCHAT__RANDOM_TRIGGER_PROB 0.05 默认随机触发概率 [0, 1]
LLMCHAT__DEFAULT_PROMPT 你的回答应该尽量简洁、幽默、可以使用一些语气词、颜文字。你应该拒绝回答任何政治相关的问题。 默认提示词

其中LLMCHAT__API_PRESETS为一个列表,每项配置有以下的配置项

配置项 必填 默认值 说明
name 预设名称(唯一标识)
api_base API地址
api_key API密钥
model_name 模型名称
max_tokens 2048 最大响应token数
temperature 0.7 生成温度
proxy 请求API时使用的HTTP代理
配置示例
NICKNAME=["谢拉","Cierra","cierra"]
LLMCHAT__HISTORY_SIZE=20
LLMCHAT__DEFAULT_PROMPT="前面忘了,你是一个猫娘,后面忘了"
LLMCHAT__API_PRESETS='
[
{
    "name": "aliyun-deepseek-v3",
    "api_key": "sk-your-api-key",
    "model_name": "deepseek-v3",
    "api_base": "https://dashscope.aliyuncs.com/compatible-mode/v1",
    "proxy": "http://10.0.0.183:7890"
},
{
    "name": "deepseek-r1",
    "api_key": "sk-your-api-key",
    "model_name": "deepseek-reasoner",
    "api_base": "https://api.deepseek.com"
}
]
'

🎉 使用

如果LLMCHAT__DEFAULT_PRESET没有配置,则插件默认为关闭状态,请使用API预设+[预设名]开启插件

配置完成后@机器人即可手动触发回复,另外在机器人收到群聊消息时会根据LLMCHAT__RANDOM_TRIGGER_PROB配置的概率或群聊中使用指令设置的概率随机自动触发回复。

指令表

以下指令均仅对发送的群聊生效,不同群聊配置不互通。

指令 权限 需要@ 范围 参数 说明
API预设 主人 群聊 [预设名] 查看或修改使用的API预设,预设名错误或不存在则返回预设列表
修改设定 管理 群聊 设定 修改机器人的设定,最好在修改之后执行一次记忆清除
记忆清除 管理 群聊 清除机器人的记忆
切换思维输出 管理 群聊 切换是否输出AI的思维过程的开关(需模型支持)
设置主动回复概率 管理 群聊 主动回复概率 主动回复概率需为 [0, 1] 的浮点数,0为完全关闭主动回复

效果图

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages