mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-02 12:05:54 +00:00
feat: enhance user message preprocessing to include message creation timestamp
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user