diff --git a/README_en.md b/README_en.md index 58d2fc1c..dbd9e6a1 100644 --- a/README_en.md +++ b/README_en.md @@ -180,7 +180,7 @@ Plugin [usage](https://github.com/RockChinQ/QChatGPT/wiki/%E6%8F%92%E4%BB%B6%E4% 在`tests/plugin_examples`目录下,将其整个目录复制到`plugins`目录下即可使用 -- `cmdcn` - 主程序指令中文形式 +- `cmdcn` - 主程序命令中文形式 - `hello_plugin` - 在收到消息`hello`时回复相应消息 - `urlikethisijustsix` - 收到冒犯性消息时回复相应消息 @@ -189,7 +189,7 @@ Plugin [usage](https://github.com/RockChinQ/QChatGPT/wiki/%E6%8F%92%E4%BB%B6%E4% 欢迎提交新的插件 - [revLibs](https://github.com/RockChinQ/revLibs) - 将ChatGPT网页版接入此项目,关于[官方接口和网页版有什么区别](https://github.com/RockChinQ/QChatGPT/wiki/%E5%AE%98%E6%96%B9%E6%8E%A5%E5%8F%A3%E4%B8%8EChatGPT%E7%BD%91%E9%A1%B5%E7%89%88) -- [Switcher](https://github.com/RockChinQ/Switcher) - 支持通过指令切换使用的模型 +- [Switcher](https://github.com/RockChinQ/Switcher) - 支持通过命令切换使用的模型 - [hello_plugin](https://github.com/RockChinQ/hello_plugin) - `hello_plugin` 的储存库形式,插件开发模板 - [dominoar/QChatPlugins](https://github.com/dominoar/QchatPlugins) - dominoar编写的诸多新功能插件(语音输出、Ranimg、屏蔽词规则等) - [dominoar/QCP-NovelAi](https://github.com/dominoar/QCP-NovelAi) - NovelAI 故事叙述与绘画 diff --git a/config-template.py b/config-template.py index 3004e567..fe85766a 100644 --- a/config-template.py +++ b/config-template.py @@ -78,13 +78,13 @@ # passive:仅当api-key超额时才会切换api-key switch_strategy = "active" -# [必需] 管理员QQ号,用于接收报错等通知及执行管理员级别指令 +# [必需] 管理员QQ号,用于接收报错等通知及执行管理员级别命令 # 支持多个管理员,可以使用list形式设置,例如: # admin_qq = [12345678, 87654321] admin_qq = 0 # 情景预设(机器人人格) -# 每个会话的预设信息,影响所有会话,无视指令重置 +# 每个会话的预设信息,影响所有会话,无视命令重置 # 可以通过这个字段指定某些情况的回复,可直接用自然语言描述指令 # 例如: # default_prompt = "如果我之后想获取帮助,请你说“输入!help获取帮助”" @@ -98,14 +98,14 @@ # "en-dict": "我想让你充当英英词典,对于给出的英文单词,你要给出其中文意思以及英文解释,并且给出一个例句,此外不要有其他反馈。", # } # -# 在使用期间即可通过指令: +# 在使用期间即可通过命令: # !reset [名称] # 来使用指定的情景预设重置会话 # 例如: # !reset linux-terminal # 若不指定名称,则使用默认情景预设 # -# 也可以使用指令: +# 也可以使用命令: # !default <名称> # 将指定的情景预设设置为默认情景预设 # 例如: @@ -165,7 +165,7 @@ # 符合此规则的消息将不会被响应 # 支持消息前缀匹配及正则表达式匹配 # 此设置优先级高于response_rules -# 用以过滤mirai等其他层级的指令 +# 用以过滤mirai等其他层级的命令 # @see https://github.com/RockChinQ/QChatGPT/issues/165 ignore_rules = { "prefix": ["/"], diff --git a/main.py b/main.py index 5ceb67f6..8de8e085 100644 --- a/main.py +++ b/main.py @@ -188,10 +188,10 @@ async def start_process(first_time_init=False): # 检查是否设置了管理员 if cfg['admin_qq'] == 0: - # logging.warning("未设置管理员QQ,管理员权限指令及运行告警将无法使用,如需设置请修改config.py中的admin_qq字段") + # logging.warning("未设置管理员QQ,管理员权限命令及运行告警将无法使用,如需设置请修改config.py中的admin_qq字段") while True: try: - cfg['admin_qq'] = int(input("未设置管理员QQ,管理员权限指令及运行告警将无法使用,请输入管理员QQ号: ")) + cfg['admin_qq'] = int(input("未设置管理员QQ,管理员权限命令及运行告警将无法使用,请输入管理员QQ号: ")) # 写入到文件 # 读取文件 diff --git a/pkg/openai/dprompt.py b/pkg/openai/dprompt.py index f6b03801..247fb158 100644 --- a/pkg/openai/dprompt.py +++ b/pkg/openai/dprompt.py @@ -8,7 +8,7 @@ # __current__ = "default" # """当前默认使用的情景预设的名称 -# 由管理员使用`!default <名称>`指令切换 +# 由管理员使用`!default <名称>`命令切换 # """ # __prompts_from_files__ = {} diff --git a/pkg/plugin/models.py b/pkg/plugin/models.py index 2e1ce459..a606612d 100644 --- a/pkg/plugin/models.py +++ b/pkg/plugin/models.py @@ -35,18 +35,18 @@ """ PersonCommandSent = "person_command_sent" -"""判断为应该处理的私聊指令时触发 +"""判断为应该处理的私聊命令时触发 kwargs: launcher_type: str 发起对象类型(group/person) launcher_id: int 发起对象ID(群号/QQ号) sender_id: int 发送者ID(QQ号) - command: str 指令 + command: str 命令 params: list[str] 参数列表 - text_message: str 完整指令文本 + text_message: str 完整命令文本 is_admin: bool 是否为管理员 returns (optional): - alter: str 修改后的完整指令文本 + alter: str 修改后的完整命令文本 reply: list 回复消息组件列表 """ @@ -64,18 +64,18 @@ """ GroupCommandSent = "group_command_sent" -"""判断为应该处理的群聊指令时触发 +"""判断为应该处理的群聊命令时触发 kwargs: launcher_type: str 发起对象类型(group/person) launcher_id: int 发起对象ID(群号/QQ号) sender_id: int 发送者ID(QQ号) - command: str 指令 + command: str 命令 params: list[str] 参数列表 - text_message: str 完整指令文本 + text_message: str 完整命令文本 is_admin: bool 是否为管理员 returns (optional): - alter: str 修改后的完整指令文本 + alter: str 修改后的完整命令文本 reply: list 回复消息组件列表 """ diff --git a/pkg/qqbot/cmds/aamgr.py b/pkg/qqbot/cmds/aamgr.py index f761063c..6bc5c2de 100644 --- a/pkg/qqbot/cmds/aamgr.py +++ b/pkg/qqbot/cmds/aamgr.py @@ -71,7 +71,7 @@ 结构: { - 'pkg.qqbot.cmds.cmd1.CommandCmd1': 'cmd1', # 顶级指令 + 'pkg.qqbot.cmds.cmd1.CommandCmd1': 'cmd1', # 顶级命令 'pkg.qqbot.cmds.cmd1.CommandCmd1_1': 'cmd1.cmd1-1', # 类名: 节点路径 'pkg.qqbot.cmds.cmd2.CommandCmd2': 'cmd2', 'pkg.qqbot.cmds.cmd2.CommandCmd2_1': 'cmd2.cmd2-1', @@ -83,79 +83,79 @@ class Context: """命令执行上下文""" command: str - """顶级指令文本""" + """顶级命令文本""" crt_command: str - """当前子指令文本""" + """当前子命令文本""" params: list """完整参数列表""" crt_params: list - """当前子指令参数列表""" + """当前子命令参数列表""" session_name: str """会话名""" text_message: str - """指令完整文本""" + """命令完整文本""" launcher_type: str - """指令发起者类型""" + """命令发起者类型""" launcher_id: int - """指令发起者ID""" + """命令发起者ID""" sender_id: int - """指令发送者ID""" + """命令发送者ID""" is_admin: bool - """[过时]指令发送者是否为管理员""" + """[过时]命令发送者是否为管理员""" privilege: int - """指令发送者权限等级""" + """命令发送者权限等级""" def __init__(self, **kwargs): self.__dict__.update(kwargs) class AbstractCommandNode: - """指令抽象类""" + """命令抽象类""" parent: type - """父指令类""" + """父命令类""" name: str - """指令名""" + """命令名""" description: str - """指令描述""" + """命令描述""" usage: str - """指令用法""" + """命令用法""" aliases: list[str] - """指令别名""" + """命令别名""" privilege: int - """指令权限等级, 权限大于等于此值的用户才能执行指令""" + """命令权限等级, 权限大于等于此值的用户才能执行命令""" @classmethod def process(cls, ctx: Context) -> tuple[bool, list]: - """指令处理函数 + """命令处理函数 - :param ctx: 指令执行上下文 + :param ctx: 命令执行上下文 :return: (是否执行, 回复列表(若执行)) - 若未执行,将自动以下一个参数查找并执行子指令 + 若未执行,将自动以下一个参数查找并执行子命令 """ raise NotImplementedError @classmethod def help(cls) -> str: - """获取指令帮助信息""" - return '指令: {}\n描述: {}\n用法: \n{}\n别名: {}\n权限: {}'.format( + """获取命令帮助信息""" + return '命令: {}\n描述: {}\n用法: \n{}\n别名: {}\n权限: {}'.format( cls.name, cls.description, cls.usage, @@ -172,11 +172,11 @@ def register( aliases: list[str] = None, privilege: int = 0 ): - """注册指令 + """注册命令 - :param cls: 指令类 - :param name: 指令名 - :param parent: 父指令类 + :param cls: 命令类 + :param name: 命令名 + :param parent: 父命令类 """ global __command_list__, __tree_index__ @@ -191,7 +191,7 @@ def wrapper(cls): logging.debug("cls: {}, name: {}, parent: {}".format(cls, name, parent)) if parent is None: - # 顶级指令注册 + # 顶级命令注册 __command_list__[name] = { 'description': cls.description, 'usage': cls.usage, @@ -208,9 +208,9 @@ def wrapper(cls): path = __tree_index__[parent.__module__ + '.' + parent.__name__] parent_node = __command_list__[path] - # 链接父子指令 + # 链接父子命令 __command_list__[path]['sub'].append(name) - # 注册子指令 + # 注册子命令 __command_list__[path + '.' + name] = { 'description': cls.description, 'usage': cls.usage, @@ -229,18 +229,18 @@ def wrapper(cls): class CommandPrivilegeError(Exception): - """指令权限不足或不存在异常""" + """命令权限不足或不存在异常""" pass # 传入Context对象,广搜命令树,返回执行结果 # 若命令被处理,返回reply列表 -# 若命令未被处理,继续执行下一级指令 +# 若命令未被处理,继续执行下一级命令 # 若命令不存在,报异常 def execute(context: Context) -> list: - """执行指令 + """执行命令 - :param ctx: 指令执行上下文 + :param ctx: 命令执行上下文 :return: 回复列表 """ @@ -249,7 +249,7 @@ def execute(context: Context) -> list: # 拷贝ctx ctx: Context = copy.deepcopy(context) - # 从树取出顶级指令 + # 从树取出顶级命令 node = __command_list__ path = ctx.command @@ -257,7 +257,7 @@ def execute(context: Context) -> list: while True: try: node = __command_list__[path] - logging.debug('执行指令: {}'.format(path)) + logging.debug('执行命令: {}'.format(path)) # 检查权限 if ctx.privilege < node['privilege']: @@ -278,7 +278,7 @@ def execute(context: Context) -> list: def register_all(): - """启动时调用此函数注册所有指令 + """启动时调用此函数注册所有命令 递归处理pkg.qqbot.cmds包下及其子包下所有模块的所有继承于AbstractCommand的类 """ @@ -304,7 +304,7 @@ def walk(module, prefix, path_prefix): else: m = __import__(module.__name__ + '.' + item.name, fromlist=['']) # for name, cls in inspect.getmembers(m, inspect.isclass): - # # 检查是否为指令类 + # # 检查是否为命令类 # if cls.__module__ == m.__name__ and issubclass(cls, AbstractCommandNode) and cls != AbstractCommandNode: # cls.register(cls, cls.name, cls.parent) @@ -313,7 +313,7 @@ def walk(module, prefix, path_prefix): def apply_privileges(): - """读取cmdpriv.json并应用指令权限""" + """读取cmdpriv.json并应用命令权限""" # 读取内容 json_str = "" with open('cmdpriv.json', 'r', encoding="utf-8") as f: diff --git a/pkg/qqbot/cmds/plugin/plugin.py b/pkg/qqbot/cmds/plugin/plugin.py index 21783fc7..1481985f 100644 --- a/pkg/qqbot/cmds/plugin/plugin.py +++ b/pkg/qqbot/cmds/plugin/plugin.py @@ -68,7 +68,7 @@ def process(cls, ctx: aamgr.Context) -> tuple[bool, list]: def closure(): try: plugin_host.install_plugin(ctx.crt_params[0]) - pkg.utils.context.get_qqbot_manager().notify_admin("插件安装成功,请发送 !reload 指令重载插件") + pkg.utils.context.get_qqbot_manager().notify_admin("插件安装成功,请发送 !reload 命令重载插件") except Exception as e: logging.error("插件安装失败:{}".format(e)) pkg.utils.context.get_qqbot_manager().notify_admin("插件安装失败:{}".format(e)) @@ -149,7 +149,7 @@ def process(cls, ctx: aamgr.Context) -> tuple[bool, list]: unin_path = plugin_host.uninstall_plugin(plugin_name) reply = ["[bot]已删除插件: {} ({}), 请发送 !reload 重载插件".format(plugin_name, unin_path)] else: - reply = ["[bot]err:未找到插件: {}, 请使用!plugin指令查看插件列表".format(plugin_name)] + reply = ["[bot]err:未找到插件: {}, 请使用!plugin命令查看插件列表".format(plugin_name)] return True, reply @@ -195,7 +195,7 @@ def process(cls, ctx: aamgr.Context) -> tuple[bool, list]: plugin_switch.dump_switch() reply = ["[bot]已{}插件: {}".format("启用" if new_status else "禁用", plugin_name)] else: - reply = ["[bot]err:未找到插件: {}, 请使用!plugin指令查看插件列表".format(plugin_name)] + reply = ["[bot]err:未找到插件: {}, 请使用!plugin命令查看插件列表".format(plugin_name)] return True, reply diff --git a/pkg/qqbot/cmds/system/cmd.py b/pkg/qqbot/cmds/system/cmd.py index 40007588..f0a33648 100644 --- a/pkg/qqbot/cmds/system/cmd.py +++ b/pkg/qqbot/cmds/system/cmd.py @@ -4,8 +4,8 @@ @aamgr.AbstractCommandNode.register( parent=None, name="cmd", - description="显示指令列表", - usage="!cmd\n!cmd <指令名称>", + description="显示命令列表", + usage="!cmd\n!cmd <命令名称>", aliases=[], privilege=1 ) @@ -17,15 +17,15 @@ def process(cls, ctx: aamgr.Context) -> tuple[bool, list]: reply = [] if len(ctx.params) == 0: - reply_str = "[bot]当前所有指令:\n\n" + reply_str = "[bot]当前所有命令:\n\n" - # 遍历顶级指令 + # 遍历顶级命令 for key in command_list: command = command_list[key] if command['parent'] is None: reply_str += "!{} - {}\n".format(key, command['description']) - reply_str += "\n请使用 !cmd <指令名称> 来查看指令的详细信息" + reply_str += "\n请使用 !cmd <命令名称> 来查看命令的详细信息" reply = [reply_str] else: @@ -33,7 +33,7 @@ def process(cls, ctx: aamgr.Context) -> tuple[bool, list]: if command_name in command_list: reply = [command_list[command_name]['cls'].help()] else: - reply = ["[bot]指令 {} 不存在".format(command_name)] + reply = ["[bot]命令 {} 不存在".format(command_name)] return True, reply \ No newline at end of file diff --git a/pkg/qqbot/cmds/system/help.py b/pkg/qqbot/cmds/system/help.py index e4580990..14027b8b 100644 --- a/pkg/qqbot/cmds/system/help.py +++ b/pkg/qqbot/cmds/system/help.py @@ -13,7 +13,7 @@ class HelpCommand(aamgr.AbstractCommandNode): @classmethod def process(cls, ctx: aamgr.Context) -> tuple[bool, list]: import tips - reply = ["[bot] "+tips.help_message + "\n请输入 !cmd 查看指令列表"] + reply = ["[bot] "+tips.help_message + "\n请输入 !cmd 查看命令列表"] # 警告config.help_message过时 import config diff --git a/pkg/qqbot/command.py b/pkg/qqbot/command.py index 8e2fe40b..dba2d204 100644 --- a/pkg/qqbot/command.py +++ b/pkg/qqbot/command.py @@ -1,4 +1,4 @@ -# 指令处理模块 +# 命令处理模块 import logging from ..qqbot.cmds import aamgr as cmdmgr @@ -9,7 +9,7 @@ def process_command(session_name: str, text_message: str, mgr, config: dict, reply = [] try: logging.info( - "[{}]发起指令:{}".format(session_name, text_message[:min(20, len(text_message))] + ( + "[{}]发起命令:{}".format(session_name, text_message[:min(20, len(text_message))] + ( "..." if len(text_message) > 20 else ""))) cmd = text_message[1:].strip().split(' ')[0] @@ -42,7 +42,7 @@ def process_command(session_name: str, text_message: str, mgr, config: dict, return reply except Exception as e: - mgr.notify_admin("{}指令执行失败:{}".format(session_name, e)) + mgr.notify_admin("{}命令执行失败:{}".format(session_name, e)) logging.exception(e) reply = ["[bot]err:{}".format(e)] diff --git a/pkg/qqbot/process.py b/pkg/qqbot/process.py index 88eaf19e..b5962701 100644 --- a/pkg/qqbot/process.py +++ b/pkg/qqbot/process.py @@ -84,7 +84,7 @@ def process_message(launcher_type: str, launcher_id: int, text_message: str, mes processing.append(session_name) try: msg_type = '' - if text_message.startswith('!') or text_message.startswith("!"): # 指令 + if text_message.startswith('!') or text_message.startswith("!"): # 命令 msg_type = 'command' # 触发插件事件 args = { diff --git a/pkg/utils/reloader.py b/pkg/utils/reloader.py index e0029af6..eefe33b0 100644 --- a/pkg/utils/reloader.py +++ b/pkg/utils/reloader.py @@ -28,7 +28,7 @@ def reload_all(notify=True): import main main.stop() - # 删除所有已注册的指令 + # 删除所有已注册的命令 import pkg.qqbot.cmds.aamgr as cmdsmgr cmdsmgr.__command_list__ = {} cmdsmgr.__tree_index__ = {} diff --git a/tips-custom-template.py b/tips-custom-template.py index 639751d2..129f957f 100644 --- a/tips-custom-template.py +++ b/tips-custom-template.py @@ -14,7 +14,7 @@ # 若设置为空字符串,则不发送提示信息 message_drop_tip = "[bot]当前有一条消息正在处理,请等待处理完成" -# 指令!help帮助消息 +# 命令 !help帮助消息 help_message = """此机器人通过调用大型语言模型生成回复,不具有情感。 你可以用自然语言与其交流,回复的消息中[GPT]开头的为模型生成的语言,[bot]开头的为程序提示。 欢迎到github.com/RockChinQ/QChatGPT 给个star""" @@ -24,10 +24,10 @@ # 群聊消息超时提示 replys_message = "[bot]err:请求超时" -# 指令权限不足提示 +# 命令权限不足提示 command_admin_message = "[bot]err:权限不足: " -# 指令无效提示 -command_err_message = "[bot]err:指令不存在:" +# 命令无效提示 +command_err_message = "[bot]err:命令不存在:" # 会话重置提示 command_reset_message = "[bot]会话已重置"