fix: in the MessageChunk add msg_sequence ,And obtain the usage in the adapter.

This commit is contained in:
Dong_master
2025-08-12 23:20:41 +08:00
parent dbf0200cca
commit 99fcde1586
5 changed files with 28 additions and 14 deletions
+4 -4
View File
@@ -108,7 +108,7 @@ class DingTalkAdapter(adapter.MessagePlatformAdapter):
self.ap = ap
self.logger = logger
self.card_instance_id_dict = {}
self.seq = 1
# self.seq = 1
required_keys = [
'client_id',
'client_secret',
@@ -159,9 +159,9 @@ class DingTalkAdapter(adapter.MessagePlatformAdapter):
# msg_id = incoming_message.message_id
message_id = bot_message.resp_message_id
self.seq += 1
msg_seq = bot_message.msg_sequence
if (self.seq - 1) % 8 == 0 or is_final:
if (msg_seq - 1) % 8 == 0 or is_final:
content, at = await DingTalkMessageConverter.yiri2target(message)
@@ -169,7 +169,7 @@ class DingTalkAdapter(adapter.MessagePlatformAdapter):
# print(card_instance_id)
await self.bot.send_card_message(card_instance, card_instance_id, content, is_final)
if is_final and bot_message.tool_calls is None:
self.seq = 1 # 消息回复结束之后重置seq
# self.seq = 1 # 消息回复结束之后重置seq
self.card_instance_id_dict.pop(message_id) # 消息回复结束之后删除卡片实例id
async def send_message(self, target_type: str, target_id: str, message: platform_message.MessageChain):
+6 -5
View File
@@ -439,7 +439,7 @@ class LarkAdapter(adapter.MessagePlatformAdapter):
"body": {"direction": "vertical", "padding": "12px 12px 12px 12px", "elements": [{"tag": "div",
"text": {
"tag": "plain_text",
"content": "Langbot",
"content": "LangBot",
"text_size": "normal",
"text_align": "left",
"text_color": "default"},
@@ -681,9 +681,10 @@ class LarkAdapter(adapter.MessagePlatformAdapter):
"""
回复消息变成更新卡片消息
"""
self.seq += 1
# self.seq += 1
message_id = bot_message.resp_message_id
if self.seq % 8 == 0 or is_final:
msg_seq = bot_message.msg_sequence
if msg_seq % 8 == 0 or is_final:
lark_message = await self.message_converter.yiri2target(message, self.api_client)
@@ -708,14 +709,14 @@ class LarkAdapter(adapter.MessagePlatformAdapter):
ContentCardElementRequestBody.builder()
# .uuid("a0d69e20-1dd1-458b-k525-dfeca4015204")
.content(text_message)
.sequence(self.seq)
.sequence(msg_seq)
.build()
)
.build()
)
if is_final and bot_message.tool_calls is None:
self.seq = 1 # 消息回复结束之后重置seq
# self.seq = 1 # 消息回复结束之后重置seq
self.card_id_dict.pop(message_id) # 清理已经使用过的卡片
# 发起请求
response: ContentCardElementResponse = self.api_client.cardkit.v1.card_element.content(request)
+4 -4
View File
@@ -158,7 +158,7 @@ class TelegramAdapter(adapter.MessagePlatformAdapter):
self.ap = ap
self.logger = logger
self.msg_stream_id = {}
self.seq = 1
# self.seq = 1
async def telegram_callback(update: Update, context: ContextTypes.DEFAULT_TYPE):
if update.message.from_user.is_bot:
@@ -216,8 +216,8 @@ class TelegramAdapter(adapter.MessagePlatformAdapter):
quote_origin: bool = False,
is_final: bool = False,
):
self.seq += 1
if (self.seq - 1) % 8 == 0 or is_final:
msg_seq = bot_message.msg_sequence
if (msg_seq - 1) % 8 == 0 or is_final:
assert isinstance(message_source.source_platform_object, Update)
components = await TelegramMessageConverter.yiri2target(message, self.bot)
@@ -264,7 +264,7 @@ class TelegramAdapter(adapter.MessagePlatformAdapter):
await self.bot.edit_message_text(**args)
if is_final and bot_message.tool_calls is None:
self.seq = 1 # 消息回复结束之后重置seq
# self.seq = 1 # 消息回复结束之后重置seq
self.msg_stream_id.pop(message_id) # 消息回复结束之后删除流式消息id
async def is_stream_output_supported(self) -> bool: