Skip to main content

"Chat with tuanzi ~"

Project description

NoneBotPluginLogo

NoneBotPluginText

nonebot-plugin-tuan-chatgpt

✨ 来和团子一起聊天吧~ ✨

license pypi python

📖 介绍

来与团子聊天吧!

基于 openai 于3月1日放开的最新模型 gpt-3.5-turbo-0301 开发,能够实现近乎于网页端的体验。

基于Nonebot 2.0, onebot v11开发,已作为插件在Paimon bot测试。

功能:

  • 角色扮演聊天 Powered by Chatgpt(可 调教 修改成其他人设)
  • 发言频率限制 (可修改)
  • 群友发言长度限制 (可修改 不仅避免腾讯检测 还能省 token)
  • 记忆限制(可修改 默认记忆8条对话 反正群友也是金鱼 还能防止被群友调教成猫娘
  • 查看历史问题(看看群友都发了什么怪东西
  • 查看赛博地址 (看看代理能用不)

由于本人能力精力有限,对于潜在的问题 & 能提升的地方,欢迎来提 issue & pull request。

效果:

聊天效果

💿 安装

使用 nb-cli 安装
nb plugin install nonebot-plugin-tuan-chatgpt
使用 git 安装

在 nonebot2 项目的插件目录下, 打开命令行, 使用 git 安装

git clone https://github.com/TheLZY/nonebot_plugin_tuan_chatgpt.git
使用 pip 安装
pip install nonebot-plugin-tuan-chatgpt

环境配置:

打开nonebot的.env 文件,写入您的 chatgpt_api

如果希望启用代理,则需要在.env 文件中,写入 chat_use_proxy = True 以及 chat_proxy_address: { "代理类型": "代理地址"}

eg:

chatgpt_api = "sk-114514"
chat_use_proxy = True
chat_proxy_address = {'http': 'http://127.0.0.1:10809', 'https': 'http://127.0.0.1:10809'}

如果没有自动导入插件的功能,需要打开 nonebot2 项目根目录下的 pyproject.toml 文件, 在 [tool.nonebot] 部分追加写入

plugins = ["nonebot_plugin_tuan_chatgpt"]

⚙️ 配置

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

配置项 必填 默认值 说明
chatgpt_api str格式
conversation_max_size 50 最大发送问题字数
answer_max_size 30 最大记录回答字数
answer_split_size 177 分隔回答长度
user_freq_lim 4 限制群友发言速度(秒)
group_freq_lim 6 限制群内发言速度(秒)
conversation_remember_num 7 能记住的对话数目
chat_use_proxy False 是否启用代理
chat_proxy_address None 代理地址

🎉 使用

指令表

指令 权限 需要@ 范围 说明
团子[聊天内容] 群员 群聊 来和团子聊天吧!
团子看看位置 群员 群聊 查看团子赛博地址
历史记录 主人 群聊 / 私聊 查看历史提问(不包括回答)

💡 TODO

  • 回答分隔 (通过分段实现。可能会考虑换成图片发送)
  • 支持使用梯子 ?
  • 未对私聊做发言频率限制。可能以后会添加?
  • 错误处理 (比如代理的检测之类的 ) ?
  • 异步调用优化 ? (自动重试 / 返回报错 )
  • 人格转换功能 ?
  • 通过@触发 ?
  • 修改人设 ? 这个应该和修改触发方式一起
  • 增加代理测试 通过返回的ip地址判断代理是否有效
  • 随机人格? 感觉会很有意思(

角色 调教 定制:

需要找到源码安装位置里的 __init__.py 文件

如果希望更改触发语,可以修改 service = on_startswith('团子', priority = 8, block=True)

如果希望更改人设,可以修改 message_init()

一些碎碎念

其实也可以是收到 @ ,然后没有别的程序被触发的时候就回复。因为paimon bot似乎会自动将nickname转义为 @ ?

但是并不是所有的都会。 要适配所有bot的话可能写两遍是最合理的。。。

而且有可能会在写错命令的时候误运行

不过按理来说也不是不行,只需要把priority调低就行

conversation_remember_num 最好不要调得太高,记住太多话了就会变成性冷淡机器人 😥

一个简洁明了的例子

conversation_remember_num = 14

聊天效果

变成性冷淡机器人惹(悲)

conversation_remember_num = 8

聊天效果

⭐ Special thanks to

本项目在开发过程中,参考了不少以下项目,对各位表示由衷的感谢

openai

NoneBot

小派蒙|LittlePaimon by @CMHopeSunshine

nonebot-plugin-chatgpt by @A-kirami

nonebot-plugin-oachat by @Gin2O

ChatGPT 中文调教指南 by @PlexPt

Little Paimon with chatgpt by @meatjam

nonebot_plugin_biliav by @knva

Project details


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_tuan_chatgpt-0.1.9.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file nonebot_plugin_tuan_chatgpt-0.1.9.tar.gz.

File metadata

File hashes

Hashes for nonebot_plugin_tuan_chatgpt-0.1.9.tar.gz
Algorithm Hash digest
SHA256 ad6a369e8d5a2ab6378b112408b897aa0a82ceb33e97b4c97887ba984c786f85
MD5 167ce3f737f83f23c83aa7b8a4814abf
BLAKE2b-256 806184c659d55bbf3f05895c06fab59144c7a65d25c7621054a0ea918b335e90

See more details on using hashes here.

File details

Details for the file nonebot_plugin_tuan_chatgpt-0.1.9-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_tuan_chatgpt-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 ba3e09fa7597b6bc35892a83559b30d52b3ca38cfd369352650515f58ba94ad7
MD5 bbd6ab93e2ffe848d5299ab57c38e7d5
BLAKE2b-256 d06c60e2fc8cb10fe9630516a3443584607f8efe6c0b4455f81916cd47709710

See more details on using hashes here.

Supported by

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