优化表情包删除逻辑,确保成功删除记录后返回正确的结果。同时,更新聊天提示模板,新增日程和心情信息,以提升聊天互动的自然性和趣味性(希望能更好的回复)
This commit is contained in:
@@ -210,7 +210,9 @@ class MaiEmoji:
|
||||
logger.warning(f"[删除] 数据库中未找到哈希值为 {self.hash} 的表情包记录。")
|
||||
result = 0 # Indicate no DB record was deleted
|
||||
else:
|
||||
result = will_delete_emoji.delete_instance() # Returns the number of rows deleted.
|
||||
session.delete(will_delete_emoji)
|
||||
session.commit()
|
||||
result = 1 # Successfully deleted one record
|
||||
except Exception as e:
|
||||
logger.error(f"[错误] 删除数据库记录时出错: {str(e)}")
|
||||
result = 0
|
||||
|
||||
@@ -21,7 +21,8 @@ from src.chat.planner_actions.action_manager import ActionManager
|
||||
from src.chat.message_receive.chat_stream import get_chat_manager
|
||||
from src.plugin_system.base.component_types import ActionInfo, ChatMode, ComponentType
|
||||
from src.plugin_system.core.component_registry import component_registry
|
||||
|
||||
from src.common.schedule_manager import schedule_manager
|
||||
from src.mood.mood_manager import mood_manager
|
||||
logger = get_logger("planner")
|
||||
|
||||
install(extra_lines=3)
|
||||
@@ -29,10 +30,26 @@ install(extra_lines=3)
|
||||
|
||||
def init_prompt():
|
||||
Prompt(
|
||||
"""
|
||||
"""
|
||||
{schedule_block}
|
||||
{mood_block}
|
||||
{time_block}
|
||||
{identity_block}
|
||||
你现在需要根据聊天内容,选择的合适的action来参与聊天。
|
||||
你的核心任务是积极地在对话中寻找参与机会,像一个真正的群成员一样,自然地融入并活跃气氛。你的目标是让对话更有趣、更顺畅。
|
||||
|
||||
判断标准如下(重要性依次递减):
|
||||
1. **直接互动**:当有人直接 @你、回复你、或明确提到你的名字 {bot_name} 时,你应该优先回应。
|
||||
2. **扩展对话**:
|
||||
* 当讨论的话题与你的知识、身份或兴趣相关时,积极分享你的见解。
|
||||
* 当用户的言论中透露出求助、困惑、好奇或强烈情绪时,主动提供帮助、解答或表达关心。
|
||||
* 当对话出现模糊的观点或不明确的信息时,可以主动提问,寻求澄清。
|
||||
3. **主动引导**:
|
||||
* 如果对话陷入长时间的沉默或冷场,你可以主动开启一个你认为大家可能感兴趣的新话题。
|
||||
* 可以适时分享一些有趣的事实、笑话或与当前氛围相符的内容。
|
||||
4. **发言边界与时机 (Speaking Boundaries and Timing)**:
|
||||
* **保持礼貌距离**:避免在短时间内连续发言,给他人留出空间。如果对话节奏过快或话题非常私人,选择观察而非强行加入。
|
||||
|
||||
根据以上判断,选择最合适的action来参与聊天。
|
||||
{chat_context_description},以下是具体的聊天内容
|
||||
{chat_content_block}
|
||||
|
||||
@@ -328,6 +345,18 @@ class ActionPlanner:
|
||||
|
||||
action_options_block = ""
|
||||
|
||||
# 先定义 schedule_block 和 mood_block,这些在主模板中需要使用
|
||||
schedule_block = ""
|
||||
if global_config.schedule.enable:
|
||||
current_activity = schedule_manager.get_current_activity()
|
||||
if current_activity:
|
||||
schedule_block = f"你当前正在:{current_activity}。"
|
||||
|
||||
mood_block = ""
|
||||
if global_config.mood.enable_mood:
|
||||
chat_mood = mood_manager.get_mood_by_chat_id(self.chat_id)
|
||||
mood_block = f"你现在的心情是:{chat_mood.mood_state}"
|
||||
|
||||
for using_actions_name, using_actions_info in current_available_actions.items():
|
||||
if using_actions_info.action_parameters:
|
||||
param_text = "\n"
|
||||
@@ -344,6 +373,8 @@ class ActionPlanner:
|
||||
|
||||
using_action_prompt = await global_prompt_manager.get_prompt_async("action_prompt")
|
||||
using_action_prompt = using_action_prompt.format(
|
||||
schedule_block=schedule_block,
|
||||
mood_block=mood_block,
|
||||
action_name=using_actions_name,
|
||||
action_description=using_actions_info.description,
|
||||
action_parameters=param_text,
|
||||
@@ -367,6 +398,8 @@ class ActionPlanner:
|
||||
|
||||
planner_prompt_template = await global_prompt_manager.get_prompt_async("planner_prompt")
|
||||
prompt = planner_prompt_template.format(
|
||||
schedule_block=schedule_block,
|
||||
mood_block=mood_block,
|
||||
time_block=time_block,
|
||||
by_what=by_what,
|
||||
chat_context_description=chat_context_description,
|
||||
@@ -376,6 +409,7 @@ class ActionPlanner:
|
||||
action_options_text=action_options_block,
|
||||
moderation_prompt=moderation_prompt_block,
|
||||
identity_block=identity_block,
|
||||
bot_name=bot_name,
|
||||
)
|
||||
return prompt, message_id_list
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user