测试prompt

pull/914/head
Bakadax 2025-04-30 22:03:19 +08:00
parent d76bd95159
commit 9d28c3660d
2 changed files with 35 additions and 9 deletions

View File

@ -1,11 +1,10 @@
# GroupNickname/nickname_processor.py
import asyncio
import traceback
from multiprocessing import Process, Queue as mpQueue, Event
from typing import Dict, Optional
from pymongo import MongoClient
from pymongo.errors import ConnectionFailure, OperationFailure
from pymongo.errors import OperationFailure
from src.common.logger_manager import get_logger # 导入日志管理器
from src.config.config import global_config # 导入全局配置
@ -179,7 +178,6 @@ async def _nickname_processing_loop(queue: mpQueue, stop_event):
logger.info("绰号处理循环已启动。")
while not stop_event.is_set():
logger.info("绰号处理循环正在运行...")
try:
if not queue.empty():
item = queue.get()

View File

@ -229,13 +229,8 @@ class PromptBuilder:
if global_config.ENABLE_NICKNAME_MAPPING and chat_stream.group_info:
try:
group_id = str(chat_stream.group_info.group_id)
# 提取上下文中的用户 ID (需要 message_list_before_now 变量在此可用)
# 假设 message_list_before_now 在此函数作用域内可用
user_ids_in_context = set()
# !!! 注意: 确保 message_list_before_now 在这里是可访问的 !!!
# 如果不是,你需要从 chat_stream 或其他地方重新获取或传递它
# 假设 message_list_before_now 存在
if 'message_list_before_now' in locals() or 'message_list_before_now' in globals():
if message_list_before_now:
for msg in message_list_before_now:
sender_id = msg.get('sender_id')
if sender_id:
@ -259,6 +254,7 @@ class PromptBuilder:
except Exception as e:
logger.error(f"Error getting or formatting nickname info for focus prompt: {e}", exc_info=True)
logger.debug(f"-------------------nickname_injection_str_______________________\n{nickname_injection_str}\n\n")
prompt = await global_prompt_manager.format_prompt(
"heart_flow_prompt",
@ -415,6 +411,38 @@ class PromptBuilder:
else:
schedule_prompt = ""
# 注入绰号信息
nickname_injection_str = ""
if global_config.ENABLE_NICKNAME_MAPPING and chat_stream.group_info:
try:
group_id = str(chat_stream.group_info.group_id)
user_ids_in_context = set()
if message_list_before_now:
for msg in message_list_before_now:
sender_id = msg.get('sender_id')
if sender_id:
user_ids_in_context.add(str(sender_id))
else:
logger.warning("Variable 'message_list_before_now' not found for nickname injection in focus prompt.")
if user_ids_in_context:
platform = chat_stream.platform
# --- 调用批量获取群组绰号的方法 ---
all_nicknames_data = await relationship_manager.get_users_group_nicknames(
platform, list(user_ids_in_context), group_id
)
if all_nicknames_data:
selected_nicknames = select_nicknames_for_prompt(all_nicknames_data)
nickname_injection_str = format_nickname_prompt_injection(selected_nicknames)
if nickname_injection_str:
logger.debug(f"Injecting nickname info into focus prompt:\n{nickname_injection_str}")
except Exception as e:
logger.error(f"Error getting or formatting nickname info for focus prompt: {e}", exc_info=True)
logger.debug(f"-------------------nickname_injection_str_______________________\n{nickname_injection_str}\n\n")
prompt = await global_prompt_manager.format_prompt(
"reasoning_prompt_main",
relation_prompt=relation_prompt,