diff --git a/controller/groupAgent/report.ts b/controller/groupAgent/report.ts index 6b8b45b..4827aa9 100644 --- a/controller/groupAgent/report.ts +++ b/controller/groupAgent/report.ts @@ -21,7 +21,17 @@ const genSummary = async ( const { logger, requestId, larkCard, larkService, appInfo, larkBody } = ctx logger.info(`genSummary ${timeScope} by ${trigger}`) const cardGender = larkCard.child("groupAgent") + let loadingMessageId = "" try { + // 手动发送先发一个Loading卡片 + const { + data: { message_id: messageId }, + } = await larkService.message.replyCard( + larkBody.messageId, + cardGender.genPendingCard("总结中,请稍等...") + ) + loadingMessageId = messageId + // 获取群聊信息 const chat = await db.chat.getAndCreate(ctx) if (!chat) { @@ -47,8 +57,12 @@ const genSummary = async ( ) if (chatHistory.length === 0) { - logger.info(`No message in chat ${chatId}`) - return + if (trigger === "manual") { + throw new Error("No message in chat") + } else { + logger.info(`No message in chat ${chatId}`) + return + } } // 使用大模型总结消息 @@ -78,7 +92,7 @@ const genSummary = async ( // 发送卡片消息,手动触发时回复原消息 if (trigger === "manual") { - await larkService.message.replyCard(larkBody.messageId, cardContent) + await larkService.message.update(messageId, cardContent) } else { await larkService.message.sendCard2Chat(chatId, cardContent) } @@ -96,7 +110,11 @@ const genSummary = async ( ) // 手动触发时回复原消息 if (trigger === "manual") { - await larkService.message.replyCard(larkBody.messageId, errorCard) + if (loadingMessageId) { + await larkService.message.update(loadingMessageId, errorCard) + } else { + await larkService.message.replyCard(larkBody.messageId, errorCard) + } } // 自动触发发送给自己的订阅群 else {