fix: in the adapter.py func reply_message_chunk agr message_id alter bot_message,and in dingtalk.py lark.py telegram.py webchat.py agr alter

This commit is contained in:
Dong_master
2025-08-12 11:19:27 +08:00
parent 6d35fc408c
commit 27cee0a4e1
5 changed files with 17 additions and 15 deletions

View File

@@ -64,7 +64,7 @@ class MessagePlatformAdapter(metaclass=abc.ABCMeta):
async def reply_message_chunk(
self,
message_source: platform_events.MessageEvent,
message_id: int,
bot_message: dict,
message: platform_message.MessageChain,
quote_origin: bool = False,
is_final: bool = False,

View File

@@ -147,7 +147,7 @@ class DingTalkAdapter(adapter.MessagePlatformAdapter):
async def reply_message_chunk(
self,
message_source: platform_events.MessageEvent,
message_id: int,
bot_message,
message: platform_message.MessageChain,
quote_origin: bool = False,
is_final: bool = False,
@@ -158,17 +158,19 @@ class DingTalkAdapter(adapter.MessagePlatformAdapter):
# incoming_message = event.incoming_message
# msg_id = incoming_message.message_id
message_id = bot_message.resp_message_id
self.seq += 1
if (self.seq - 1) % 8 == 0 or is_final:
self.seq += 1
content, at = await DingTalkMessageConverter.yiri2target(message)
card_instance, card_instance_id = self.card_instance_id_dict[message_id]
# print(card_instance_id)
await self.bot.send_card_message(card_instance, card_instance_id, content, is_final)
if is_final:
if is_final and bot_message.tool_calls is None:
self.seq = 1 # 消息回复结束之后重置seq
# self.card_instance_id_dict.pop(message_id) # 消息回复结束之后删除卡片实例id
self.card_instance_id_dict.pop(message_id) # 消息回复结束之后删除卡片实例id
async def send_message(self, target_type: str, target_id: str, message: platform_message.MessageChain):
content = await DingTalkMessageConverter.yiri2target(message)

View File

@@ -535,7 +535,7 @@ class LarkAdapter(adapter.MessagePlatformAdapter):
async def reply_message_chunk(
self,
message_source: platform_events.MessageEvent,
message_id: str,
bot_message,
message: platform_message.MessageChain,
quote_origin: bool = False,
is_final: bool = False,
@@ -543,10 +543,10 @@ class LarkAdapter(adapter.MessagePlatformAdapter):
"""
回复消息变成更新卡片消息
"""
self.seq += 1
message_id = bot_message.resp_message_id
if self.seq % 8 == 0 or is_final:
if (self.seq - 1) % 8 == 0 or is_final:
self.seq += 1
lark_message = await self.message_converter.yiri2target(message, self.api_client)
@@ -576,9 +576,9 @@ class LarkAdapter(adapter.MessagePlatformAdapter):
.build()
)
if is_final:
if is_final and bot_message.tool_calls is None:
self.seq = 1 # 消息回复结束之后重置seq
# self.card_id_dict.pop(message_id) # 清理已经使用过的卡片
self.card_id_dict.pop(message_id) # 清理已经使用过的卡片
# 发起请求
response: ContentCardElementResponse = self.api_client.cardkit.v1.card_element.content(request)

View File

@@ -211,7 +211,7 @@ class TelegramAdapter(adapter.MessagePlatformAdapter):
async def reply_message_chunk(
self,
message_source: platform_events.MessageEvent,
message_id: int,
bot_message,
message: platform_message.MessageChain,
quote_origin: bool = False,
is_final: bool = False,
@@ -263,7 +263,7 @@ class TelegramAdapter(adapter.MessagePlatformAdapter):
args['parse_mode'] = 'MarkdownV2'
await self.bot.edit_message_text(**args)
if is_final:
if is_final and bot_message.tool_calls is None:
self.seq = 1 # 消息回复结束之后重置seq
self.msg_stream_id.pop(message_id) # 消息回复结束之后删除流式消息id

View File

@@ -118,7 +118,7 @@ class WebChatAdapter(msadapter.MessagePlatformAdapter):
async def reply_message_chunk(
self,
message_source: platform_events.MessageEvent,
message_id: int,
bot_message,
message: platform_message.MessageChain,
quote_origin: bool = False,
is_final: bool = False,
@@ -146,7 +146,7 @@ class WebChatAdapter(msadapter.MessagePlatformAdapter):
# queue = self.webchat_person_session.resp_queues[message_source.message_chain.message_id]
# elif isinstance(message_source, platform_events.GroupMessage):
# queue = self.webchat_group_session.resp_queues[message_source.message_chain.message_id]
if is_final:
if is_final and bot_message.tool_calls is None:
message_data.is_final = True
# print(message_data)
await queue.put(message_data)