feat:新增一个状态面板,使私聊不报错
This commit is contained in:
@@ -8,7 +8,7 @@ import re
|
||||
from typing import List, Optional, Dict, Any, Tuple
|
||||
from datetime import datetime
|
||||
from src.common.logger import get_logger
|
||||
from src.common.data_models.info_data_model import ActionPlannerInfo
|
||||
from src.common.data_models.planned_action_data_models import PlannedAction
|
||||
from src.common.data_models.llm_data_model import LLMGenerationDataModel
|
||||
from src.config.config import global_config
|
||||
from src.services.llm_service import LLMServiceClient
|
||||
@@ -65,7 +65,7 @@ class DefaultReplyer:
|
||||
extra_info: str = "",
|
||||
reply_reason: str = "",
|
||||
available_actions: Optional[Dict[str, ActionInfo]] = None,
|
||||
chosen_actions: Optional[List[ActionPlannerInfo]] = None,
|
||||
chosen_actions: Optional[List[PlannedAction]] = None,
|
||||
from_plugin: bool = True,
|
||||
stream_id: Optional[str] = None,
|
||||
reply_message: Optional[SessionMessage] = None,
|
||||
@@ -509,7 +509,7 @@ class DefaultReplyer:
|
||||
return ""
|
||||
|
||||
async def build_actions_prompt(
|
||||
self, available_actions: Dict[str, ActionInfo], chosen_actions_info: Optional[List[ActionPlannerInfo]] = None
|
||||
self, available_actions: Dict[str, ActionInfo], chosen_actions_info: Optional[List[PlannedAction]] = None
|
||||
) -> str:
|
||||
"""构建动作提示"""
|
||||
|
||||
@@ -527,14 +527,14 @@ class DefaultReplyer:
|
||||
chosen_action_descriptions = ""
|
||||
if chosen_actions_info:
|
||||
for action_plan_info in chosen_actions_info:
|
||||
action_name = action_plan_info.action_type
|
||||
action_name = action_plan_info.action_name
|
||||
if action_name in skip_names:
|
||||
continue
|
||||
action_description: str = "无描述"
|
||||
reasoning: str = "无原因"
|
||||
if action := available_actions.get(action_name):
|
||||
action_description = action.description or action_description
|
||||
reasoning = action_plan_info.reasoning or reasoning
|
||||
reasoning = action_plan_info.decision_reason or reasoning
|
||||
|
||||
chosen_action_descriptions += f"- {action_name}: {action_description},原因:{reasoning}\n"
|
||||
|
||||
@@ -673,7 +673,7 @@ class DefaultReplyer:
|
||||
extra_info: str = "",
|
||||
reply_reason: str = "",
|
||||
available_actions: Optional[Dict[str, ActionInfo]] = None,
|
||||
chosen_actions: Optional[List[ActionPlannerInfo]] = None,
|
||||
chosen_actions: Optional[List[PlannedAction]] = None,
|
||||
reply_time_point: float = time.time(),
|
||||
think_level: int = 1,
|
||||
unknown_words: Optional[List[str]] = None,
|
||||
|
||||
@@ -20,7 +20,7 @@ from src.services.embedding_service import EmbeddingServiceClient
|
||||
from .typo_generator import ChineseTypoGenerator
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from src.common.data_models.info_data_model import TargetPersonInfo
|
||||
from src.common.data_models.chat_target_info_data_model import ChatTargetInfo
|
||||
|
||||
logger = get_logger("chat_utils")
|
||||
_warned_unconfigured_platforms: set[str] = set()
|
||||
@@ -699,7 +699,7 @@ def translate_timestamp_to_human_readable(timestamp: float, mode: str = "normal"
|
||||
return time.strftime("%H:%M:%S", time.localtime(timestamp))
|
||||
|
||||
|
||||
def get_chat_type_and_target_info(chat_id: str) -> Tuple[bool, Optional["TargetPersonInfo"]]:
|
||||
def get_chat_type_and_target_info(chat_id: str) -> Tuple[bool, Optional["ChatTargetInfo"]]:
|
||||
"""
|
||||
获取聊天类型(是否群聊)和私聊对象信息。
|
||||
|
||||
@@ -734,13 +734,13 @@ def get_chat_type_and_target_info(chat_id: str) -> Tuple[bool, Optional["TargetP
|
||||
):
|
||||
user_nickname = chat_stream.context.message.message_info.user_info.user_nickname
|
||||
|
||||
from src.common.data_models.info_data_model import TargetPersonInfo # 解决循环导入问题
|
||||
from src.common.data_models.chat_target_info_data_model import ChatTargetInfo # 解决循环导入问题
|
||||
|
||||
# Initialize target_info with basic info
|
||||
target_info = TargetPersonInfo(
|
||||
target_info = ChatTargetInfo(
|
||||
platform=platform,
|
||||
user_id=user_id,
|
||||
user_nickname=user_nickname, # type: ignore
|
||||
session_nickname=user_nickname or "",
|
||||
person_id=None,
|
||||
person_name=None,
|
||||
)
|
||||
@@ -752,6 +752,7 @@ def get_chat_type_and_target_info(chat_id: str) -> Tuple[bool, Optional["TargetP
|
||||
logger.warning(f"用户 {user_nickname} 尚未认识")
|
||||
# 如果用户尚未认识,则返回False和None
|
||||
return False, None
|
||||
target_info.is_known = True
|
||||
if person.person_id:
|
||||
target_info.person_id = person.person_id
|
||||
target_info.person_name = person.person_name
|
||||
|
||||
Reference in New Issue
Block a user