Merge branch 'Mai-with-u:dev' into dev
This commit is contained in:
@@ -15,7 +15,7 @@ from .context_messages import LLMContextMessage, SessionBackedMessage
|
|||||||
logger = get_logger("maisaka_chat_history_visual_refresher")
|
logger = get_logger("maisaka_chat_history_visual_refresher")
|
||||||
|
|
||||||
BuildHistoryMessage = Callable[[SessionMessage, str], Awaitable[Optional[LLMContextMessage]]]
|
BuildHistoryMessage = Callable[[SessionMessage, str], Awaitable[Optional[LLMContextMessage]]]
|
||||||
BuildVisibleText = Callable[[SessionMessage], str]
|
BuildVisibleText = Callable[[SessionMessage, str], str]
|
||||||
|
|
||||||
|
|
||||||
async def refresh_chat_history_visual_placeholders(
|
async def refresh_chat_history_visual_placeholders(
|
||||||
@@ -42,7 +42,7 @@ async def refresh_chat_history_visual_placeholders(
|
|||||||
enable_voice_transcription=False,
|
enable_voice_transcription=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
refreshed_visible_text = build_visible_text(original_message)
|
refreshed_visible_text = build_visible_text(original_message, history_message.source_kind)
|
||||||
if not visual_components_updated and refreshed_visible_text == history_message.visible_text:
|
if not visual_components_updated and refreshed_visible_text == history_message.visible_text:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ from src.common.data_models.message_component_data_model import (
|
|||||||
from src.llm_models.payload_content.message import Message, MessageBuilder, RoleType
|
from src.llm_models.payload_content.message import Message, MessageBuilder, RoleType
|
||||||
from src.llm_models.payload_content.tool_option import ToolCall
|
from src.llm_models.payload_content.tool_option import ToolCall
|
||||||
|
|
||||||
|
from .message_adapter import parse_speaker_content
|
||||||
|
|
||||||
FORWARD_PREVIEW_LIMIT = 4
|
FORWARD_PREVIEW_LIMIT = 4
|
||||||
|
|
||||||
|
|
||||||
@@ -356,6 +358,13 @@ class SessionBackedMessage(LLMContextMessage):
|
|||||||
return self.source_kind
|
return self.source_kind
|
||||||
|
|
||||||
def to_llm_message(self, enable_visual_message: bool = True) -> Optional[Message]:
|
def to_llm_message(self, enable_visual_message: bool = True) -> Optional[Message]:
|
||||||
|
if self.source_kind == "guided_reply":
|
||||||
|
_, reply_body = parse_speaker_content(self.processed_plain_text)
|
||||||
|
normalized_reply_body = reply_body.strip()
|
||||||
|
if not normalized_reply_body:
|
||||||
|
return None
|
||||||
|
return MessageBuilder().set_role(RoleType.Assistant).add_text_content(normalized_reply_body).build()
|
||||||
|
|
||||||
return _build_message_from_sequence(
|
return _build_message_from_sequence(
|
||||||
RoleType.User,
|
RoleType.User,
|
||||||
self.raw_message,
|
self.raw_message,
|
||||||
|
|||||||
@@ -724,7 +724,7 @@ class MaisakaReasoningEngine:
|
|||||||
"""根据真实消息构造对应的上下文消息。"""
|
"""根据真实消息构造对应的上下文消息。"""
|
||||||
|
|
||||||
source_sequence = message.raw_message
|
source_sequence = message.raw_message
|
||||||
visible_text = self._build_legacy_visible_text(message, source_sequence)
|
visible_text = self._build_legacy_visible_text(message, source_sequence, source_kind=source_kind)
|
||||||
planner_prefix = build_planner_user_prefix_from_session_message(message)
|
planner_prefix = build_planner_user_prefix_from_session_message(message)
|
||||||
if contains_complex_message(source_sequence):
|
if contains_complex_message(source_sequence):
|
||||||
return ComplexSessionMessage.from_session_message(
|
return ComplexSessionMessage.from_session_message(
|
||||||
@@ -783,11 +783,25 @@ class MaisakaReasoningEngine:
|
|||||||
message,
|
message,
|
||||||
source_kind=source_kind,
|
source_kind=source_kind,
|
||||||
),
|
),
|
||||||
build_visible_text=lambda message: self._build_legacy_visible_text(message, message.raw_message),
|
build_visible_text=lambda message, source_kind: self._build_legacy_visible_text(
|
||||||
|
message,
|
||||||
|
message.raw_message,
|
||||||
|
source_kind=source_kind,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
def _build_legacy_visible_text(self, message: SessionMessage, source_sequence: MessageSequence) -> str:
|
def _build_legacy_visible_text(
|
||||||
return build_session_message_visible_text(message, source_sequence)
|
self,
|
||||||
|
message: SessionMessage,
|
||||||
|
source_sequence: MessageSequence,
|
||||||
|
*,
|
||||||
|
source_kind: str = "user",
|
||||||
|
) -> str:
|
||||||
|
return build_session_message_visible_text(
|
||||||
|
message,
|
||||||
|
source_sequence,
|
||||||
|
include_reply_components=source_kind != "guided_reply",
|
||||||
|
)
|
||||||
|
|
||||||
def _insert_chat_history_message(self, message: LLMContextMessage) -> int:
|
def _insert_chat_history_message(self, message: LLMContextMessage) -> int:
|
||||||
"""将消息按处理顺序追加到聊天历史末尾。"""
|
"""将消息按处理顺序追加到聊天历史末尾。"""
|
||||||
|
|||||||
Reference in New Issue
Block a user