perf: source update

This commit is contained in:
archer 2023-09-10 15:51:32 +08:00
parent 752dc9b19d
commit d8f660370f
No known key found for this signature in database
GPG Key ID: 569A5660D2379E28
11 changed files with 78 additions and 55 deletions

View File

@ -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!"

View File

@ -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": "确认删除该文件夹及其包含的所有知识库?删除后数据无法恢复,请确认!"

View File

@ -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={{

View File

@ -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,

View 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

View File

@ -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;

View File

@ -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
? [ ? [

View File

@ -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>
); );
})() })()
)} )}

View File

@ -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"

View File

@ -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);

View File

@ -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],