Supports obtaining PDF documents from web pages (#1107)

### What problem does this PR solve?

Knowledge base management supports crawling information from web pages
and generating PDF documents

### Type of change
- [x] New Feature (Support document from web pages)
This commit is contained in:
Fakai Zhao
2024-06-11 10:45:19 +08:00
committed by GitHub
parent 68a698655a
commit 7eb69fe6d9
14 changed files with 336 additions and 17 deletions

View File

@ -1,13 +1,13 @@
import { IChunk, IKnowledgeFile } from '@/interfaces/database/knowledge';
import { IChangeParserConfigRequestBody } from '@/interfaces/request/document';
import { api_host } from '@/utils/api';
import { buildChunkHighlights } from '@/utils/documentUtils';
import { UploadFile } from 'antd';
import { useCallback, useMemo, useState } from 'react';
import { IHighlight } from 'react-pdf-highlighter';
import { useDispatch, useSelector } from 'umi';
import { useGetKnowledgeSearchParams } from './routeHook';
import { useOneNamespaceEffectsLoading } from './storeHooks';
import {IChunk, IKnowledgeFile} from '@/interfaces/database/knowledge';
import {IChangeParserConfigRequestBody} from '@/interfaces/request/document';
import {api_host} from '@/utils/api';
import {buildChunkHighlights} from '@/utils/documentUtils';
import {UploadFile} from 'antd';
import {useCallback, useMemo, useState} from 'react';
import {IHighlight} from 'react-pdf-highlighter';
import {useDispatch, useSelector} from 'umi';
import {useGetKnowledgeSearchParams} from './routeHook';
import {useOneNamespaceEffectsLoading} from './storeHooks';
export const useGetDocumentUrl = (documentId?: string) => {
const getDocumentUrl = useCallback(
@ -207,6 +207,28 @@ export const useUploadDocument = () => {
return uploadDocument;
};
export const useWebCrawl = () => {
const dispatch = useDispatch();
const { knowledgeId } = useGetKnowledgeSearchParams();
return useCallback(
(name: string, url: string) => {
try {
return dispatch<any>({
type: 'kFModel/web_crawl',
payload: {
name,
url,
kb_id: knowledgeId,
},
});
} catch (errorInfo) {
console.log('Failed:', errorInfo);
}
},
[dispatch],
);
};
export const useRunDocument = () => {
const dispatch = useDispatch();