Nonebot2's plugin of ChatGPT
Project description
📖 介绍
自用的使用浏览器ChatGPT接入Nonebot2,兼容 onebot v11 与 qq 适配器
使用条件
需要纯净ip用来过cf,另外根据使用账号数量需要相应多的内存
💿 安装
使用 nb-cli 安装
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装nb plugin install nonebot-plugin-gpt
使用包管理器安装
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令pip
pip install nonebot-plugin-gpt
pdm
pdm add nonebot-plugin-gpt
poetry
poetry add nonebot-plugin-gpt
conda
conda install nonebot-plugin-gpt
打开 nonebot2 项目根目录下的 pyproject.toml
文件, 在 [tool.nonebot]
部分追加写入
plugins = ["nonebot_plugin_gpt"]
升级插件版本
pip install nonebot-plugin-gpt -U
⚙️ 配置
在 nonebot2 项目的.env
文件中添加下表中的必填配置
配置项 | 必填 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
gpt_session | 是 | 无 | List[Dict[str,str]] | openai账号密码 |
gpt_proxy | 否 | 无 | str | 使用的代理 |
arkose_status | 否 | false | bool | gpt是否开启了arkose验证 |
group_chat | 否 | true | bool | 群里开启多人识别 |
gpt_chat_start | 否 | [] | list | 聊天前缀,参考nb命令前缀 |
gpt_chat_start_in_msg | 否 | false | bool | 命令前缀是否包含在消息内 |
begin_sleep_time | 否 | false | bool | 关闭启动等待时间(建议账号数量大于5开启) |
gpt_chat_priority | 否 | 90 | int | gpt聊天响应优先级 |
gpt_command_priority | 否 | 19 | int | gpt命令响应优先级 |
gpt_white_list_mode | 否 | true | bool | 聊天白名单模式 |
gpt_replay_to_replay | 否 | false | bool | 是否响应"回复消息" |
gpt_ban_str | 否 | 无 | List[str] | 黑名单屏蔽词列表 |
gpt_manage_ids | 否 | 无 | List[str] | 超管群/频道id,通过日志等方式获得 |
gpt_lgr_markdown | 否 | false | bool | 以拉格兰md消息回复 |
gpt_httpx | 否 | false | bool | 使用httpx |
# gpt配置示例
# 当mode为空或者为openai时,建议提前手动登录一次获取session_token填入(成功使用后可删除session_token项),mode目前不支持苹果账号
gpt_session='[
{
"email": "xxxx@hotmail.com",
"password": "xxxx",
"session_token": "ey....",
},
{
"email": "aaaa@gmail.com",
"password": "xxxx",
"mode": "google",
},
{
"email": "bbb@sss.com",
"password": "xxxx",
"mode": "microsoft",
"help_email": "xxx@xx.com"
},
]'
gpt_proxy='http://127.0.0.1:8080'
arkose_status=false
group_chat=true
gpt_chat_start=[]
gpt_chat_start_in_msg=false
begin_sleep_time=true
gpt_chat_priority=90
gpt_command_priority=19
gpt_white_list_mode=true
gpt_replay_to_replay=false
gpt_ban_str='[
"我是猪",
"你是猪",
]'
# qq适配器使用的超管群id
gpt_manage_ids=['qq group id......']
# onebot适配器 拉格兰md消息兼容
gpt_lgr_markdown=false
# 使用httpx(暂不完善)
gpt_httpx=false
# 插件需要一些其他的Nonebot基础配置,请检查是否存在
# 机器人名
nickname=["bot name"]
# 超管QQ(onebot用)
SUPERUSERS=["qq num"]
🎉 使用
指令表
指令 | 适配器 | 权限 | 需要@ | 范围 | 说明 |
---|---|---|---|---|---|
@bot 聊天内容... | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | @或者叫名+内容 开始聊天,随所有者白名单模式设置改变 |
初始化 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 初始化<人设名> |
重置 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 回到初始化人设后的第二句话时 |
重置上一句 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 刷新上一句的回答 |
回到过去 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 回到过去 <对话序号/p_id/最后一次出现的关键词> ,回到括号内的对话时间点 |
人设列表 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 查看可用人设列表 |
查看人设 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 查看人设的具体内容 |
添加人设 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 添加人设 (人设名) |
历史聊天 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 查看当前人格历史聊天记录 |
md状态开启 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 用户自开启markdown输出内容 |
md状态关闭 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 用户自关闭markdown输出内容 |
删除人设 | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 删除人设 (人设名) |
黑名单列表 | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 查看黑名单列表 |
解黑 | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 解黑<账号> ,解除黑名单 |
白名单列表 | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 查看白名单列表 |
添加白名单 | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 添加白名单 <账号/群号> (个人/群) ,添加白名单,最后不写默认为群 |
删除白名单 | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 删除白名单 <账号/群号> (个人/群) ,删除白名单,最后不写默认为群 |
工作状态 | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 查看当前所有账号的工作状态 |
获取本地id | 无/白名单 | 是 | 群聊/频道 | 群聊内获取id | |
生成cdk | 超管群 | 是 | 群聊/频道 | 生成cdk <群号/其他信息>,以绑定信息方式生成白名单cdk | |
出现吧 | 无 | 是 | 群聊/频道 | 出现吧 <cdk>,以绑定id形式使用cdk加入白名单 | |
结束吧 | 白名单 | 是 | 群聊/频道 | 结束吧 ,用户自主解除白名单 |
<为必填内容>,(为选填内容)
常见问题
微软辅助邮箱验证
当触发验证后,会在启动目录生成带有启动账号名称的文件,键入收到的验证码并保存,即可自动验证。留意日志输出提示
更新日志
2024.05.07 0.0.23
- 修复webssocket url未更新
- 优化工作状态输出会话数遮蔽问题
- 修复空数据时未正确重试的问题
- 兼容pyd2
2024.05.06 0.0.20
- 优化登录和消息接收流程
- 优化初始化时多bot账号主体发送消息不对的问题
- 兼容新websocket接收方式(我以为都SSE了)
2024.05.04 0.0.18
- 跟进openai新搞得幺蛾子验证(加班太累了,更晚了)
- markdown被人作没了,唉(吐槽)
- 目前只简单实现了新验证,代码很乱,抽空应该会优化
2024.04.18 0.0.17
- 跟进新markdown发送方式
2024.04.17 0.0.15
- 尝试解决持久连接接收不到消息的问题
- 添加markdown消息用户自定义开关(QQ适配器md能力待支持)
- 优化markdown消息发送时,人设名未匹配消除的问题
2024.03.24 0.0.13
- 修复qq适配器的人设列表无法显示的问题
- 添加了会话超时时间,避免意外情况导致session阻塞
- 优化了工作状态显示,目前login为登录中,登陆后未工作则为ready
- 添加了全cookie保存,降低重新登录异常的风险
2024.03.22 0.0.12
- 临时修复了一些错误
- 优化多账户私聊混乱问题
2024.03.20
- 没有新功能增加,临时更新一下添加httpx关闭配置(现默认关闭),目前它还有些问题。新流程还没写完,等下次放假。
2024.03.17
- 优化了底层代码,减少错误,暂不支持gpt plus账号(待填坑)
- 支持拉格兰md发送
2024.03.13
- 兼容拉格兰合并转发,修复合并转发失败的问题
- 添加自定义聊天前缀,现在可以不用@也能触发了
2024.03.11
- 临时修复200问题(chatgpt新的websocket问题),最近好忙,等闲了的时候再优化,有什么问题都可以先提issue
2024.02.19
- 临时修复200问题 与 添加 微软辅助邮箱验证
待续
自用挺久了,匆忙改改发出来,很多东西还没补充
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-gpt-0.0.23.tar.gz
(30.4 kB
view hashes)
Built Distribution
Close
Hashes for nonebot-plugin-gpt-0.0.23.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c208aab065594f9626bfb8e5f3a9ea2a00ec209f000e9091219315860d145970 |
|
MD5 | 6f2affe29933bde4d50e52b7e89e53e7 |
|
BLAKE2b-256 | 32fca7f4cb0d4f9feaf152a2fb82320f482e542c4f9c291f83472d6800560f58 |
Close
Hashes for nonebot_plugin_gpt-0.0.23-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0af7385d5c886dc5f31ae10171e72bbe54a0a6ff38985a99ee7869d51741ccf |
|
MD5 | d97423229c17ec9e36750e70f927cd4f |
|
BLAKE2b-256 | 60bea695e3adf90ce5bd3d4324238c9a287bec2254ffc3033ecd760a30bb2363 |