Skip to main content

随机攻击群友插件

Project description

NoneBotPluginLogo

NoneBotPluginText

nonebot-plugin-random-reply

介绍

  • 根据当前语境在群聊内随机攻击群友
  • 可以更换回复风格prompt自定义bot的说话风格随机拟人回复
  • 基于ChatGLM大模型智能体选择表情包拟人回复,功能实现使用了该博客的思路和该项目的表情包视觉标注。使用glm-free-api进行api轻量化调用。

"有什么让LLM更拟人的方案?

哎!我发现原来缺了点表情包!假如模型会发表情包岂不是很好玩?

表情包是一种模因,模因就是可以被人模仿并传递给其他人的信息,比如一段音乐、一个观念、一个时尚趋势、一句流行语、一个动作等等,但不是所有模因都像表情包这样能够简洁表达一种心境,还具有高度的传染性和多样性,每次发送和接收表情包都会让我们大脑产生多巴胺。

借助多模态大模型的视觉推理对表情包图像进行数据标注,再将这批数据作为知识库内容,智谱清言是否有能力通过用户输入的query来RAG(检索增强)检索到语义最接近的表情包数据,然后将相应的表情包图像文件名输出?"
—— 表情包智能体诞生记

  • bot的回复效果与选用的llm模型有关,经过半个多月的测试,中文语境下使用deepseek-r1的回复效果最佳,但是成本较高。推荐使用deepseek-v3模型,在保证回复质量的情况下减少使用成本。免费方案可以使用硅基流动的THUDM/glm-4-9b-chat模型进行下位替代,但是效果欠佳。
  • bot的回复效果也与调教prompt有关,通过修改prompt也可以达到模拟真人在群聊内回复的效果,欢迎prompt工程师们优化当前的prompt。

效果

安装

  • 手动安装

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

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

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

    pip install nonebot-plugin-random-reply
    

配置文件

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

必填内容:

oneapi_key = ""  # API KEY
oneapi_url = ""  # llm提供商地址,使用deepseek请填写"https://api.deepseek.com",使用硅基流动请填写"https://api.siliconflow.cn/v1",使用OpenAI官方服务不需要填写
oneapi_model = "deepseek-chat" # 使用的语言大模型,建议使用ds-v3模型兼顾质量和成本
random_re_g = ["123456789","987654321"]  # 启用随机回复的群聊白名单

可选内容(嫌麻烦可以不看):

reply_lens = 30 # 参考的聊天记录长度
reply_pro = 0.08   # 随机回复概率,取值范围0~1,越大回复概率越高
reply_prompt = ""  #自定义bot的回复风格prompt

表情包配置(可以不配置,不影响文字回复):

根据此处的教程配置好glm-free-api的后端服务器后,再根据这个教程获取chatglm的token。得到后端服务器地址和chatglm的token后,在bot配置文件中追加:

random_meme_url = "http://xxx.xxx.xxx.xxx:xxxx/v1/images/generations"    # 用于llm选择表情包的glm-free-api地址
random_meme_token = ""     # glm-free-api的token

使用方法

  • 填好配置文件和群聊白名单后,bot就会根据当前话题随机攻击群友
  • 不填写表情包发送相关配置不会发送表情包
  • @机器人会根据本条信息回复

自定义prompt范例

【任务规则】
1. 根据当前聊天记录的语境,回复最后1条内容进行回应,聊天记录中可能有多个话题,注意分辨最后一条信息的话题,禁止跨话题联想其他历史信息
2. 用中文互联网常见的口语化短句回复,禁止使用超过30个字的长句
3. 模仿真实网友的交流特点:适当使用缩写、流行梗、表情符号(但每条最多1个),精准犀利地进行吐槽
4. 输出必须为纯文本,禁止任何格式标记或前缀
5. 使用00后常用网络语态(如:草/绝了/好耶)
6. 核心萌点:偶尔暴露二次元知识
7. 当出现多个话题时,优先回应最新的发言内容

【回复特征】
- 句子碎片化(如:笑死 / 确实 / 绷不住了)
- 高频使用语气词(如:捏/啊/呢/吧)
- 有概率根据回复的语境加入合适emoji帮助表达
- 有概率使用某些流行的拼音缩写
- 有概率玩谐音梗

【应答策略】
遇到ACG话题时:
有概率接经典梗(如:团长你在干什么啊团长)
禁用颜文字时改用括号吐槽(但每3条限1次)
克制使用表情包替代词(每5条发言限用1个→)

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_random_reply-0.2.0.tar.gz (7.0 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_random_reply-0.2.0-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file nonebot_plugin_random_reply-0.2.0.tar.gz.

File metadata

File hashes

Hashes for nonebot_plugin_random_reply-0.2.0.tar.gz
Algorithm Hash digest
SHA256 40a867f57c632daa409915b214619c23b611ec9812767ff5881ed080e34e994f
MD5 b9567bf06401b570cbccea6f7ab076ee
BLAKE2b-256 68ce05b9ef41dfa5f10ff9772c16a0e2552750620018eab8631115fa82f6e884

See more details on using hashes here.

File details

Details for the file nonebot_plugin_random_reply-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_random_reply-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2baf22edf616c3488763aec6f66bcc732533e5a8e8f2c42e81f32a8f74182260
MD5 a4be8e52e1fb7751eaf56d4d2d09ff28
BLAKE2b-256 aae8081dd5d158dc87a054b77b379b5410776af2e127e2729350ab0c3e2dc718

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