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