From a6e1a0e7d3e20b123b29ae06817e2c980614c797 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Sat, 27 Dec 2025 17:48:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=8F=AF=E6=B7=BB=E5=8A=A0=E7=9A=84?= =?UTF-8?q?=E8=AF=84=E4=BC=B0=E6=A0=87=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bw_learner/expression_auto_check_task.py | 24 ++++++++++++++++---- src/config/official_configs.py | 8 +++++++ template/bot_config_template.toml | 3 ++- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/bw_learner/expression_auto_check_task.py b/src/bw_learner/expression_auto_check_task.py index 028604c1..4827faa8 100644 --- a/src/bw_learner/expression_auto_check_task.py +++ b/src/bw_learner/expression_auto_check_task.py @@ -34,15 +34,31 @@ def create_evaluation_prompt(situation: str, style: str) -> str: Returns: 评估提示词 """ + # 基础评估标准 + base_criteria = [ + "表达方式或言语风格 是否与使用条件或使用情景 匹配", + "允许部分语法错误或口头化或缺省出现", + "表达方式不能太过特指,需要具有泛用性", + "一般不涉及具体的人名或名称" + ] + + # 从配置中获取额外的自定义标准 + custom_criteria = global_config.expression.expression_auto_check_custom_criteria + + # 合并所有评估标准 + all_criteria = base_criteria.copy() + if custom_criteria: + all_criteria.extend(custom_criteria) + + # 构建评估标准列表字符串 + criteria_list = "\n".join([f"{i+1}. {criterion}" for i, criterion in enumerate(all_criteria)]) + prompt = f"""请评估以下表达方式或语言风格以及使用条件或使用情景是否合适: 使用条件或使用情景:{situation} 表达方式或言语风格:{style} 请从以下方面进行评估: -1. 表达方式或言语风格 是否与使用条件或使用情景 匹配 -2. 允许部分语法错误或口头化或缺省出现 -3. 表达方式不能太过特指,需要具有泛用性 -4. 一般不涉及具体的人名或名称 +{criteria_list} 请以JSON格式输出评估结果: {{ diff --git a/src/config/official_configs.py b/src/config/official_configs.py index e02a5afb..791c0f3e 100644 --- a/src/config/official_configs.py +++ b/src/config/official_configs.py @@ -373,6 +373,14 @@ class ExpressionConfig(ConfigBase): 默认值:10条 """ + expression_auto_check_custom_criteria: list[str] = field(default_factory=list) + """ + 表达方式自动检查的额外自定义评估标准 + 格式: ["标准1", "标准2", "标准3", ...] + 这些标准会被添加到评估提示词中,作为额外的评估要求 + 默认值:空列表 + """ + def _parse_stream_config_to_chat_id(self, stream_config_str: str) -> Optional[str]: """ 解析流配置字符串并生成对应的 chat_id diff --git a/template/bot_config_template.toml b/template/bot_config_template.toml index ee80feee..8c8ca8c8 100644 --- a/template/bot_config_template.toml +++ b/template/bot_config_template.toml @@ -1,5 +1,5 @@ [inner] -version = "7.3.0" +version = "7.3.1" #----以下是给开发人员阅读的,如果你只是部署了麦麦,不需要阅读---- # 如果你想要修改配置文件,请递增version的值 @@ -96,6 +96,7 @@ expression_checked_only = true # 是否仅选择已检查且未拒绝的表达 expression_self_reflect = true # 是否启用自动表达优化(Bot主动向管理员询问表达方式是否合适) expression_auto_check_interval = 600 # 表达方式自动检查的间隔时间(单位:秒),默认值:3600秒(1小时) expression_auto_check_count = 20 # 每次自动检查时随机选取的表达方式数量,默认值:10条 +expression_auto_check_custom_criteria = [] # 表达方式自动检查的额外自定义评估标准,格式:["标准1", "标准2", "标准3", ...],这些标准会被添加到评估提示词中,作为额外的评估要求 expression_manual_reflect = false # 是否启用手动表达优化(Bot主动向管理员询问表达方式是否合适) manual_reflect_operator_id = "" # 手动表达优化操作员ID,格式:platform:id:type (例如 "qq:123456:private" 或 "qq:654321:group")