diff --git a/packages/global/core/dataset/type.d.ts b/packages/global/core/dataset/type.d.ts index 57b7a9bba..7cf1d7246 100644 --- a/packages/global/core/dataset/type.d.ts +++ b/packages/global/core/dataset/type.d.ts @@ -286,3 +286,14 @@ export type SearchDataResponseItemType = Omit< score: { type: `${SearchScoreTypeEnum}`; value: number; index: number }[]; // score: number; }; + +export type DatasetCiteItemType = { + _id: string; + q: string; + a?: string; + imagePreivewUrl?: string; + history?: DatasetDataSchemaType['history']; + updateTime: DatasetDataSchemaType['updateTime']; + index: DatasetDataSchemaType['chunkIndex']; + updated?: boolean; +}; diff --git a/packages/service/core/dataset/data/controller.ts b/packages/service/core/dataset/data/controller.ts index 08d468940..b1872318e 100644 --- a/packages/service/core/dataset/data/controller.ts +++ b/packages/service/core/dataset/data/controller.ts @@ -1,6 +1,5 @@ import { getDatasetImagePreviewUrl } from '../image/utils'; -import type { QuoteDataItemType } from '../../../../../projects/app/src/service/core/chat/constants'; -import type { DatasetDataSchemaType } from '@fastgpt/global/core/dataset/type'; +import type { DatasetCiteItemType, DatasetDataSchemaType } from '@fastgpt/global/core/dataset/type'; export const formatDatasetDataValue = ({ q, @@ -41,7 +40,7 @@ export const formatDatasetDataValue = ({ }; export const getFormatDatasetCiteList = (list: DatasetDataSchemaType[]) => { - return list.map((item) => ({ + return list.map((item) => ({ _id: item._id, ...formatDatasetDataValue({ teamId: item.teamId, diff --git a/projects/app/src/pageComponents/chat/ChatQuoteList/CollectionQuoteReader.tsx b/projects/app/src/pageComponents/chat/ChatQuoteList/CollectionQuoteReader.tsx index fe811bb75..ae3f37215 100644 --- a/projects/app/src/pageComponents/chat/ChatQuoteList/CollectionQuoteReader.tsx +++ b/projects/app/src/pageComponents/chat/ChatQuoteList/CollectionQuoteReader.tsx @@ -1,5 +1,8 @@ import { Box, Flex, HStack } from '@chakra-ui/react'; -import { type SearchDataResponseItemType } from '@fastgpt/global/core/dataset/type'; +import { + type DatasetCiteItemType, + type SearchDataResponseItemType +} from '@fastgpt/global/core/dataset/type'; import { getSourceNameIcon } from '@fastgpt/global/core/dataset/utils'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { useRouter } from 'next/router'; @@ -20,7 +23,6 @@ import { getCollectionQuote } from '@/web/core/chat/api'; import MyIconButton from '@fastgpt/web/components/common/Icon/button'; import MyBox from '@fastgpt/web/components/common/MyBox'; import { getCollectionSourceAndOpen } from '@/web/core/dataset/hooks/readCollectionSource'; -import { type QuoteDataItemType } from '@/service/core/chat/constants'; const CollectionReader = ({ rawSearch, @@ -99,7 +101,7 @@ const CollectionReader = ({ const formatedDataList = useMemo( () => - datasetDataList.map((item: QuoteDataItemType) => { + datasetDataList.map((item: DatasetCiteItemType) => { const isCurrentSelected = currentQuoteItem?.id === item._id; const quoteIndex = filterResults.findIndex((res) => res.id === item._id); diff --git a/projects/app/src/pages/api/core/chat/quote/getCollectionQuote.ts b/projects/app/src/pages/api/core/chat/quote/getCollectionQuote.ts index 5b2cc056c..732c461c1 100644 --- a/projects/app/src/pages/api/core/chat/quote/getCollectionQuote.ts +++ b/projects/app/src/pages/api/core/chat/quote/getCollectionQuote.ts @@ -1,6 +1,9 @@ import { NextAPI } from '@/service/middleware/entry'; import { authChatCrud, authCollectionInChat } from '@/service/support/permission/auth/chat'; -import { type DatasetDataSchemaType } from '@fastgpt/global/core/dataset/type'; +import { + type DatasetCiteItemType, + type DatasetDataSchemaType +} from '@fastgpt/global/core/dataset/type'; import { MongoDatasetData } from '@fastgpt/service/core/dataset/data/schema'; import { type ApiRequestProps } from '@fastgpt/service/type/next'; import { @@ -8,7 +11,7 @@ import { type LinkedPaginationProps } from '@fastgpt/web/common/fetch/type'; import { type FilterQuery, Types } from 'mongoose'; -import { quoteDataFieldSelector, type QuoteDataItemType } from '@/service/core/chat/constants'; +import { quoteDataFieldSelector } from '@/service/core/chat/constants'; import { processChatTimeFilter } from '@/service/core/chat/utils'; import { ChatErrEnum } from '@fastgpt/global/common/error/code/chat'; import { getCollectionWithDataset } from '@fastgpt/service/core/dataset/controller'; @@ -27,7 +30,7 @@ export type GetCollectionQuoteProps = LinkedPaginationProps & { teamToken?: string; }; -export type GetCollectionQuoteRes = LinkedListResponse; +export type GetCollectionQuoteRes = LinkedListResponse; type BaseMatchType = FilterQuery; diff --git a/projects/app/src/pages/api/core/chat/quote/getQuote.ts b/projects/app/src/pages/api/core/chat/quote/getQuote.ts index 647b68a80..f90837575 100644 --- a/projects/app/src/pages/api/core/chat/quote/getQuote.ts +++ b/projects/app/src/pages/api/core/chat/quote/getQuote.ts @@ -2,13 +2,11 @@ import { NextAPI } from '@/service/middleware/entry'; import { authChatCrud, authCollectionInChat } from '@/service/support/permission/auth/chat'; import { MongoDatasetData } from '@fastgpt/service/core/dataset/data/schema'; import { type ApiRequestProps } from '@fastgpt/service/type/next'; -import { quoteDataFieldSelector, type QuoteDataItemType } from '@/service/core/chat/constants'; +import { quoteDataFieldSelector } from '@/service/core/chat/constants'; import { processChatTimeFilter } from '@/service/core/chat/utils'; import { ChatErrEnum } from '@fastgpt/global/common/error/code/chat'; -import { - formatDatasetDataValue, - getFormatDatasetCiteList -} from '@fastgpt/service/core/dataset/data/controller'; +import { getFormatDatasetCiteList } from '@fastgpt/service/core/dataset/data/controller'; +import type { DatasetCiteItemType } from '@fastgpt/global/core/dataset/type'; export type GetQuoteProps = { datasetDataIdList: string[]; @@ -23,7 +21,7 @@ export type GetQuoteProps = { teamToken?: string; }; -export type GetQuotesRes = QuoteDataItemType[]; +export type GetQuotesRes = DatasetCiteItemType[]; async function handler(req: ApiRequestProps): Promise { const { diff --git a/projects/app/src/service/core/chat/constants.ts b/projects/app/src/service/core/chat/constants.ts index fa64b54fc..bed58df58 100644 --- a/projects/app/src/service/core/chat/constants.ts +++ b/projects/app/src/service/core/chat/constants.ts @@ -2,14 +2,3 @@ import { type DatasetDataSchemaType } from '@fastgpt/global/core/dataset/type'; export const quoteDataFieldSelector = '_id teamId datasetId q a imageId history updateTime chunkIndex'; - -export type QuoteDataItemType = { - _id: string; - q: string; - a?: string; - imagePreivewUrl?: string; - history?: DatasetDataSchemaType['history']; - updateTime: DatasetDataSchemaType['updateTime']; - index: DatasetDataSchemaType['chunkIndex']; - updated?: boolean; -}; diff --git a/projects/app/src/service/core/chat/utils.ts b/projects/app/src/service/core/chat/utils.ts index 0130832c3..212ecf936 100644 --- a/projects/app/src/service/core/chat/utils.ts +++ b/projects/app/src/service/core/chat/utils.ts @@ -1,10 +1,10 @@ -import { type QuoteDataItemType } from './constants'; +import type { DatasetCiteItemType } from '@fastgpt/global/core/dataset/type'; // 获取对话时间时,引用的内容 export function processChatTimeFilter( - dataList: QuoteDataItemType[], + dataList: DatasetCiteItemType[], chatTime: Date -): QuoteDataItemType[] { +): DatasetCiteItemType[] { return dataList.map((item) => { const defaultItem = item;