From 5effbfac80a530403e396849420e1f8482a15312 Mon Sep 17 00:00:00 2001 From: balibabu Date: Wed, 15 May 2024 13:58:30 +0800 Subject: [PATCH] fix: remove Top K in retrieval testing #770 and if the document parsing fails, the error message returned by the backend is displayed (#782) ### What problem does this PR solve? fix: remove Top K in retrieval testing #770 fix: if the document parsing fails, the error message returned by the backend is displayed. ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) --- web/src/components/pdf-previewer/hooks.ts | 18 ++++++++++++++++++ web/src/components/pdf-previewer/index.tsx | 7 ++++++- .../components/document-preview/preview.tsx | 5 +++++ .../testing-control/index.tsx | 19 ++----------------- .../document-viewer/file-error/index.tsx | 8 ++++++-- 5 files changed, 37 insertions(+), 20 deletions(-) create mode 100644 web/src/components/pdf-previewer/hooks.ts 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')}} + > ); };