Merge pull request #1154 from Yi-Lyu/master

将微信消息时间戳传递给 dify,便于 dify 通过消息时间戳来做业务逻辑。
This commit is contained in:
Junyan Qin (Chin)
2025-03-02 20:21:08 +08:00
committed by GitHub
4 changed files with 26 additions and 5 deletions

View File

@@ -77,7 +77,7 @@ class DingTalkEventConverter(adapter.EventConverter):
remark=""
),
message_chain = message_chain,
time = datetime.datetime.now(),
time = event.incoming_message.create_at,
source_platform_object=event,
)
elif event.conversation == 'GroupMessage':
@@ -95,7 +95,7 @@ class DingTalkEventConverter(adapter.EventConverter):
last_speak_timestamp=0,
mute_time_remaining=0
)
time = datetime.datetime.now(),
time = event.incoming_message.create_at
return platform_events.GroupMessage(
sender =sender,
message_chain = message_chain,

View File

@@ -74,7 +74,11 @@ class QQOfficialEventConverter(adapter.EventConverter):
remark = "",
)
return platform_events.FriendMessage(
sender = friend,message_chain = yiri_chain,time = event.timestamp,
sender = friend,message_chain = yiri_chain,time = int(
datetime.datetime.strptime(
event.timestamp, "%Y-%m-%dT%H:%M:%S%z"
).timestamp()
),
source_platform_object=event
)
@@ -105,7 +109,11 @@ class QQOfficialEventConverter(adapter.EventConverter):
last_speak_timestamp=0,
mute_time_remaining=0
)
time = event.timestamp
time = int(
datetime.datetime.strptime(
event.timestamp, "%Y-%m-%dT%H:%M:%S%z"
).timestamp()
)
return platform_events.GroupMessage(
sender = sender,
message_chain=yiri_chain,
@@ -128,7 +136,11 @@ class QQOfficialEventConverter(adapter.EventConverter):
last_speak_timestamp=0,
mute_time_remaining=0
)
time = event.timestamp,
time = int(
datetime.datetime.strptime(
event.timestamp, "%Y-%m-%dT%H:%M:%S%z"
).timestamp()
),
return platform_events.GroupMessage(
sender =sender,
message_chain = yiri_chain,

View File

@@ -57,6 +57,9 @@ class MessageEvent(Event):
message_chain: platform_message.MessageChain
"""消息内容。"""
time: float | None = None
"""消息发送时间戳。"""
source_platform_object: typing.Optional[typing.Any] = None
"""原消息平台对象。
供消息平台适配器开发者使用,如果回复用户时需要使用原消息事件对象的信息,

View File

@@ -5,6 +5,7 @@ import json
import uuid
import re
import base64
import datetime
import aiohttp
@@ -69,6 +70,7 @@ class DifyServiceAPIRunner(runner.RequestRunner):
"""
plain_text = ""
image_ids = []
if isinstance(query.user_message.content, list):
for ce in query.user_message.content:
if ce.type == "text":
@@ -230,6 +232,9 @@ class DifyServiceAPIRunner(runner.RequestRunner):
plain_text, image_ids = await self._preprocess_user_message(query)
# 尝试获取 CreateTime
create_time = int(query.message_event.time) if query.message_event.time else int(datetime.datetime.now().timestamp())
files = [
{
"type": "image",
@@ -246,6 +251,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_create_time": create_time,
},
user=f"{query.session.launcher_type.value}_{query.session.launcher_id}",
files=files,