Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { YakitInputNumber } from '@/components/yakitUI/YakitInputNumber/YakitInp
import { YakitModal } from '@/components/yakitUI/YakitModal/YakitModal'
import { Collapse, Form } from 'antd'
import { Dispatch, FC, SetStateAction } from 'react'
import { getFileInfoList } from '../utils'
import { getFileInfoList, ValidatorFilePath } from '../utils'
import { randomString } from '@/utils/randomUtil'
import { useKnowledgeBase } from '../hooks/useKnowledgeBase'
import { success } from '@/utils/notification'
Expand Down Expand Up @@ -83,28 +83,7 @@ const AddKnowledgeBaseModal: FC<AddKnowledgeBaseModalProps> = ({
label: '上传文件',
rules: [
{
validator: (_, value) => {
if (!value) {
return Promise.reject('请上传文件')
}

// 多个文件用逗号分隔
const files = value.split(',').map((i) => i.trim())

// 校验格式:必须有文件名 + 后缀
const reg = /^[^.\/]+?\.[^.\/]+$/

for (const file of files) {
// 取文件名 (兼容 windows、mac 路径)
const fileName = file.split('/').pop()?.split('\\').pop()

if (!fileName || !reg.test(fileName)) {
return Promise.reject('请上传有效的文件')
}
}

return Promise.resolve()
},
validator: ValidatorFilePath,
},
],
}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { YakitFormDragger } from '@/components/yakitUI/YakitForm/YakitForm'
import type { FormInstance } from 'antd/es/form/Form'
import YakitCollapse from '@/components/yakitUI/YakitCollapse/YakitCollapse'
import styles from '../knowledgeBase.module.scss'
import { extractFileName, knowledgeTypeOptions } from '../utils'
import { extractFileName, knowledgeTypeOptions, ValidatorFilePath } from '../utils'
import { useKnowledgeBase } from '../hooks/useKnowledgeBase'
import { YakitRadioButtons } from '@/components/yakitUI/YakitRadioButtons/YakitRadioButtons'
import classNames from 'classnames'
Expand Down Expand Up @@ -78,28 +78,7 @@ const CreateKnowledgeBase: FC<{ form: FormInstance<any>; type?: 'new' }> = ({ fo
label: '上传文件',
rules: [
{
validator: (_, value) => {
if (value) {
// 多个文件用逗号分隔
const files = value.split(',').map((i) => i.trim())

// 校验格式:必须有文件名 + 后缀
const reg = /^[^.\/]+?\.[^.\/]+$/

for (const file of files) {
// 取文件名 (兼容 windows、mac 路径)
const fileName = file.split('/').pop()?.split('\\').pop()

if (!fileName || !reg.test(fileName)) {
return Promise.reject('请上传有效的文件')
}
}

return Promise.resolve()
} else {
return Promise.resolve()
}
},
validator: ValidatorFilePath,
},
],
}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { Dispatch, SetStateAction, useEffect, useRef } from 'react'
import { YakitFormDragger } from '@/components/yakitUI/YakitForm/YakitForm'
import { KnowledgeBaseContentProps } from '../TKnowledgeBase'
import { KnowledgeBaseItem, useKnowledgeBase } from '../hooks/useKnowledgeBase'
import { extractFileName } from '../utils'
import { extractFileName, ValidatorFilePath } from '../utils'
import useGetSetState from '@/pages/pluginHub/hooks/useGetSetState'
import { randomString } from '@/utils/randomUtil'

Expand Down Expand Up @@ -201,28 +201,7 @@ const ImportModal: React.FC<TImportModalProps> = (props) => {
name: 'importPath',
rules: [
{
validator: (_, value) => {
if (!value) {
return Promise.reject('请上传文件')
}

// 多个文件用逗号分隔
const files = value.split(',').map((i) => i.trim())

// 校验格式:必须有文件名 + 后缀
const reg = /^[^.\/]+?\.[^.\/]+$/

for (const file of files) {
// 取文件名 (兼容 windows、mac 路径)
const fileName = file.split('/').pop()?.split('\\').pop()

if (!fileName || !reg.test(fileName)) {
return Promise.reject('请上传有效的文件')
}
}

return Promise.resolve()
},
validator: ValidatorFilePath,
},
],
}}
Expand Down
26 changes: 26 additions & 0 deletions app/renderer/src/main/src/pages/KnowledgeBase/utils.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ import joyrideFirstStepImg from '@/pages/KnowledgeBase/images/joyride-first-step
import knowledgeJoyrideThree from '@/pages/KnowledgeBase/images/knowledge-joyride-three.mp4'
import { Step } from 'react-joyride'
import styles from './knowledgeBase.module.scss'
import { RuleObject } from 'antd/lib/form'

const { ipcRenderer } = window.require('electron')

Expand Down Expand Up @@ -1041,6 +1042,30 @@ const downloadOnlineRagWithEvents = (

const exclude = ['llama-server', 'model-Qwen3-Embedding-0.6B-Q4']

type TValidatorFilePath = (_: RuleObject, value: string) => Promise<any>

const ValidatorFilePath: TValidatorFilePath = (_, value) => {
if (!value) {
return Promise.reject('请上传文件')
}

const files = value.split(',').map((i) => i.trim())

for (const file of files) {
// 兼容 windows/mac
const fileName = file.split('/').pop()?.split('\\').pop()

// 必须存在扩展名
const reg = /^.+\.[^.]+$/

if (!fileName || !reg.test(fileName)) {
return Promise.reject('请上传有效的文件')
}
}

return Promise.resolve()
}

export {
targetInstallList,
getFileInfoList,
Expand Down Expand Up @@ -1076,4 +1101,5 @@ export {
downloadWithEvents,
downloadOnlineRagWithEvents,
exclude,
ValidatorFilePath,
}
Loading