mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-24 22:03:54 +00:00
File input (#2270)
* doc * feat: file upload config * perf: chat box file params * feat: markdown show file * feat: chat file store and clear * perf: read file contentType * feat: llm vision config * feat: file url output * perf: plugin error text * perf: image load * feat: ai chat document * perf: file block ui * feat: read file node * feat: file read response field * feat: simple mode support read files * feat: tool call * feat: read file histories * perf: select file * perf: select file config * i18n * i18n * fix: ts; feat: tool response preview result
This commit is contained in:
@@ -2,6 +2,9 @@ import type { ChatItemType, ChatItemValueItemType } from '@fastgpt/global/core/c
|
||||
import { MongoChatItem } from './chatItemSchema';
|
||||
import { addLog } from '../../common/system/log';
|
||||
import { ChatItemValueTypeEnum } from '@fastgpt/global/core/chat/constants';
|
||||
import { delFileByFileIdList, getGFSCollection } from '../../common/file/gridfs/controller';
|
||||
import { BucketNameEnum } from '@fastgpt/global/common/file/constants';
|
||||
import { MongoChat } from './chatSchema';
|
||||
|
||||
export async function getChatItems({
|
||||
appId,
|
||||
@@ -75,3 +78,40 @@ export const addCustomFeedbacks = async ({
|
||||
addLog.error('addCustomFeedbacks error', error);
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Delete chat files
|
||||
1. ChatId: Delete one chat files
|
||||
2. AppId: Delete all the app's chat files
|
||||
*/
|
||||
export const deleteChatFiles = async ({
|
||||
chatIdList,
|
||||
appId
|
||||
}: {
|
||||
chatIdList?: string[];
|
||||
appId?: string;
|
||||
}) => {
|
||||
if (!appId && !chatIdList) return Promise.reject('appId or chatIdList is required');
|
||||
|
||||
const appChatIdList = await (async () => {
|
||||
if (appId) {
|
||||
const appChatIdList = await MongoChat.find({ appId }, { chatId: 1 });
|
||||
return appChatIdList.map((item) => String(item.chatId));
|
||||
} else if (chatIdList) {
|
||||
return chatIdList;
|
||||
}
|
||||
return [];
|
||||
})();
|
||||
|
||||
const collection = getGFSCollection(BucketNameEnum.chat);
|
||||
const where = {
|
||||
'metadata.chatId': { $in: appChatIdList }
|
||||
};
|
||||
|
||||
const files = await collection.find(where, { projection: { _id: 1 } }).toArray();
|
||||
|
||||
await delFileByFileIdList({
|
||||
bucketName: BucketNameEnum.chat,
|
||||
fileIdList: files.map((item) => String(item._id))
|
||||
});
|
||||
};
|
||||
|
Reference in New Issue
Block a user