feat: 优化总结生成逻辑,添加加载消息处理;改进无消息时的错误处理
This commit is contained in:
parent
d69b67335a
commit
be1805566b
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user