mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-30 22:27:13 +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(
|
async def reply_message_chunk(
|
||||||
self,
|
self,
|
||||||
message_source: platform_events.MessageEvent,
|
message_source: platform_events.MessageEvent,
|
||||||
message_id: int,
|
bot_message: dict,
|
||||||
message: platform_message.MessageChain,
|
message: platform_message.MessageChain,
|
||||||
quote_origin: bool = False,
|
quote_origin: bool = False,
|
||||||
is_final: bool = False,
|
is_final: bool = False,
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ class DingTalkAdapter(adapter.MessagePlatformAdapter):
|
|||||||
async def reply_message_chunk(
|
async def reply_message_chunk(
|
||||||
self,
|
self,
|
||||||
message_source: platform_events.MessageEvent,
|
message_source: platform_events.MessageEvent,
|
||||||
message_id: int,
|
bot_message,
|
||||||
message: platform_message.MessageChain,
|
message: platform_message.MessageChain,
|
||||||
quote_origin: bool = False,
|
quote_origin: bool = False,
|
||||||
is_final: bool = False,
|
is_final: bool = False,
|
||||||
@@ -158,17 +158,19 @@ class DingTalkAdapter(adapter.MessagePlatformAdapter):
|
|||||||
# incoming_message = event.incoming_message
|
# incoming_message = event.incoming_message
|
||||||
|
|
||||||
# msg_id = incoming_message.message_id
|
# 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:
|
if (self.seq - 1) % 8 == 0 or is_final:
|
||||||
self.seq += 1
|
|
||||||
|
|
||||||
content, at = await DingTalkMessageConverter.yiri2target(message)
|
content, at = await DingTalkMessageConverter.yiri2target(message)
|
||||||
|
|
||||||
card_instance, card_instance_id = self.card_instance_id_dict[message_id]
|
card_instance, card_instance_id = self.card_instance_id_dict[message_id]
|
||||||
# print(card_instance_id)
|
# print(card_instance_id)
|
||||||
await self.bot.send_card_message(card_instance, card_instance_id, content, is_final)
|
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.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):
|
async def send_message(self, target_type: str, target_id: str, message: platform_message.MessageChain):
|
||||||
content = await DingTalkMessageConverter.yiri2target(message)
|
content = await DingTalkMessageConverter.yiri2target(message)
|
||||||
|
|||||||
@@ -535,7 +535,7 @@ class LarkAdapter(adapter.MessagePlatformAdapter):
|
|||||||
async def reply_message_chunk(
|
async def reply_message_chunk(
|
||||||
self,
|
self,
|
||||||
message_source: platform_events.MessageEvent,
|
message_source: platform_events.MessageEvent,
|
||||||
message_id: str,
|
bot_message,
|
||||||
message: platform_message.MessageChain,
|
message: platform_message.MessageChain,
|
||||||
quote_origin: bool = False,
|
quote_origin: bool = False,
|
||||||
is_final: 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)
|
lark_message = await self.message_converter.yiri2target(message, self.api_client)
|
||||||
|
|
||||||
|
|
||||||
@@ -576,9 +576,9 @@ class LarkAdapter(adapter.MessagePlatformAdapter):
|
|||||||
.build()
|
.build()
|
||||||
)
|
)
|
||||||
|
|
||||||
if is_final:
|
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) # 清理已经使用过的卡片
|
self.card_id_dict.pop(message_id) # 清理已经使用过的卡片
|
||||||
# 发起请求
|
# 发起请求
|
||||||
response: ContentCardElementResponse = self.api_client.cardkit.v1.card_element.content(request)
|
response: ContentCardElementResponse = self.api_client.cardkit.v1.card_element.content(request)
|
||||||
|
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ class TelegramAdapter(adapter.MessagePlatformAdapter):
|
|||||||
async def reply_message_chunk(
|
async def reply_message_chunk(
|
||||||
self,
|
self,
|
||||||
message_source: platform_events.MessageEvent,
|
message_source: platform_events.MessageEvent,
|
||||||
message_id: int,
|
bot_message,
|
||||||
message: platform_message.MessageChain,
|
message: platform_message.MessageChain,
|
||||||
quote_origin: bool = False,
|
quote_origin: bool = False,
|
||||||
is_final: bool = False,
|
is_final: bool = False,
|
||||||
@@ -263,7 +263,7 @@ class TelegramAdapter(adapter.MessagePlatformAdapter):
|
|||||||
args['parse_mode'] = 'MarkdownV2'
|
args['parse_mode'] = 'MarkdownV2'
|
||||||
|
|
||||||
await self.bot.edit_message_text(**args)
|
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.seq = 1 # 消息回复结束之后重置seq
|
||||||
self.msg_stream_id.pop(message_id) # 消息回复结束之后删除流式消息id
|
self.msg_stream_id.pop(message_id) # 消息回复结束之后删除流式消息id
|
||||||
|
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ class WebChatAdapter(msadapter.MessagePlatformAdapter):
|
|||||||
async def reply_message_chunk(
|
async def reply_message_chunk(
|
||||||
self,
|
self,
|
||||||
message_source: platform_events.MessageEvent,
|
message_source: platform_events.MessageEvent,
|
||||||
message_id: int,
|
bot_message,
|
||||||
message: platform_message.MessageChain,
|
message: platform_message.MessageChain,
|
||||||
quote_origin: bool = False,
|
quote_origin: bool = False,
|
||||||
is_final: 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]
|
# queue = self.webchat_person_session.resp_queues[message_source.message_chain.message_id]
|
||||||
# elif isinstance(message_source, platform_events.GroupMessage):
|
# elif isinstance(message_source, platform_events.GroupMessage):
|
||||||
# queue = self.webchat_group_session.resp_queues[message_source.message_chain.message_id]
|
# 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
|
message_data.is_final = True
|
||||||
# print(message_data)
|
# print(message_data)
|
||||||
await queue.put(message_data)
|
await queue.put(message_data)
|
||||||
|
|||||||
Reference in New Issue
Block a user