diff --git a/pkg/provider/runners/difysvapi.py b/pkg/provider/runners/difysvapi.py index 9db1e98f..5d1e4f2b 100644 --- a/pkg/provider/runners/difysvapi.py +++ b/pkg/provider/runners/difysvapi.py @@ -61,7 +61,7 @@ class DifyServiceAPIRunner(runner.RequestRunner): async def _preprocess_user_message( self, query: core_entities.Query - ) -> tuple[str, list[str]]: + ) -> tuple[str, list[str], int | None]: """预处理用户消息,提取纯文本,并将图片上传到 Dify 服务 Returns: @@ -69,6 +69,18 @@ class DifyServiceAPIRunner(runner.RequestRunner): """ plain_text = "" image_ids = [] + + # 尝试获取 CreateTime + create_time = None + try: + timestamp = query.message_event.source_platform_object.get('Data', {}).get('CreateTime') + # 确保 timestamp 是整数类型 + if isinstance(timestamp, (int, float)): + create_time = int(timestamp) + except AttributeError: + # 如果获取过程中发生属性错误,保持 create_time 为 None + pass + if isinstance(query.user_message.content, list): for ce in query.user_message.content: if ce.type == "text": @@ -86,7 +98,7 @@ class DifyServiceAPIRunner(runner.RequestRunner): elif isinstance(query.user_message.content, str): plain_text = query.user_message.content - return plain_text, image_ids + return plain_text, image_ids, create_time async def _chat_messages( self, query: core_entities.Query @@ -94,7 +106,7 @@ class DifyServiceAPIRunner(runner.RequestRunner): """调用聊天助手""" cov_id = query.session.using_conversation.uuid or "" - plain_text, image_ids = await self._preprocess_user_message(query) + plain_text, image_ids, _ = await self._preprocess_user_message(query) files = [ { @@ -147,7 +159,7 @@ class DifyServiceAPIRunner(runner.RequestRunner): """调用聊天助手""" cov_id = query.session.using_conversation.uuid or "" - plain_text, image_ids = await self._preprocess_user_message(query) + plain_text, image_ids, _ = await self._preprocess_user_message(query) files = [ { @@ -228,7 +240,7 @@ class DifyServiceAPIRunner(runner.RequestRunner): cov_id = query.session.using_conversation.uuid - plain_text, image_ids = await self._preprocess_user_message(query) + plain_text, image_ids, timestamp = await self._preprocess_user_message(query) files = [ { @@ -246,6 +258,7 @@ class DifyServiceAPIRunner(runner.RequestRunner): "langbot_user_message_text": plain_text, "langbot_session_id": f"{query.session.launcher_type.value}_{query.session.launcher_id}", "langbot_conversation_id": cov_id, + "langbot_msg_timestamp": timestamp, }, user=f"{query.session.launcher_type.value}_{query.session.launcher_id}", files=files,