Back to Chatgpt On Wechat

README

plugins/role/README.md

2.1.22.1 KB
Original Source

用于让Bot扮演指定角色的聊天插件,触发方法如下:

  • $角色/$role help/帮助 - 打印目前支持的角色列表。
  • $角色/$role <角色名> - 让AI扮演该角色,角色名支持模糊匹配。
  • $停止扮演 - 停止角色扮演。

目录结构

plugins/role/
├── README.md
├── __init__.py
├── role.py                  # 插件主逻辑
├── roles.json               # 内置角色库(所有默认角色)
├── schema/
│   └── role_template.json   # 角色模板,新增角色时复制此文件
└── roles/                   # 可选:放自定义角色文件,自动加载
    └── 我的角色.json         # 同title会覆盖内置角色,不同则追加

添加自定义角色

  1. 新建roles目录
  2. 复制 下面模板 到 roles/ 目录并重命名(如 我的角色.json)。
  3. 编辑文件内容,填写角色信息。
  4. 重启Bot即可生效,插件会自动扫描 roles/ 目录下的所有 .json 文件。

覆盖规则:如果自定义角色的 title 与内置角色同名,则覆盖内置角色;否则作为新角色追加。无需修改任何映射文件。

(大部分prompt来自https://github.com/rockbenben/ChatGPT-Shortcut/blob/main/src/data/users.tsx)

以下为角色文件内容例子:

json
{
  "title": "写作助理",
  "description": "As a writing improvement assistant...",
  "descn": "作为一名中文写作改进助理...",
  "wrapper": "内容是:\n\"%s\"",
  "remark": "最常使用的角色,用于优化文本的语法、清晰度和简洁度,提高可读性。",
  "tags": ["favorite", "write"]
}
  • title: 角色名。
  • description: 使用$role触发时,使用英语prompt。
  • descn: 使用$角色触发时,使用中文prompt。
  • wrapper: 用于包装用户消息,可起到强调作用,避免回复离题。
  • remark: 简短描述该角色,在打印帮助文档时显示。
  • tags: 角色分类标签,可用$角色类型 <标签>查看。
json
{
  "title": "",
  "description": "",
  "descn": "",
  "wrapper": "",
  "remark": "",
  "tags": []
}