From da1126ed3c10cc89a6996fa0dc96cf9a2d63a29e Mon Sep 17 00:00:00 2001 From: Archer <545436317@qq.com> Date: Thu, 12 Sep 2024 18:04:31 +0800 Subject: [PATCH] fix: share init error (#2690) --- projects/app/src/global/core/chat/utils.ts | 2 ++ .../app/src/pages/api/core/chat/getResData.ts | 17 +++++++++++------ .../app/src/pages/api/core/chat/outLink/init.ts | 11 ----------- .../app/src/pages/api/core/chat/team/init.ts | 10 ---------- 4 files changed, 13 insertions(+), 27 deletions(-) diff --git a/projects/app/src/global/core/chat/utils.ts b/projects/app/src/global/core/chat/utils.ts index 68abdcb64..3d12a92dc 100644 --- a/projects/app/src/global/core/chat/utils.ts +++ b/projects/app/src/global/core/chat/utils.ts @@ -18,6 +18,8 @@ export function transformPreviewHistories(histories: ChatItemType[]) { export function addStatisticalDataToHistoryItem(historyItem: ChatItemType) { if (historyItem.obj !== ChatRoleEnum.AI) return historyItem; if (historyItem.totalQuoteList !== undefined) return historyItem; + + // Flat children const flatResData: ChatHistoryItemResType[] = historyItem.responseData ?.map((item) => { diff --git a/projects/app/src/pages/api/core/chat/getResData.ts b/projects/app/src/pages/api/core/chat/getResData.ts index fdcea14b0..02fddcb23 100644 --- a/projects/app/src/pages/api/core/chat/getResData.ts +++ b/projects/app/src/pages/api/core/chat/getResData.ts @@ -10,6 +10,7 @@ import { NextAPI } from '@/service/middleware/entry'; import { ChatHistoryItemResType } from '@fastgpt/global/core/chat/type'; import { OutLinkChatAuthProps } from '@fastgpt/global/support/permission/chat'; import { authApp } from '@fastgpt/service/support/permission/app/auth'; +import { filterPublicNodeResponseData } from '@fastgpt/global/core/chat/utils'; export type getResDataQuery = OutLinkChatAuthProps & { chatId?: string; @@ -48,14 +49,18 @@ async function handler( }); } - const chatData = await MongoChatItem.findOne({ - appId, - chatId, - dataId - }); + const chatData = await MongoChatItem.findOne( + { + appId, + chatId, + dataId + }, + 'obj responseData' + ).lean(); if (chatData?.obj === ChatRoleEnum.AI) { - return chatData.responseData || {}; + const data = chatData.responseData || {}; + return req.query.shareId ? filterPublicNodeResponseData(data) : data; } else return {}; } diff --git a/projects/app/src/pages/api/core/chat/outLink/init.ts b/projects/app/src/pages/api/core/chat/outLink/init.ts index d2863d0e3..a258cbe68 100644 --- a/projects/app/src/pages/api/core/chat/outLink/init.ts +++ b/projects/app/src/pages/api/core/chat/outLink/init.ts @@ -1,6 +1,5 @@ import type { NextApiRequest, NextApiResponse } from 'next'; import { jsonRes } from '@fastgpt/service/common/response'; -import { connectToDatabase } from '@/service/mongo'; import type { InitChatResponse, InitOutLinkChatProps } from '@/global/core/chat/api.d'; import { getGuideModule, getAppChatConfig } from '@fastgpt/global/core/workflow/utils'; import { getChatModelNameListByModules } from '@/service/core/app/workflow'; @@ -9,11 +8,9 @@ import { getChatItems } from '@fastgpt/service/core/chat/controller'; import { MongoTeamMember } from '@fastgpt/service/support/user/team/teamMemberSchema'; import { authOutLink } from '@/service/support/permission/auth/outLink'; import { MongoApp } from '@fastgpt/service/core/app/schema'; -import { filterPublicNodeResponseData } from '@fastgpt/global/core/chat/utils'; import { AppErrEnum } from '@fastgpt/global/common/error/code/app'; import { MongoChat } from '@fastgpt/service/core/chat/chatSchema'; import { ChatErrEnum } from '@fastgpt/global/common/error/code/chat'; -import { ChatRoleEnum } from '@fastgpt/global/core/chat/constants'; import { getAppLatestVersion } from '@fastgpt/service/core/app/controller'; import { FlowNodeTypeEnum } from '@fastgpt/global/core/workflow/node/constant'; import { AppTypeEnum } from '@fastgpt/global/core/app/constants'; @@ -56,14 +53,6 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { getAppLatestVersion(app._id, app) ]); - // pick share response field - app.type !== AppTypeEnum.plugin && - histories.forEach((item) => { - if (item.obj === ChatRoleEnum.AI) { - item.responseData = filterPublicNodeResponseData({ flowResponses: item.responseData }); - } - }); - jsonRes(res, { data: { chatId, diff --git a/projects/app/src/pages/api/core/chat/team/init.ts b/projects/app/src/pages/api/core/chat/team/init.ts index b1548634e..a2bde0d13 100644 --- a/projects/app/src/pages/api/core/chat/team/init.ts +++ b/projects/app/src/pages/api/core/chat/team/init.ts @@ -11,8 +11,6 @@ import { AppErrEnum } from '@fastgpt/global/common/error/code/app'; import { authTeamSpaceToken } from '@/service/support/permission/auth/team'; import { MongoTeam } from '@fastgpt/service/support/user/team/teamSchema'; import { ChatErrEnum } from '@fastgpt/global/common/error/code/chat'; -import { filterPublicNodeResponseData } from '@fastgpt/global/core/chat/utils'; -import { ChatRoleEnum } from '@fastgpt/global/core/chat/constants'; import { getAppLatestVersion } from '@fastgpt/service/core/app/controller'; import { FlowNodeTypeEnum } from '@fastgpt/global/core/workflow/node/constant'; import { AppTypeEnum } from '@fastgpt/global/core/app/constants'; @@ -57,14 +55,6 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { getAppLatestVersion(app._id, app) ]); - // pick share response field - app.type !== AppTypeEnum.plugin && - histories.forEach((item) => { - if (item.obj === ChatRoleEnum.AI) { - item.responseData = filterPublicNodeResponseData({ flowResponses: item.responseData }); - } - }); - jsonRes(res, { data: { chatId,