mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-08 06:46:02 +00:00
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:
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user