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
|
const { logger, requestId, larkCard, larkService, appInfo, larkBody } = ctx
|
||||||
logger.info(`genSummary ${timeScope} by ${trigger}`)
|
logger.info(`genSummary ${timeScope} by ${trigger}`)
|
||||||
const cardGender = larkCard.child("groupAgent")
|
const cardGender = larkCard.child("groupAgent")
|
||||||
|
let loadingMessageId = ""
|
||||||
try {
|
try {
|
||||||
|
// 手动发送先发一个Loading卡片
|
||||||
|
const {
|
||||||
|
data: { message_id: messageId },
|
||||||
|
} = await larkService.message.replyCard(
|
||||||
|
larkBody.messageId,
|
||||||
|
cardGender.genPendingCard("总结中,请稍等...")
|
||||||
|
)
|
||||||
|
loadingMessageId = messageId
|
||||||
|
|
||||||
// 获取群聊信息
|
// 获取群聊信息
|
||||||
const chat = await db.chat.getAndCreate(ctx)
|
const chat = await db.chat.getAndCreate(ctx)
|
||||||
if (!chat) {
|
if (!chat) {
|
||||||
@ -47,8 +57,12 @@ const genSummary = async (
|
|||||||
)
|
)
|
||||||
|
|
||||||
if (chatHistory.length === 0) {
|
if (chatHistory.length === 0) {
|
||||||
logger.info(`No message in chat ${chatId}`)
|
if (trigger === "manual") {
|
||||||
return
|
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") {
|
if (trigger === "manual") {
|
||||||
await larkService.message.replyCard(larkBody.messageId, cardContent)
|
await larkService.message.update(messageId, cardContent)
|
||||||
} else {
|
} else {
|
||||||
await larkService.message.sendCard2Chat(chatId, cardContent)
|
await larkService.message.sendCard2Chat(chatId, cardContent)
|
||||||
}
|
}
|
||||||
@ -96,7 +110,11 @@ const genSummary = async (
|
|||||||
)
|
)
|
||||||
// 手动触发时回复原消息
|
// 手动触发时回复原消息
|
||||||
if (trigger === "manual") {
|
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 {
|
else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user