feat: 优化总结生成逻辑,添加加载消息处理;改进无消息时的错误处理

This commit is contained in:
zhaoyingbo 2025-01-12 06:43:11 +00:00
parent d69b67335a
commit be1805566b

View File

@ -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 {