perf: source update
This commit is contained in:
parent
752dc9b19d
commit
d8f660370f
@ -173,6 +173,8 @@
|
|||||||
"Folder Name": "Input folder name",
|
"Folder Name": "Input folder name",
|
||||||
"My Dataset": "My Dataset",
|
"My Dataset": "My Dataset",
|
||||||
"Other Data": "Other Data",
|
"Other Data": "Other Data",
|
||||||
|
"Select Dataset": "Select Dataset",
|
||||||
|
"Select Folder": "Enter folder",
|
||||||
"Upload Time": "Upload Time",
|
"Upload Time": "Upload Time",
|
||||||
"deleteDatasetTips": "Are you sure to delete the knowledge base? Data cannot be recovered after deletion, please confirm!",
|
"deleteDatasetTips": "Are you sure to delete the knowledge base? Data cannot be recovered after deletion, please confirm!",
|
||||||
"deleteFolderTips": "Are you sure to delete this folder and all the knowledge bases it contains? Data cannot be recovered after deletion, please confirm!"
|
"deleteFolderTips": "Are you sure to delete this folder and all the knowledge bases it contains? Data cannot be recovered after deletion, please confirm!"
|
||||||
|
|||||||
@ -173,6 +173,8 @@
|
|||||||
"Folder Name": "输入文件夹名称",
|
"Folder Name": "输入文件夹名称",
|
||||||
"My Dataset": "我的知识库",
|
"My Dataset": "我的知识库",
|
||||||
"Other Data": "其他数据",
|
"Other Data": "其他数据",
|
||||||
|
"Select Dataset": "选择该知识库",
|
||||||
|
"Select Folder": "进入文件夹",
|
||||||
"Upload Time": "上传时间",
|
"Upload Time": "上传时间",
|
||||||
"deleteDatasetTips": "确认删除该知识库?删除后数据无法恢复,请确认!",
|
"deleteDatasetTips": "确认删除该知识库?删除后数据无法恢复,请确认!",
|
||||||
"deleteFolderTips": "确认删除该文件夹及其包含的所有知识库?删除后数据无法恢复,请确认!"
|
"deleteFolderTips": "确认删除该文件夹及其包含的所有知识库?删除后数据无法恢复,请确认!"
|
||||||
|
|||||||
@ -19,7 +19,7 @@ const QuoteModal = ({
|
|||||||
rawSearch = [],
|
rawSearch = [],
|
||||||
onClose
|
onClose
|
||||||
}: {
|
}: {
|
||||||
onUpdateQuote: (quoteId: string, sourceText: string) => Promise<void>;
|
onUpdateQuote: (quoteId: string, sourceText?: string) => Promise<void>;
|
||||||
rawSearch: SearchType[];
|
rawSearch: SearchType[];
|
||||||
onClose: () => void;
|
onClose: () => void;
|
||||||
}) => {
|
}) => {
|
||||||
@ -129,7 +129,7 @@ const QuoteModal = ({
|
|||||||
{editDataItem && (
|
{editDataItem && (
|
||||||
<InputDataModal
|
<InputDataModal
|
||||||
onClose={() => setEditDataItem(undefined)}
|
onClose={() => setEditDataItem(undefined)}
|
||||||
onSuccess={() => onUpdateQuote(editDataItem.id, '手动修改')}
|
onSuccess={() => onUpdateQuote(editDataItem.id)}
|
||||||
onDelete={() => onUpdateQuote(editDataItem.id, '已删除')}
|
onDelete={() => onUpdateQuote(editDataItem.id, '已删除')}
|
||||||
kbId={editDataItem.kb_id}
|
kbId={editDataItem.kb_id}
|
||||||
defaultValues={{
|
defaultValues={{
|
||||||
|
|||||||
@ -44,7 +44,7 @@ const ResponseTags = ({
|
|||||||
};
|
};
|
||||||
}, [responseData]);
|
}, [responseData]);
|
||||||
|
|
||||||
const updateQuote = useCallback(async (quoteId: string, sourceText: string) => {}, []);
|
const updateQuote = useCallback(async (quoteId: string, sourceText?: string) => {}, []);
|
||||||
|
|
||||||
const TagStyles: BoxProps = {
|
const TagStyles: BoxProps = {
|
||||||
mr: 2,
|
mr: 2,
|
||||||
|
|||||||
8
client/src/components/Icon/icons/fill/plus.svg
Normal file
8
client/src/components/Icon/icons/fill/plus.svg
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1694331723034"
|
||||||
|
class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5978"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64">
|
||||||
|
<path
|
||||||
|
d="M512 70.283C267.486 70.283 69.268 268.046 69.268 512S267.486 953.717 512 953.717 954.732 755.954 954.732 512 756.514 70.283 512 70.283m223.045 488.321H558.603v176.442c0 25.738-20.866 46.604-46.604 46.604s-46.604-20.866-46.604-46.604V558.604H288.953c-25.738 0-46.604-20.866-46.604-46.604s20.866-46.604 46.604-46.604h176.442V288.954c0-25.738 20.866-46.604 46.604-46.604s46.604 20.866 46.604 46.604v176.442h176.442c25.738 0 46.604 20.866 46.604 46.604s-20.866 46.604-46.604 46.604z"
|
||||||
|
p-id="5979"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 867 B |
@ -82,7 +82,8 @@ const map = {
|
|||||||
markLight: require('./icons/light/mark.svg').default,
|
markLight: require('./icons/light/mark.svg').default,
|
||||||
retryLight: require('./icons/light/retry.svg').default,
|
retryLight: require('./icons/light/retry.svg').default,
|
||||||
rightArrowLight: require('./icons/light/rightArrow.svg').default,
|
rightArrowLight: require('./icons/light/rightArrow.svg').default,
|
||||||
searchLight: require('./icons/light/search.svg').default
|
searchLight: require('./icons/light/search.svg').default,
|
||||||
|
plusFill: require('./icons/fill/plus.svg').default
|
||||||
};
|
};
|
||||||
|
|
||||||
export type IconName = keyof typeof map;
|
export type IconName = keyof typeof map;
|
||||||
|
|||||||
@ -50,7 +50,6 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex
|
|||||||
await PgClient.update(PgTrainingTableName, {
|
await PgClient.update(PgTrainingTableName, {
|
||||||
where: [['id', dataId], 'AND', ['user_id', userId]],
|
where: [['id', dataId], 'AND', ['user_id', userId]],
|
||||||
values: [
|
values: [
|
||||||
{ key: 'source', value: '手动修改' },
|
|
||||||
{ key: 'a', value: a.replace(/'/g, '"') },
|
{ key: 'a', value: a.replace(/'/g, '"') },
|
||||||
...(q
|
...(q
|
||||||
? [
|
? [
|
||||||
|
|||||||
@ -173,52 +173,65 @@ export const KBSelectModal = ({
|
|||||||
{filterKbList.unSelected.map((item) =>
|
{filterKbList.unSelected.map((item) =>
|
||||||
(() => {
|
(() => {
|
||||||
return (
|
return (
|
||||||
<Card
|
<MyTooltip
|
||||||
key={item._id}
|
key={item._id}
|
||||||
p={3}
|
label={
|
||||||
border={theme.borders.base}
|
item.type === KbTypeEnum.dataset
|
||||||
boxShadow={'sm'}
|
? t('kb.Select Dataset')
|
||||||
h={'80px'}
|
: t('kb.Select Folder')
|
||||||
cursor={'pointer'}
|
}
|
||||||
_hover={{
|
|
||||||
boxShadow: 'md'
|
|
||||||
}}
|
|
||||||
onClick={() => {
|
|
||||||
if (item.type === KbTypeEnum.folder) {
|
|
||||||
setParentId(item._id);
|
|
||||||
} else if (item.type === KbTypeEnum.dataset) {
|
|
||||||
const vectorModel = selectedKbList[0]?.vectorModel?.model;
|
|
||||||
|
|
||||||
if (vectorModel && vectorModel !== item.vectorModel.model) {
|
|
||||||
return toast({
|
|
||||||
status: 'warning',
|
|
||||||
title: '仅能选择同一个索引模型的知识库'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
setSelectedKbList((state) => [
|
|
||||||
...state,
|
|
||||||
{ kbId: item._id, vectorModel: item.vectorModel }
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
>
|
>
|
||||||
<Flex alignItems={'center'} h={'38px'}>
|
<Card
|
||||||
<Avatar src={item.avatar} w={['24px', '28px', '32px']}></Avatar>
|
p={3}
|
||||||
<Box ml={3} fontWeight={'bold'} fontSize={['md', 'lg', 'xl']}>
|
border={theme.borders.base}
|
||||||
{item.name}
|
boxShadow={'sm'}
|
||||||
</Box>
|
h={'80px'}
|
||||||
</Flex>
|
cursor={'pointer'}
|
||||||
<Flex justifyContent={'flex-end'} alignItems={'center'} fontSize={'sm'}>
|
_hover={{
|
||||||
{item.type === KbTypeEnum.folder ? (
|
boxShadow: 'md'
|
||||||
<Box color={'myGray.500'}>{t('Folder')}</Box>
|
}}
|
||||||
) : (
|
onClick={() => {
|
||||||
<>
|
if (item.type === KbTypeEnum.folder) {
|
||||||
<MyIcon mr={1} name="kbTest" w={'12px'} />
|
setParentId(item._id);
|
||||||
<Box color={'myGray.500'}>{item.vectorModel.name}</Box>
|
} else if (item.type === KbTypeEnum.dataset) {
|
||||||
</>
|
const vectorModel = selectedKbList[0]?.vectorModel?.model;
|
||||||
)}
|
|
||||||
</Flex>
|
if (vectorModel && vectorModel !== item.vectorModel.model) {
|
||||||
</Card>
|
return toast({
|
||||||
|
status: 'warning',
|
||||||
|
title: '仅能选择同一个索引模型的知识库'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
setSelectedKbList((state) => [
|
||||||
|
...state,
|
||||||
|
{ kbId: item._id, vectorModel: item.vectorModel }
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Flex alignItems={'center'} h={'38px'}>
|
||||||
|
<Avatar src={item.avatar} w={['24px', '28px']}></Avatar>
|
||||||
|
<Box
|
||||||
|
className="textEllipsis"
|
||||||
|
ml={3}
|
||||||
|
fontWeight={'bold'}
|
||||||
|
fontSize={['md', 'lg', 'xl']}
|
||||||
|
>
|
||||||
|
{item.name}
|
||||||
|
</Box>
|
||||||
|
</Flex>
|
||||||
|
<Flex justifyContent={'flex-end'} alignItems={'center'} fontSize={'sm'}>
|
||||||
|
{item.type === KbTypeEnum.folder ? (
|
||||||
|
<Box color={'myGray.500'}>{t('Folder')}</Box>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
<MyIcon mr={1} name="kbTest" w={'12px'} />
|
||||||
|
<Box color={'myGray.500'}>{item.vectorModel.name}</Box>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</Flex>
|
||||||
|
</Card>
|
||||||
|
</MyTooltip>
|
||||||
);
|
);
|
||||||
})()
|
})()
|
||||||
)}
|
)}
|
||||||
|
|||||||
@ -238,7 +238,7 @@ const DataCard = ({ kbId }: { kbId: string }) => {
|
|||||||
</Box>
|
</Box>
|
||||||
<Flex py={2} px={4} h={'36px'} alignItems={'flex-end'} fontSize={'sm'}>
|
<Flex py={2} px={4} h={'36px'} alignItems={'flex-end'} fontSize={'sm'}>
|
||||||
<Box className={'textEllipsis'} flex={1} color={'myGray.500'}>
|
<Box className={'textEllipsis'} flex={1} color={'myGray.500'}>
|
||||||
{item.source?.trim()}
|
ID:{item.id}
|
||||||
</Box>
|
</Box>
|
||||||
<IconButton
|
<IconButton
|
||||||
className="delete"
|
className="delete"
|
||||||
|
|||||||
@ -265,10 +265,7 @@ export function RawFileText({ fileId, filename = '', ...props }: RawFileTextProp
|
|||||||
{...(!!fileId
|
{...(!!fileId
|
||||||
? {
|
? {
|
||||||
cursor: 'pointer',
|
cursor: 'pointer',
|
||||||
textDecoration: ['underline', 'none'],
|
textDecoration: 'underline',
|
||||||
_hover: {
|
|
||||||
textDecoration: 'underline'
|
|
||||||
},
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
try {
|
try {
|
||||||
const url = await getFileViewUrl(fileId);
|
const url = await getFileViewUrl(fileId);
|
||||||
|
|||||||
@ -33,7 +33,8 @@ const kbSchema = new Schema({
|
|||||||
type: {
|
type: {
|
||||||
type: String,
|
type: String,
|
||||||
enum: Object.keys(KbTypeMap),
|
enum: Object.keys(KbTypeMap),
|
||||||
required: true
|
required: true,
|
||||||
|
default: 'dataset'
|
||||||
},
|
},
|
||||||
tags: {
|
tags: {
|
||||||
type: [String],
|
type: [String],
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user