diff --git a/web/src/components/pdf-previewer/hooks.ts b/web/src/components/pdf-previewer/hooks.ts new file mode 100644 index 000000000..80bc64168 --- /dev/null +++ b/web/src/components/pdf-previewer/hooks.ts @@ -0,0 +1,18 @@ +import axios from 'axios'; +import { useCallback, useEffect, useState } from 'react'; + +export const useCatchDocumentError = (url: string) => { + const [error, setError] = useState(''); + + const fetchDocument = useCallback(async () => { + const { data } = await axios.get(url); + if (data.retcode !== 0) { + setError(data?.retmsg); + } + }, [url]); + useEffect(() => { + fetchDocument(); + }, [fetchDocument]); + + return error; +}; diff --git a/web/src/components/pdf-previewer/index.tsx b/web/src/components/pdf-previewer/index.tsx index 7f1b7d4f5..e2e37d6e4 100644 --- a/web/src/components/pdf-previewer/index.tsx +++ b/web/src/components/pdf-previewer/index.tsx @@ -14,6 +14,8 @@ import { Popup, } from 'react-pdf-highlighter'; +import FileError from '@/pages/document-viewer/file-error'; +import { useCatchDocumentError } from './hooks'; import styles from './index.less'; interface IProps { @@ -38,6 +40,8 @@ const DocumentPreviewer = ({ chunk, documentId, visible }: IProps) => { const { highlights: state, setWidthAndHeight } = useGetChunkHighlights(chunk); const ref = useRef<(highlight: IHighlight) => void>(() => {}); const [loaded, setLoaded] = useState(false); + const url = getDocumentUrl(); + const error = useCatchDocumentError(url); const resetHash = () => {}; @@ -55,9 +59,10 @@ const DocumentPreviewer = ({ chunk, documentId, visible }: IProps) => { return (
} workerSrc="/pdfjs-dist/pdf.worker.min.js" + errorMessage={{error}} > {(pdfDocument) => { pdfDocument.getPage(1).then((page) => { diff --git a/web/src/pages/add-knowledge/components/knowledge-chunk/components/document-preview/preview.tsx b/web/src/pages/add-knowledge/components/knowledge-chunk/components/document-preview/preview.tsx index f228e8e23..14860042c 100644 --- a/web/src/pages/add-knowledge/components/knowledge-chunk/components/document-preview/preview.tsx +++ b/web/src/pages/add-knowledge/components/knowledge-chunk/components/document-preview/preview.tsx @@ -11,6 +11,8 @@ import { import { useGetChunkHighlights } from '../../hooks'; import { useGetDocumentUrl } from './hooks'; +import { useCatchDocumentError } from '@/components/pdf-previewer/hooks'; +import FileError from '@/pages/document-viewer/file-error'; import styles from './index.less'; interface IProps { @@ -30,9 +32,11 @@ const HighlightPopup = ({ // TODO: merge with DocumentPreviewer const Preview = ({ selectedChunkId }: IProps) => { const url = useGetDocumentUrl(); + useCatchDocumentError(url); const { highlights: state, setWidthAndHeight } = useGetChunkHighlights(selectedChunkId); const ref = useRef<(highlight: IHighlight) => void>(() => {}); + const error = useCatchDocumentError(url); const resetHash = () => {}; @@ -48,6 +52,7 @@ const Preview = ({ selectedChunkId }: IProps) => { url={url} beforeLoad={} workerSrc="/pdfjs-dist/pdf.worker.min.js" + errorMessage={{error}} > {(pdfDocument) => { pdfDocument.getPage(1).then((page) => { diff --git a/web/src/pages/add-knowledge/components/knowledge-testing/testing-control/index.tsx b/web/src/pages/add-knowledge/components/knowledge-testing/testing-control/index.tsx index 51d494dc9..2fd9c70ca 100644 --- a/web/src/pages/add-knowledge/components/knowledge-testing/testing-control/index.tsx +++ b/web/src/pages/add-knowledge/components/knowledge-testing/testing-control/index.tsx @@ -1,5 +1,5 @@ import SimilaritySlider from '@/components/similarity-slider'; -import { Button, Card, Divider, Flex, Form, Input, Slider } from 'antd'; +import { Button, Card, Divider, Flex, Form, Input } from 'antd'; import { FormInstance } from 'antd/lib'; import { useTranslate } from '@/hooks/commonHooks'; @@ -9,7 +9,6 @@ import styles from './index.less'; type FieldType = { similarity_threshold?: number; vector_similarity_weight?: number; - top_k?: number; question: string; }; @@ -36,22 +35,8 @@ const TestingControl = ({ form, handleTesting }: IProps) => {

{t('testingDescription')}

-
+ - - label="Top K" - name={'top_k'} - tooltip={t('topKTip')} - > - - name={'question'} diff --git a/web/src/pages/document-viewer/file-error/index.tsx b/web/src/pages/document-viewer/file-error/index.tsx index c34dbff60..d6518cf0b 100644 --- a/web/src/pages/document-viewer/file-error/index.tsx +++ b/web/src/pages/document-viewer/file-error/index.tsx @@ -1,13 +1,17 @@ import { Alert, Flex } from 'antd'; import { useTranslate } from '@/hooks/commonHooks'; +import React from 'react'; import styles from './index.less'; -const FileError = () => { +const FileError = ({ children }: React.PropsWithChildren) => { const { t } = useTranslate('fileManager'); return ( - {t('fileError')}}> + {children || t('fileError')}} + > ); };