feat(group-agent): 补齐logger

This commit is contained in:
zhaoyingbo 2024-10-17 02:07:42 +00:00
parent f7fe14e6b1
commit 66229c8546
4 changed files with 18 additions and 4 deletions

BIN
bun.lockb

Binary file not shown.

@ -36,11 +36,11 @@
"dependencies": {
"@dotenvx/dotenvx": "^1.19.3",
"@egg/hooks": "^1.2.0",
"@egg/lark-msg-tool": "^1.13.0",
"@egg/lark-msg-tool": "^1.13.2",
"@egg/logger": "^1.4.4",
"@egg/net-tool": "^1.9.2",
"@egg/path-tool": "^1.4.1",
"@langchain/core": "^0.3.11",
"@langchain/core": "^0.3.12",
"@langchain/openai": "^0.3.7",
"joi": "^17.13.3",
"langfuse-langchain": "^3.27.0",

@ -167,10 +167,12 @@ const parseGroupAgentQuery = async (
innerList: LarkServer.ChatGroupData[],
mentions?: LarkEvent.Mention[]
) => {
// TODO处理在群聊里的情况不用获取群组名称
const {
larkBody: { msgText, chatId: rawChatId },
larkService,
larkCard,
logger,
} = ctx
const cardGender = larkCard.child("groupAgent")
@ -198,11 +200,15 @@ const parseGroupAgentQuery = async (
// 使用大模型解析用户输入
const { chatId, chatName, functionName, functionId, startTime, endTime } =
await llm.parseGroupAgentQuery(msgText, groupInfo, functionInfo)
logger.info(
`Parsed group agent query: chatId: ${chatId}, chatName: ${chatName}, functionName: ${functionName}, functionId: ${functionId}, startTime: ${startTime}, endTime: ${endTime}`
)
// 判断顺序是 群组 -> 功能 -> 时间范围
// 返回群组选择器,其他的值往里边丢就行
if (!chatId || !chatName) {
logger.info("Send group selector")
updateCard(
genGroupSelector(ctx, innerList, {
functionName,
@ -216,6 +222,7 @@ const parseGroupAgentQuery = async (
}
// 返回功能选择器,其他的值往里边丢就行
if (!functionId || !functionName) {
logger.info("Send function selector")
updateCard(
genFunctionSelector(ctx, {
chatId,
@ -229,6 +236,7 @@ const parseGroupAgentQuery = async (
}
// 返回时间范围选择器,其他的值往里边丢就行
if (!startTime || !endTime) {
logger.info("Send time scope selector")
updateCard(
genTimeScopeSelector(ctx, {
chatId,
@ -241,6 +249,7 @@ const parseGroupAgentQuery = async (
return
}
logger.info("Send group report")
// 设置齐全,返回结果报告
updateCard(cardGender.genPendingCard("正在爬楼中,请稍等..."))
sendGroupReport(ctx, message_id, {
@ -288,6 +297,7 @@ const manageEventMsg = async (ctx: Context.Data) => {
return
}
logger.info(`User input: ${msgText}, chatType: ${chatType}, use llm to parse`)
// 用户有输入,使用大模型进行解析发送对应卡片
await parseGroupAgentQuery(ctx, innerList, mentions)
return
@ -300,9 +310,10 @@ const manageEventMsg = async (ctx: Context.Data) => {
const manageActionMsg = async (ctx: Context.Data) => {
const {
larkBody: { actionOption, actionValue, messageId },
larkCard,
logger,
} = ctx
const cardGender = ctx.larkCard.child("groupAgent")
const cardGender = larkCard.child("groupAgent")
logger.debug(`Action option: ${JSON.stringify(actionOption)}`)
logger.debug(`Action value: ${JSON.stringify(actionValue)}`)
let { chatId, chatName, functionId, functionName } = actionValue
@ -335,6 +346,7 @@ const manageActionMsg = async (ctx: Context.Data) => {
// 理论上来说这里的chatId, chatName肯定是有值的不需要再判断
// 判断是否需要返回功能选择器
if (!functionId || !functionName) {
logger.info("Send function selector")
return genFunctionSelector(ctx, {
chatId,
chatName,
@ -347,6 +359,7 @@ const manageActionMsg = async (ctx: Context.Data) => {
// 判断是否需要返回时间范围选择器
if (!(timeScope || (startTime && endTime))) {
logger.info("Send time scope selector")
return genTimeScopeSelector(ctx, {
chatId,
chatName,
@ -356,6 +369,7 @@ const manageActionMsg = async (ctx: Context.Data) => {
})
}
logger.info("Send group report")
// 设置齐全,返回结果报告
sendGroupReport(ctx, messageId, {
chatId,

@ -2,4 +2,4 @@
POST http://localhost:3000/bot?app=egg
Content-Type: application/json
{"schema":"2.0","header":{"event_id":"0c250522d3832abc044649e03672effd","token":"tV9djUKSjzVnekV7xTg2Od06NFTcsBnj","create_time":"1729082026035","event_type":"im.message.receive_v1","tenant_key":"2ee61fe50f4f1657","app_id":"cli_a1eff35b43b89063"},"event":{"message":{"chat_id":"oc_ba33dc55b3dd76bf31e0adfec5e13300","chat_type":"p2p","content":"{\"text\":\"/groupchat 前端群说了什么\"}","create_time":"1729082025875","message_id":"om_eba008b10c29ac96d9c1e6e9baf22286","message_type":"text"},"sender":{"sender_id":{"open_id":"ou_470ac13b8b50fc472d9d8ee71e03de26","union_id":"on_9dacc59a539023df8b168492f5e5433c","user_id":"zhaoyingbo"},"sender_type":"user","tenant_key":"2ee61fe50f4f1657"}}}
{"open_id":"ou_470ac13b8b50fc472d9d8ee71e03de26","user_id":"zhaoyingbo","open_message_id":"om_3e369929b05b706754f89cd7d54018f3","open_chat_id":"oc_ba33dc55b3dd76bf31e0adfec5e13300","tenant_key":"2ee61fe50f4f1657","token":"c-4f54593c6ff3033652cb70160322905d5598576f","action":{"value":{"cardGroup":"groupAgent","cardName":"groupSelector","groupOptions":[{"text":{"content":"MIAI-FE 人工智能部-前端组","tag":"plain_text"},"value":"oc_ef98c2a9229657f99d4ef573a30fe91c|MIAI-FE 人工智能部-前端组"},{"text":{"content":"方糖の家","tag":"plain_text"},"value":"oc_433b1cb7a9dbb7ebe70a4e1a59cb8bb1|方糖の家"},{"text":{"content":"复现平台需求评审及前后端联调","tag":"plain_text"},"value":"oc_85ec841519b1d4e281ad385e3d045847|复现平台需求评审及前后端联调"},{"text":{"content":"场景复现平台前端上线通知","tag":"plain_text"},"value":"oc_e9750782ba3833afd35e7d29afa25741|场景复现平台前端上线通知"},{"text":{"content":"FE-CloudML","tag":"plain_text"},"value":"oc_07bb9ac6df70d0ae2d267fa0bfbcfb88|FE-CloudML"},{"text":{"content":"Yingbo Zhao","tag":"plain_text"},"value":"oc_51c982ebfc203937d5e8f0a33324bd53|Yingbo Zhao"},{"text":{"content":"小煎蛋测试群","tag":"plain_text"},"value":"oc_8c789ce8f4ecc6695bb63ca6ec4c61ea|小煎蛋测试群"},{"text":{"content":"RAG引擎部署落地","tag":"plain_text"},"value":"oc_09f4c9e07ed199004b4d1276143059dd|RAG引擎部署落地"}],"requestId":"897864dd-8200-42c1-a088-64bab3286095","xAuthor":"AI创新应用组","xIcon":"🔥","xName":"Group Agent"},"tag":"select_static","option":"oc_ef98c2a9229657f99d4ef573a30fe91c|MIAI-FE 人工智能部-前端组"}}