nonebot-plugin-random-reply


Namenonebot-plugin-random-reply JSON
Version 0.5.3 PyPI version JSON
download
home_pageNone
Summary随机攻击群友插件
upload_time2025-07-23 02:04:59
maintainerNone
docs_urlNone
authorAlpaca
requires_python<4.0,>=3.8
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
  <a href="https://v2.nonebot.dev/store"><img src="https://github.com/A-kirami/nonebot-plugin-template/blob/resources/nbp_logo.png" width="180" height="180" alt="NoneBotPluginLogo"></a>
  <br>
  <p><img src="https://github.com/A-kirami/nonebot-plugin-template/blob/resources/NoneBotPlugin.svg" width="240" alt="NoneBotPluginText"></p>
</div>

<div align="center">

# nonebot-plugin-random-reply
</div>

# 介绍
- 根据当前语境在群聊内随机攻击群友
- 可以更换回复风格prompt自定义bot的说话风格随机拟人回复
- 基于ChatGLM大模型智能体选择表情包拟人回复,功能实现使用了[该博客](https://www.vinlic.com/p/47461/#%E5%88%9B%E5%BB%BA%E6%99%BA%E8%83%BD%E4%BD%93)的思路和[该项目](https://github.com/LLM-Red-Team/emo-visual-data)的表情包视觉标注。使用[glm-free-api](https://github.com/LLM-Red-Team/glm-free-api)进行api轻量化调用。
- 除了LLM选择表情包外,还可以使用第三方斗图API回复表情
- 支持Gemini和oneapi格式的LLM

> "有什么让LLM更拟人的方案?
>
>哎!我发现原来缺了点表情包!假如模型会发表情包岂不是很好玩?
>
>表情包是一种模因,模因就是可以被人模仿并传递给其他人的信息,比如一段音乐、一个观念、一个时尚趋势、一句流行语、一个动作等等,但不是所有模因都像表情包这样能够简洁表达一种心境,还具有高度的传染性和多样性,每次发送和接收表情包都会让我们大脑产生多巴胺。
>
>借助多模态大模型的视觉推理对表情包图像进行数据标注,再将这批数据作为知识库内容,智谱清言是否有能力通过用户输入的query来RAG(检索增强)检索到语义最接近的表情包数据,然后将相应的表情包图像文件名输出?"  
> —— 表情包智能体诞生记


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

# 随机回复和LLM选择表情包回复效果
<img src="demo2.jpg" width="40%">
<img src="demo5.png" width="40%">
<img src="demo4.jpg" width="40%">
<img src="demo6.png" width="40%">
<img src="demo1.jpg" width="40%">
<img src="demo3.jpg" width="40%">

第三方斗图API表情包效果:
<img src="demo7.png" width="40%">

# 安装

* 手动安装
  ```
  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格式的模型和Gemini,只填oneapi_key则使用指定的oneapi格式的模型,只填gemini_key则使用对应的gemini模型,两者都填则默认使用oneapi格式的模型,二选一填即可
```
oneapi_key = ""  # OneAPI KEY
oneapi_url = ""  # llm提供商地址,使用deepseek请填写"https://api.deepseek.com",使用硅基流动请填写"https://api.siliconflow.cn/v1",使用OpenAI官方服务不需要填写
oneapi_model = "deepseek-chat" # 使用的语言大模型,建议使用ds-v3模型兼顾质量和成本

gemini_model = "gemini-2.0-flash" # Gemini模型,不填默认使用gemini-2.0-flash达到较好的效果
gemini_key = ""  # Gemini KEY
gemini_proxy = "" # Gemini代理

random_re_g = ["123456789","987654321"]  # 启用随机回复的群聊白名单
```

## 可选内容(嫌麻烦可以不看):
```
meme_enable = True # 是否回复表情包,改成False关闭发送表情包
reply_lens = 30 # 参考的聊天记录长度
reply_pro = 0.08   # 随机回复概率,取值范围0~1,越大回复概率越高
reply_prompt_url = ""  # 自定义bot的回复风格prompt的txt文件的**绝对路径**
group_reply_prefix = "/" # 群聊回复前缀,填写此处后@机器人将不会触发回复
group_reply_pro = {"123456789": 0.5, "987654321": 0.2} # 分群回复概率配置
```
LLM表情包配置(可以不配置,不影响文字回复,开启表情包回复后不配置则使用第三方斗图API发送表情包): 
根据[此处](https://github.com/LLM-Red-Team/glm-free-api?tab=readme-ov-file#Docker%E9%83%A8%E7%BD%B2)的教程配置好glm-free-api的后端服务器后,再根据[这个教程](https://github.com/LLM-Red-Team/glm-free-api?tab=readme-ov-file#%E6%8E%A5%E5%85%A5%E5%87%86%E5%A4%87)获取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个→)
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "nonebot-plugin-random-reply",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Alpaca",
    "author_email": "202396298@qq.com",
    "download_url": "https://files.pythonhosted.org/packages/45/33/69aff65f62eabe4da88265a4616cf58f91fb6313ec5f5b0800cc6343d616/nonebot_plugin_random_reply-0.5.3.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n  <a href=\"https://v2.nonebot.dev/store\"><img src=\"https://github.com/A-kirami/nonebot-plugin-template/blob/resources/nbp_logo.png\" width=\"180\" height=\"180\" alt=\"NoneBotPluginLogo\"></a>\n  <br>\n  <p><img src=\"https://github.com/A-kirami/nonebot-plugin-template/blob/resources/NoneBotPlugin.svg\" width=\"240\" alt=\"NoneBotPluginText\"></p>\n</div>\n\n<div align=\"center\">\n\n# nonebot-plugin-random-reply\n</div>\n\n# \u4ecb\u7ecd\n- \u6839\u636e\u5f53\u524d\u8bed\u5883\u5728\u7fa4\u804a\u5185\u968f\u673a\u653b\u51fb\u7fa4\u53cb\n- \u53ef\u4ee5\u66f4\u6362\u56de\u590d\u98ce\u683cprompt\u81ea\u5b9a\u4e49bot\u7684\u8bf4\u8bdd\u98ce\u683c\u968f\u673a\u62df\u4eba\u56de\u590d\n- \u57fa\u4e8eChatGLM\u5927\u6a21\u578b\u667a\u80fd\u4f53\u9009\u62e9\u8868\u60c5\u5305\u62df\u4eba\u56de\u590d\uff0c\u529f\u80fd\u5b9e\u73b0\u4f7f\u7528\u4e86[\u8be5\u535a\u5ba2](https://www.vinlic.com/p/47461/#%E5%88%9B%E5%BB%BA%E6%99%BA%E8%83%BD%E4%BD%93)\u7684\u601d\u8def\u548c[\u8be5\u9879\u76ee](https://github.com/LLM-Red-Team/emo-visual-data)\u7684\u8868\u60c5\u5305\u89c6\u89c9\u6807\u6ce8\u3002\u4f7f\u7528[glm-free-api](https://github.com/LLM-Red-Team/glm-free-api)\u8fdb\u884capi\u8f7b\u91cf\u5316\u8c03\u7528\u3002\n- \u9664\u4e86LLM\u9009\u62e9\u8868\u60c5\u5305\u5916\uff0c\u8fd8\u53ef\u4ee5\u4f7f\u7528\u7b2c\u4e09\u65b9\u6597\u56feAPI\u56de\u590d\u8868\u60c5\n- \u652f\u6301Gemini\u548coneapi\u683c\u5f0f\u7684LLM\n\n> \"\u6709\u4ec0\u4e48\u8ba9LLM\u66f4\u62df\u4eba\u7684\u65b9\u6848\uff1f\n>\n>\u54ce\uff01\u6211\u53d1\u73b0\u539f\u6765\u7f3a\u4e86\u70b9\u8868\u60c5\u5305\uff01\u5047\u5982\u6a21\u578b\u4f1a\u53d1\u8868\u60c5\u5305\u5c82\u4e0d\u662f\u5f88\u597d\u73a9\uff1f\n>\n>\u8868\u60c5\u5305\u662f\u4e00\u79cd\u6a21\u56e0\uff0c\u6a21\u56e0\u5c31\u662f\u53ef\u4ee5\u88ab\u4eba\u6a21\u4eff\u5e76\u4f20\u9012\u7ed9\u5176\u4ed6\u4eba\u7684\u4fe1\u606f\uff0c\u6bd4\u5982\u4e00\u6bb5\u97f3\u4e50\u3001\u4e00\u4e2a\u89c2\u5ff5\u3001\u4e00\u4e2a\u65f6\u5c1a\u8d8b\u52bf\u3001\u4e00\u53e5\u6d41\u884c\u8bed\u3001\u4e00\u4e2a\u52a8\u4f5c\u7b49\u7b49\uff0c\u4f46\u4e0d\u662f\u6240\u6709\u6a21\u56e0\u90fd\u50cf\u8868\u60c5\u5305\u8fd9\u6837\u80fd\u591f\u7b80\u6d01\u8868\u8fbe\u4e00\u79cd\u5fc3\u5883\uff0c\u8fd8\u5177\u6709\u9ad8\u5ea6\u7684\u4f20\u67d3\u6027\u548c\u591a\u6837\u6027\uff0c\u6bcf\u6b21\u53d1\u9001\u548c\u63a5\u6536\u8868\u60c5\u5305\u90fd\u4f1a\u8ba9\u6211\u4eec\u5927\u8111\u4ea7\u751f\u591a\u5df4\u80fa\u3002\n>\n>\u501f\u52a9\u591a\u6a21\u6001\u5927\u6a21\u578b\u7684\u89c6\u89c9\u63a8\u7406\u5bf9\u8868\u60c5\u5305\u56fe\u50cf\u8fdb\u884c\u6570\u636e\u6807\u6ce8\uff0c\u518d\u5c06\u8fd9\u6279\u6570\u636e\u4f5c\u4e3a\u77e5\u8bc6\u5e93\u5185\u5bb9\uff0c\u667a\u8c31\u6e05\u8a00\u662f\u5426\u6709\u80fd\u529b\u901a\u8fc7\u7528\u6237\u8f93\u5165\u7684query\u6765RAG\uff08\u68c0\u7d22\u589e\u5f3a\uff09\u68c0\u7d22\u5230\u8bed\u4e49\u6700\u63a5\u8fd1\u7684\u8868\u60c5\u5305\u6570\u636e\uff0c\u7136\u540e\u5c06\u76f8\u5e94\u7684\u8868\u60c5\u5305\u56fe\u50cf\u6587\u4ef6\u540d\u8f93\u51fa\uff1f\"  \n> \u2014\u2014 \u8868\u60c5\u5305\u667a\u80fd\u4f53\u8bde\u751f\u8bb0\n\n\n- bot\u7684\u56de\u590d\u6548\u679c\u4e0e\u9009\u7528\u7684llm\u6a21\u578b\u6709\u5173\uff0c\u7ecf\u8fc7\u534a\u4e2a\u591a\u6708\u7684\u6d4b\u8bd5\uff0c\u4e2d\u6587\u8bed\u5883\u4e0b\u4f7f\u7528deepseek-r1\u7684\u56de\u590d\u6548\u679c\u6700\u4f73\uff0c\u4f46\u662f\u6210\u672c\u8f83\u9ad8\u3002\u63a8\u8350\u4f7f\u7528deepseek-v3\u6a21\u578b\uff0c\u5728\u4fdd\u8bc1\u56de\u590d\u8d28\u91cf\u7684\u60c5\u51b5\u4e0b\u51cf\u5c11\u4f7f\u7528\u6210\u672c\u3002\u514d\u8d39\u65b9\u6848\u53ef\u4ee5\u4f7f\u7528\u7845\u57fa\u6d41\u52a8\u7684THUDM/glm-4-9b-chat\u6a21\u578b\u8fdb\u884c\u4e0b\u4f4d\u66ff\u4ee3\uff0c\u4f46\u662f\u6548\u679c\u6b20\u4f73\u3002\n- bot\u7684\u56de\u590d\u6548\u679c\u4e5f\u4e0e\u8c03\u6559prompt\u6709\u5173\uff0c\u901a\u8fc7\u4fee\u6539prompt\u4e5f\u53ef\u4ee5\u8fbe\u5230\u6a21\u62df\u771f\u4eba\u5728\u7fa4\u804a\u5185\u56de\u590d\u7684\u6548\u679c\uff0c\u6b22\u8fceprompt\u5de5\u7a0b\u5e08\u4eec\u4f18\u5316\u5f53\u524d\u7684prompt\u3002\n\n# \u968f\u673a\u56de\u590d\u548cLLM\u9009\u62e9\u8868\u60c5\u5305\u56de\u590d\u6548\u679c\n<img src=\"demo2.jpg\" width=\"40%\">\n<img src=\"demo5.png\" width=\"40%\">\n<img src=\"demo4.jpg\" width=\"40%\">\n<img src=\"demo6.png\" width=\"40%\">\n<img src=\"demo1.jpg\" width=\"40%\">\n<img src=\"demo3.jpg\" width=\"40%\">\n\n\u7b2c\u4e09\u65b9\u6597\u56feAPI\u8868\u60c5\u5305\u6548\u679c\uff1a\n<img src=\"demo7.png\" width=\"40%\">\n\n# \u5b89\u88c5\n\n* \u624b\u52a8\u5b89\u88c5\n  ```\n  git clone https://github.com/Alpaca4610/nonebot_plugin_random_reply.git\n  ```\n\n  \u4e0b\u8f7d\u5b8c\u6210\u540e\u5728bot\u9879\u76ee\u7684pyproject.toml\u6587\u4ef6\u624b\u52a8\u6dfb\u52a0\u63d2\u4ef6\uff1a\n\n  ```\n  plugin_dirs = [\"xxxxxx\",\"xxxxxx\",......,\"\u4e0b\u8f7d\u5b8c\u6210\u7684\u63d2\u4ef6\u8def\u5f84/nonebot-plugin-random-reply]\n  ```\n* \u4f7f\u7528 pip\n  ```\n  pip install nonebot-plugin-random-reply\n  ```\n\n# \u914d\u7f6e\u6587\u4ef6\n\n\u5728Bot\u6839\u76ee\u5f55\u4e0b\u7684.env\u6587\u4ef6\u4e2d\u8ffd\u52a0\u5982\u4e0b\u5185\u5bb9\uff1a\n## \u5fc5\u586b\u5185\u5bb9\uff1a\n#### \u56de\u590d\u6a21\u578b\u652f\u6301oneapi\u683c\u5f0f\u7684\u6a21\u578b\u548cGemini\uff0c\u53ea\u586boneapi_key\u5219\u4f7f\u7528\u6307\u5b9a\u7684oneapi\u683c\u5f0f\u7684\u6a21\u578b\uff0c\u53ea\u586bgemini_key\u5219\u4f7f\u7528\u5bf9\u5e94\u7684gemini\u6a21\u578b\uff0c\u4e24\u8005\u90fd\u586b\u5219\u9ed8\u8ba4\u4f7f\u7528oneapi\u683c\u5f0f\u7684\u6a21\u578b\uff0c\u4e8c\u9009\u4e00\u586b\u5373\u53ef\n```\noneapi_key = \"\"  # OneAPI KEY\noneapi_url = \"\"  # llm\u63d0\u4f9b\u5546\u5730\u5740\uff0c\u4f7f\u7528deepseek\u8bf7\u586b\u5199\"https://api.deepseek.com\"\uff0c\u4f7f\u7528\u7845\u57fa\u6d41\u52a8\u8bf7\u586b\u5199\"https://api.siliconflow.cn/v1\"\uff0c\u4f7f\u7528OpenAI\u5b98\u65b9\u670d\u52a1\u4e0d\u9700\u8981\u586b\u5199\noneapi_model = \"deepseek-chat\" # \u4f7f\u7528\u7684\u8bed\u8a00\u5927\u6a21\u578b\uff0c\u5efa\u8bae\u4f7f\u7528ds-v3\u6a21\u578b\u517c\u987e\u8d28\u91cf\u548c\u6210\u672c\n\ngemini_model = \"gemini-2.0-flash\" # Gemini\u6a21\u578b\uff0c\u4e0d\u586b\u9ed8\u8ba4\u4f7f\u7528gemini-2.0-flash\u8fbe\u5230\u8f83\u597d\u7684\u6548\u679c\ngemini_key = \"\"  # Gemini KEY\ngemini_proxy = \"\" # Gemini\u4ee3\u7406\n\nrandom_re_g = [\"123456789\",\"987654321\"]  # \u542f\u7528\u968f\u673a\u56de\u590d\u7684\u7fa4\u804a\u767d\u540d\u5355\n```\n\n## \u53ef\u9009\u5185\u5bb9\uff08\u5acc\u9ebb\u70e6\u53ef\u4ee5\u4e0d\u770b\uff09\uff1a\n```\nmeme_enable = True # \u662f\u5426\u56de\u590d\u8868\u60c5\u5305\uff0c\u6539\u6210False\u5173\u95ed\u53d1\u9001\u8868\u60c5\u5305\nreply_lens = 30 # \u53c2\u8003\u7684\u804a\u5929\u8bb0\u5f55\u957f\u5ea6\nreply_pro = 0.08   # \u968f\u673a\u56de\u590d\u6982\u7387\uff0c\u53d6\u503c\u8303\u56f40~1\uff0c\u8d8a\u5927\u56de\u590d\u6982\u7387\u8d8a\u9ad8\nreply_prompt_url = \"\"  # \u81ea\u5b9a\u4e49bot\u7684\u56de\u590d\u98ce\u683cprompt\u7684txt\u6587\u4ef6\u7684**\u7edd\u5bf9\u8def\u5f84**\ngroup_reply_prefix = \"/\" # \u7fa4\u804a\u56de\u590d\u524d\u7f00\uff0c\u586b\u5199\u6b64\u5904\u540e@\u673a\u5668\u4eba\u5c06\u4e0d\u4f1a\u89e6\u53d1\u56de\u590d\ngroup_reply_pro = {\"123456789\": 0.5, \"987654321\": 0.2} # \u5206\u7fa4\u56de\u590d\u6982\u7387\u914d\u7f6e\n```\nLLM\u8868\u60c5\u5305\u914d\u7f6e\uff08\u53ef\u4ee5\u4e0d\u914d\u7f6e\uff0c\u4e0d\u5f71\u54cd\u6587\u5b57\u56de\u590d\uff0c\u5f00\u542f\u8868\u60c5\u5305\u56de\u590d\u540e\u4e0d\u914d\u7f6e\u5219\u4f7f\u7528\u7b2c\u4e09\u65b9\u6597\u56feAPI\u53d1\u9001\u8868\u60c5\u5305\uff09\uff1a \n\u6839\u636e[\u6b64\u5904](https://github.com/LLM-Red-Team/glm-free-api?tab=readme-ov-file#Docker%E9%83%A8%E7%BD%B2)\u7684\u6559\u7a0b\u914d\u7f6e\u597dglm-free-api\u7684\u540e\u7aef\u670d\u52a1\u5668\u540e\uff0c\u518d\u6839\u636e[\u8fd9\u4e2a\u6559\u7a0b](https://github.com/LLM-Red-Team/glm-free-api?tab=readme-ov-file#%E6%8E%A5%E5%85%A5%E5%87%86%E5%A4%87)\u83b7\u53d6chatglm\u7684token\u3002\u5f97\u5230\u540e\u7aef\u670d\u52a1\u5668\u5730\u5740\u548cchatglm\u7684token\u540e\uff0c\u5728bot\u914d\u7f6e\u6587\u4ef6\u4e2d\u8ffd\u52a0\uff1a\n ```\nrandom_meme_url = \"http://xxx.xxx.xxx.xxx:xxxx/v1/images/generations\"    # \u7528\u4e8ellm\u9009\u62e9\u8868\u60c5\u5305\u7684glm-free-api\u5730\u5740\nrandom_meme_token = \"\"     # glm-free-api\u7684token\n```\n\n# \u4f7f\u7528\u65b9\u6cd5\n- \u586b\u597d\u914d\u7f6e\u6587\u4ef6\u548c\u7fa4\u804a\u767d\u540d\u5355\u540e\uff0cbot\u5c31\u4f1a\u6839\u636e\u5f53\u524d\u8bdd\u9898\u968f\u673a\u653b\u51fb\u7fa4\u53cb\n- \u4e0d\u586b\u5199\u8868\u60c5\u5305\u53d1\u9001\u76f8\u5173\u914d\u7f6e\u4e0d\u4f1a\u53d1\u9001\u8868\u60c5\u5305\n- @\u673a\u5668\u4eba\u4f1a\u6839\u636e\u672c\u6761\u4fe1\u606f\u56de\u590d\uff0c\u82e5\u914d\u7f6e\u4e86\u89e6\u53d1\u524d\u7f00\u5219@\u4e0d\u4f1a\u56de\u590d\n\n# \u81ea\u5b9a\u4e49prompt\u8303\u4f8b\n\n```\n\u3010\u4efb\u52a1\u89c4\u5219\u3011\n1. \u6839\u636e\u5f53\u524d\u804a\u5929\u8bb0\u5f55\u7684\u8bed\u5883\uff0c\u56de\u590d\u6700\u540e1\u6761\u5185\u5bb9\u8fdb\u884c\u56de\u5e94\uff0c\u804a\u5929\u8bb0\u5f55\u4e2d\u53ef\u80fd\u6709\u591a\u4e2a\u8bdd\u9898\uff0c\u6ce8\u610f\u5206\u8fa8\u6700\u540e\u4e00\u6761\u4fe1\u606f\u7684\u8bdd\u9898\uff0c\u7981\u6b62\u8de8\u8bdd\u9898\u8054\u60f3\u5176\u4ed6\u5386\u53f2\u4fe1\u606f\n2. \u7528\u4e2d\u6587\u4e92\u8054\u7f51\u5e38\u89c1\u7684\u53e3\u8bed\u5316\u77ed\u53e5\u56de\u590d\uff0c\u7981\u6b62\u4f7f\u7528\u8d85\u8fc730\u4e2a\u5b57\u7684\u957f\u53e5\n3. \u6a21\u4eff\u771f\u5b9e\u7f51\u53cb\u7684\u4ea4\u6d41\u7279\u70b9\uff1a\u9002\u5f53\u4f7f\u7528\u7f29\u5199\u3001\u6d41\u884c\u6897\u3001\u8868\u60c5\u7b26\u53f7\uff08\u4f46\u6bcf\u6761\u6700\u591a1\u4e2a\uff09,\u7cbe\u51c6\u7280\u5229\u5730\u8fdb\u884c\u5410\u69fd\n4. \u8f93\u51fa\u5fc5\u987b\u4e3a\u7eaf\u6587\u672c\uff0c\u7981\u6b62\u4efb\u4f55\u683c\u5f0f\u6807\u8bb0\u6216\u524d\u7f00\n5. \u4f7f\u752800\u540e\u5e38\u7528\u7f51\u7edc\u8bed\u6001\uff08\u5982\uff1a\u8349/\u7edd\u4e86/\u597d\u8036\uff09\n6. \u6838\u5fc3\u840c\u70b9\uff1a\u5076\u5c14\u66b4\u9732\u4e8c\u6b21\u5143\u77e5\u8bc6\n7. \u5f53\u51fa\u73b0\u591a\u4e2a\u8bdd\u9898\u65f6\uff0c\u4f18\u5148\u56de\u5e94\u6700\u65b0\u7684\u53d1\u8a00\u5185\u5bb9\n\n\u3010\u56de\u590d\u7279\u5f81\u3011\n- \u53e5\u5b50\u788e\u7247\u5316\uff08\u5982\uff1a\u7b11\u6b7b / \u786e\u5b9e / \u7ef7\u4e0d\u4f4f\u4e86\uff09\n- \u9ad8\u9891\u4f7f\u7528\u8bed\u6c14\u8bcd\uff08\u5982\uff1a\u634f/\u554a/\u5462/\u5427\uff09\n- \u6709\u6982\u7387\u6839\u636e\u56de\u590d\u7684\u8bed\u5883\u52a0\u5165\u5408\u9002emoji\u5e2e\u52a9\u8868\u8fbe\n- \u6709\u6982\u7387\u4f7f\u7528\u67d0\u4e9b\u6d41\u884c\u7684\u62fc\u97f3\u7f29\u5199\n- \u6709\u6982\u7387\u73a9\u8c10\u97f3\u6897\n\n\u3010\u5e94\u7b54\u7b56\u7565\u3011\n\u9047\u5230ACG\u8bdd\u9898\u65f6\uff1a\n\u6709\u6982\u7387\u63a5\u7ecf\u5178\u6897\uff08\u5982\uff1a\u56e2\u957f\u4f60\u5728\u5e72\u4ec0\u4e48\u554a\u56e2\u957f\uff09\n\u7981\u7528\u989c\u6587\u5b57\u65f6\u6539\u7528\u62ec\u53f7\u5410\u69fd\uff08\u4f46\u6bcf3\u6761\u96501\u6b21\uff09\n\u514b\u5236\u4f7f\u7528\u8868\u60c5\u5305\u66ff\u4ee3\u8bcd\uff08\u6bcf5\u6761\u53d1\u8a00\u9650\u75281\u4e2a\u2192\uff09\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "\u968f\u673a\u653b\u51fb\u7fa4\u53cb\u63d2\u4ef6",
    "version": "0.5.3",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bad3a74c9dca496fb8d5eeb2f729a2406127566be4fcbcb920594a5bd8e059ce",
                "md5": "bbd45c37dc311508ba68cd96a8d72da1",
                "sha256": "5db465148583257fbc4bf889f061e27184cb5054165a7dadd2532237edb2b1d0"
            },
            "downloads": -1,
            "filename": "nonebot_plugin_random_reply-0.5.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bbd45c37dc311508ba68cd96a8d72da1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 10060,
            "upload_time": "2025-07-23T02:04:58",
            "upload_time_iso_8601": "2025-07-23T02:04:58.188832Z",
            "url": "https://files.pythonhosted.org/packages/ba/d3/a74c9dca496fb8d5eeb2f729a2406127566be4fcbcb920594a5bd8e059ce/nonebot_plugin_random_reply-0.5.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "453369aff65f62eabe4da88265a4616cf58f91fb6313ec5f5b0800cc6343d616",
                "md5": "7a995c2567028515c9d26d520ecd32bd",
                "sha256": "7a135c94ed9d5bd7d80e21e40d90f8c880d65690f29c1820524dc21fa015bf28"
            },
            "downloads": -1,
            "filename": "nonebot_plugin_random_reply-0.5.3.tar.gz",
            "has_sig": false,
            "md5_digest": "7a995c2567028515c9d26d520ecd32bd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 8628,
            "upload_time": "2025-07-23T02:04:59",
            "upload_time_iso_8601": "2025-07-23T02:04:59.547751Z",
            "url": "https://files.pythonhosted.org/packages/45/33/69aff65f62eabe4da88265a4616cf58f91fb6313ec5f5b0800cc6343d616/nonebot_plugin_random_reply-0.5.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-23 02:04:59",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "nonebot-plugin-random-reply"
}
        
Elapsed time: 0.64567s