From 63af866e3d8b1f7d5a649592fb8965e515007056 Mon Sep 17 00:00:00 2001 From: tt-P607 <68868379+tt-P607@users.noreply.github.com> Date: Thu, 23 Oct 2025 21:48:29 +0800 Subject: [PATCH] =?UTF-8?q?feat(plan):=20=E4=B8=BA=E6=9C=88=E5=BA=A6?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E6=B7=BB=E5=8A=A0=E8=BD=AF=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E7=8A=B6=E6=80=81=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为 `MonthlyPlan` 数据库模型增加 `is_deleted` 字段,以支持软删除功能,避免数据直接丢失。 同时,统一并优化了注入到AI上下文中的当前日程活动提示词,指导模型仅在被直接询问时才提及自身状态,使对话更加自然流畅。 --- src/chat/replyer/default_generator.py | 8 ++++---- src/common/database/sqlalchemy_models.py | 1 + src/plugins/built_in/affinity_flow_chatter/plan_filter.py | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/chat/replyer/default_generator.py b/src/chat/replyer/default_generator.py index 0a41f0f0b..2f1a5a25b 100644 --- a/src/chat/replyer/default_generator.py +++ b/src/chat/replyer/default_generator.py @@ -1506,15 +1506,15 @@ class DefaultReplyer: f"计划时间从{start_time.strftime('%H:%M')}到{end_time.strftime('%H:%M')}。" f"这项活动已经开始了{duration_minutes:.0f}分钟," f"预计还有{remaining_minutes:.0f}分钟结束。" - "(日程只是提醒,你可以根据聊天内容灵活安排时间)" + "(此为你的当前状态,仅供参考。除非被直接询问,否则不要在对话中主动提及。)" ) else: - schedule_block = f"你当前正在:{activity}。" + schedule_block = f'你当前正在进行“{activity}”。(此为你的当前状态,仅供参考。除非被直接询问,否则不要在对话中主动提及。)' except (ValueError, AttributeError): - schedule_block = f"你当前正在:{activity}。" + schedule_block = f'你当前正在进行“{activity}”。(此为你的当前状态,仅供参考。除非被直接询问,否则不要在对话中主动提及。)' else: - schedule_block = f"你当前正在:{activity}。" + schedule_block = f'你当前正在进行“{activity}”。(此为你的当前状态,仅供参考。除非被直接询问,否则不要在对话中主动提及。)' moderation_prompt_block = ( "请不要输出违法违规内容,不要输出色情,暴力,政治相关内容,如有敏感内容,请规避。" diff --git a/src/common/database/sqlalchemy_models.py b/src/common/database/sqlalchemy_models.py index 5cabdd542..4d8046e16 100644 --- a/src/common/database/sqlalchemy_models.py +++ b/src/common/database/sqlalchemy_models.py @@ -654,6 +654,7 @@ class MonthlyPlan(Base): usage_count: Mapped[int] = mapped_column(Integer, nullable=False, default=0) last_used_date: Mapped[str | None] = mapped_column(String(10), nullable=True, index=True) created_at: Mapped[datetime.datetime] = mapped_column(DateTime, nullable=False, default=datetime.datetime.now) + is_deleted: Mapped[bool] = mapped_column(Boolean, nullable=False, default=False, index=True) __table_args__ = ( Index("idx_monthlyplan_target_month_status", "target_month", "status"), diff --git a/src/plugins/built_in/affinity_flow_chatter/plan_filter.py b/src/plugins/built_in/affinity_flow_chatter/plan_filter.py index df63716e6..b4dd62402 100644 --- a/src/plugins/built_in/affinity_flow_chatter/plan_filter.py +++ b/src/plugins/built_in/affinity_flow_chatter/plan_filter.py @@ -158,7 +158,7 @@ class ChatterPlanFilter: if global_config.planning_system.schedule_enable: if activity_info := schedule_manager.get_current_activity(): activity = activity_info.get("activity", "未知活动") - schedule_block = f"你当前正在:{activity},但注意它与群聊的聊天无关。" + schedule_block = f'你当前正在进行“{activity}”。(此为你的当前状态,仅供参考。除非被直接询问,否则不要在对话中主动提及。)' mood_block = "" # 需要情绪模块打开才能获得情绪,否则会引发报错