feat: change all file names to lowercase #1574 (#1575)

### What problem does this PR solve?

feat: change all file names to lowercase #1574

### Type of change


- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
balibabu 2024-07-17 19:07:34 +08:00 committed by GitHub
parent 06fd35d420
commit 58e95f76c1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
130 changed files with 1643 additions and 1608 deletions

View File

@ -1,7 +1,7 @@
import { import {
useFetchTenantInfo, useFetchTenantInfo,
useSelectParserList, useSelectParserList,
} from '@/hooks/userSettingHook'; } from '@/hooks/user-setting-hooks';
import { useEffect, useMemo, useState } from 'react'; import { useEffect, useMemo, useState } from 'react';
const ParserListMap = new Map([ const ParserListMap = new Map([

View File

@ -21,7 +21,7 @@ import omit from 'lodash/omit';
import React, { useEffect, useMemo } from 'react'; import React, { useEffect, useMemo } from 'react';
import { useFetchParserListOnMount } from './hooks'; import { useFetchParserListOnMount } from './hooks';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import LayoutRecognize from '../layout-recognize'; import LayoutRecognize from '../layout-recognize';
import ParseConfiguration, { import ParseConfiguration, {
showRaptorParseConfiguration, showRaptorParseConfiguration,

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { CheckOutlined, CopyOutlined } from '@ant-design/icons'; import { CheckOutlined, CopyOutlined } from '@ant-design/icons';
import { Tooltip } from 'antd'; import { Tooltip } from 'antd';
import { useState } from 'react'; import { useState } from 'react';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { IModalProps } from '@/interfaces/common'; import { IModalProps } from '@/interfaces/common';
import { InboxOutlined } from '@ant-design/icons'; import { InboxOutlined } from '@ant-design/icons';
import { import {

View File

@ -1,5 +1,5 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { useFetchKnowledgeList } from '@/hooks/knowledgeHook'; import { useFetchKnowledgeList } from '@/hooks/knowledge-hooks';
import { Form, Select } from 'antd'; import { Form, Select } from 'antd';
const KnowledgeBaseItem = () => { const KnowledgeBaseItem = () => {

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Form, Switch } from 'antd'; import { Form, Switch } from 'antd';
const LayoutRecognize = () => { const LayoutRecognize = () => {

View File

@ -6,8 +6,8 @@ import {
import { Divider, Flex, Form, InputNumber, Select, Slider, Switch } from 'antd'; import { Divider, Flex, Form, InputNumber, Select, Slider, Switch } from 'antd';
import camelCase from 'lodash/camelCase'; import camelCase from 'lodash/camelCase';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { useSelectLlmOptionsByModelType } from '@/hooks/llmHooks'; import { useSelectLlmOptionsByModelType } from '@/hooks/llm-hooks';
import { useCallback, useMemo } from 'react'; import { useCallback, useMemo } from 'react';
import styles from './index.less'; import styles from './index.less';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Flex, Form, InputNumber, Slider } from 'antd'; import { Flex, Form, InputNumber, Slider } from 'antd';
const MaxTokenNumber = () => { const MaxTokenNumber = () => {

View File

@ -1,8 +1,8 @@
import { ReactComponent as AssistantIcon } from '@/assets/svg/assistant.svg'; import { ReactComponent as AssistantIcon } from '@/assets/svg/assistant.svg';
import { MessageType } from '@/constants/chat'; import { MessageType } from '@/constants/chat';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { useGetDocumentUrl } from '@/hooks/documentHooks'; import { useGetDocumentUrl } from '@/hooks/document-hooks';
import { useSelectFileThumbnails } from '@/hooks/knowledgeHook'; import { useSelectFileThumbnails } from '@/hooks/knowledge-hooks';
import { IReference, Message } from '@/interfaces/database/chat'; import { IReference, Message } from '@/interfaces/database/chat';
import { IChunk } from '@/interfaces/database/knowledge'; import { IChunk } from '@/interfaces/database/knowledge';
import classNames from 'classnames'; import classNames from 'classnames';

View File

@ -1,4 +1,4 @@
import { useShowDeleteConfirm } from '@/hooks/commonHooks'; import { useShowDeleteConfirm } from '@/hooks/common-hooks';
import { DeleteOutlined, MoreOutlined } from '@ant-design/icons'; import { DeleteOutlined, MoreOutlined } from '@ant-design/icons';
import { Dropdown, MenuProps, Space } from 'antd'; import { Dropdown, MenuProps, Space } from 'antd';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { PlusOutlined } from '@ant-design/icons'; import { PlusOutlined } from '@ant-design/icons';
import { import {
Button, Button,
@ -12,7 +12,7 @@ import {
} from 'antd'; } from 'antd';
import random from 'lodash/random'; import random from 'lodash/random';
export const excludedParseMethods = ['table', 'resume', 'one',"picture"]; export const excludedParseMethods = ['table', 'resume', 'one', 'picture'];
export const showRaptorParseConfiguration = (parserId: string) => { export const showRaptorParseConfiguration = (parserId: string) => {
return !excludedParseMethods.includes(parserId); return !excludedParseMethods.includes(parserId);

View File

@ -1,7 +1,7 @@
import { import {
useGetChunkHighlights, useGetChunkHighlights,
useGetDocumentUrl, useGetDocumentUrl,
} from '@/hooks/documentHooks'; } from '@/hooks/document-hooks';
import { IChunk } from '@/interfaces/database/knowledge'; import { IChunk } from '@/interfaces/database/knowledge';
import { Skeleton } from 'antd'; import { Skeleton } from 'antd';
import { useEffect, useRef, useState } from 'react'; import { useEffect, useRef, useState } from 'react';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Form, Input, Modal } from 'antd'; import { Form, Input, Modal } from 'antd';
import { useEffect } from 'react'; import { useEffect } from 'react';
import { IModalManagerChildrenProps } from '../modal-manager'; import { IModalManagerChildrenProps } from '../modal-manager';

View File

@ -1,6 +1,6 @@
import { LlmModelType } from '@/constants/knowledge'; import { LlmModelType } from '@/constants/knowledge';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { useSelectLlmOptionsByModelType } from '@/hooks/llmHooks'; import { useSelectLlmOptionsByModelType } from '@/hooks/llm-hooks';
import { Form, Select, Slider } from 'antd'; import { Form, Select, Slider } from 'antd';
type FieldType = { type FieldType = {

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Form, Slider } from 'antd'; import { Form, Slider } from 'antd';
type FieldType = { type FieldType = {

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Form, Slider } from 'antd'; import { Form, Slider } from 'antd';
type FieldType = { type FieldType = {

View File

@ -1,6 +1,6 @@
import { useCallback } from 'react'; import { useCallback } from 'react';
import { useDispatch } from 'umi'; import { useDispatch } from 'umi';
import { useGetKnowledgeSearchParams } from './routeHook'; import { useGetKnowledgeSearchParams } from './route-hook';
interface PayloadType { interface PayloadType {
doc_id: string; doc_id: string;

View File

@ -6,8 +6,8 @@ import { UploadFile } from 'antd';
import { useCallback, useMemo, useState } from 'react'; import { useCallback, useMemo, useState } from 'react';
import { IHighlight } from 'react-pdf-highlighter'; import { IHighlight } from 'react-pdf-highlighter';
import { useDispatch, useSelector } from 'umi'; import { useDispatch, useSelector } from 'umi';
import { useGetKnowledgeSearchParams } from './routeHook'; import { useGetKnowledgeSearchParams } from './route-hook';
import { useOneNamespaceEffectsLoading } from './storeHooks'; import { useOneNamespaceEffectsLoading } from './store-hooks';
export const useGetDocumentUrl = (documentId?: string) => { export const useGetDocumentUrl = (documentId?: string) => {
const getDocumentUrl = useCallback( const getDocumentUrl = useCallback(

View File

@ -1,9 +1,11 @@
import { useShowDeleteConfirm } from '@/hooks/commonHooks'; import { useShowDeleteConfirm } from '@/hooks/common-hooks';
import { IKnowledge } from '@/interfaces/database/knowledge'; import { IKnowledge } from '@/interfaces/database/knowledge';
import kbService from '@/services/knowledge-service';
import { useQuery } from '@tanstack/react-query';
import { useCallback, useEffect, useMemo } from 'react'; import { useCallback, useEffect, useMemo } from 'react';
import { useDispatch, useSearchParams, useSelector } from 'umi'; import { useDispatch, useSearchParams, useSelector } from 'umi';
import { useGetKnowledgeSearchParams } from './routeHook'; import { useGetKnowledgeSearchParams } from './route-hook';
import { useOneNamespaceEffectsLoading } from './storeHooks'; import { useOneNamespaceEffectsLoading } from './store-hooks';
export const useKnowledgeBaseId = (): string => { export const useKnowledgeBaseId = (): string => {
const [searchParams] = useSearchParams(); const [searchParams] = useSearchParams();
@ -158,6 +160,23 @@ export const useFetchKnowledgeList = (
return { list, loading, fetchList }; return { list, loading, fetchList };
}; };
export const useNextFetchKnowledgeList = (): {
data: any[];
loading: boolean;
} => {
const { data, isFetching: loading } = useQuery({
queryKey: ['fetchKnowledgeList'],
initialData: [],
queryFn: async () => {
const { data } = await kbService.getList();
return data?.data ?? [];
},
});
return { data, loading };
};
export const useSelectFileThumbnails = () => { export const useSelectFileThumbnails = () => {
const fileThumbnails: Record<string, string> = useSelector( const fileThumbnails: Record<string, string> = useSelector(
(state: any) => state.kFModel.fileThumbnails, (state: any) => state.kFModel.fileThumbnails,

View File

@ -20,15 +20,15 @@ import {
} from 'react'; } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useDispatch } from 'umi'; import { useDispatch } from 'umi';
import { useSetModalState, useTranslate } from './commonHooks'; import { useSetModalState, useTranslate } from './common-hooks';
import { useSetDocumentParser } from './documentHooks'; import { useSetDocumentParser } from './document-hooks';
import { useFetchLlmList } from './llmHooks'; import { useFetchLlmList } from './llm-hooks';
import { useOneNamespaceEffectsLoading } from './storeHooks'; import { useOneNamespaceEffectsLoading } from './store-hooks';
import { import {
useFetchTenantInfo, useFetchTenantInfo,
useSaveSetting, useSaveSetting,
useSelectTenantInfo, useSelectTenantInfo,
} from './userSettingHook'; } from './user-setting-hooks';
export const useChangeDocumentParser = (documentId: string) => { export const useChangeDocumentParser = (documentId: string) => {
const setDocumentParser = useSetDocumentParser(); const setDocumentParser = useSetDocumentParser();

View File

@ -1,6 +1,6 @@
import { ITenantInfo } from '@/interfaces/database/knowledge'; import { ITenantInfo } from '@/interfaces/database/knowledge';
import { ISystemStatus, IUserInfo } from '@/interfaces/database/userSetting'; import { ISystemStatus, IUserInfo } from '@/interfaces/database/userSetting';
import userService from '@/services/userService'; import userService from '@/services/user-service';
import authorizationUtil from '@/utils/authorizationUtil'; import authorizationUtil from '@/utils/authorizationUtil';
import { useCallback, useEffect, useMemo, useState } from 'react'; import { useCallback, useEffect, useMemo, useState } from 'react';
import { history, useDispatch, useSelector } from 'umi'; import { history, useDispatch, useSelector } from 'umi';

View File

@ -1,8 +1,8 @@
import { ReactComponent as FileIcon } from '@/assets/svg/file-management.svg'; import { ReactComponent as FileIcon } from '@/assets/svg/file-management.svg';
import { ReactComponent as GraphIcon } from '@/assets/svg/graph.svg'; import { ReactComponent as GraphIcon } from '@/assets/svg/graph.svg';
import { ReactComponent as KnowledgeBaseIcon } from '@/assets/svg/knowledge-base.svg'; import { ReactComponent as KnowledgeBaseIcon } from '@/assets/svg/knowledge-base.svg';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { useNavigateWithFromState } from '@/hooks/routeHook'; import { useNavigateWithFromState } from '@/hooks/route-hook';
import { Flex, Layout, Radio, Space, theme } from 'antd'; import { Flex, Layout, Radio, Space, theme } from 'antd';
import { useCallback, useMemo } from 'react'; import { useCallback, useMemo } from 'react';
import { useLocation } from 'umi'; import { useLocation } from 'umi';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { DownOutlined, GithubOutlined } from '@ant-design/icons'; import { DownOutlined, GithubOutlined } from '@ant-design/icons';
import { Dropdown, MenuProps, Space } from 'antd'; import { Dropdown, MenuProps, Space } from 'antd';
import camelCase from 'lodash/camelCase'; import camelCase from 'lodash/camelCase';

View File

@ -1,30 +1,33 @@
import { useFetchUserInfo, useSelectUserInfo } from '@/hooks/userSettingHook'; import {
import { Avatar } from 'antd'; useFetchUserInfo,
import React from 'react'; useSelectUserInfo,
import { history } from 'umi'; } from '@/hooks/user-setting-hooks';
import { Avatar } from 'antd';
import styles from '../../index.less'; import React from 'react';
import { history } from 'umi';
const App: React.FC = () => {
const userInfo = useSelectUserInfo(); import styles from '../../index.less';
const toSetting = () => { const App: React.FC = () => {
history.push('/user-setting'); const userInfo = useSelectUserInfo();
};
const toSetting = () => {
useFetchUserInfo(); history.push('/user-setting');
};
return (
<Avatar useFetchUserInfo();
size={32}
onClick={toSetting} return (
className={styles.clickAvailable} <Avatar
src={ size={32}
userInfo.avatar ?? onClick={toSetting}
'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png' className={styles.clickAvailable}
} src={
/> userInfo.avatar ??
); 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png'
}; }
/>
export default App; );
};
export default App;

View File

@ -1,5 +1,5 @@
import { useDeleteChunkByIds } from '@/hooks/knowledgeHook'; import { useDeleteChunkByIds } from '@/hooks/knowledge-hooks';
import { useOneNamespaceEffectsLoading } from '@/hooks/storeHooks'; import { useOneNamespaceEffectsLoading } from '@/hooks/store-hooks';
import { DeleteOutlined } from '@ant-design/icons'; import { DeleteOutlined } from '@ant-design/icons';
import { Checkbox, Divider, Form, Input, Modal, Space } from 'antd'; import { Checkbox, Divider, Form, Input, Modal, Space } from 'antd';
import React, { useCallback, useEffect, useState } from 'react'; import React, { useCallback, useEffect, useState } from 'react';

View File

@ -1,7 +1,7 @@
import { ReactComponent as FilterIcon } from '@/assets/filter.svg'; import { ReactComponent as FilterIcon } from '@/assets/filter.svg';
import { KnowledgeRouteKey } from '@/constants/knowledge'; import { KnowledgeRouteKey } from '@/constants/knowledge';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { useKnowledgeBaseId } from '@/hooks/knowledgeHook'; import { useKnowledgeBaseId } from '@/hooks/knowledge-hooks';
import { import {
ArrowLeftOutlined, ArrowLeftOutlined,
CheckCircleOutlined, CheckCircleOutlined,

View File

@ -1,4 +1,4 @@
import { useGetKnowledgeSearchParams } from '@/hooks/routeHook'; import { useGetKnowledgeSearchParams } from '@/hooks/route-hook';
import { api_host } from '@/utils/api'; import { api_host } from '@/utils/api';
import { useSize } from 'ahooks'; import { useSize } from 'ahooks';
import { CustomTextRenderer } from 'node_modules/react-pdf/dist/esm/shared/types'; import { CustomTextRenderer } from 'node_modules/react-pdf/dist/esm/shared/types';

View File

@ -1,4 +1,4 @@
import { useOneNamespaceEffectsLoading } from '@/hooks/storeHooks'; import { useOneNamespaceEffectsLoading } from '@/hooks/store-hooks';
import { IChunk, IKnowledgeFile } from '@/interfaces/database/knowledge'; import { IChunk, IKnowledgeFile } from '@/interfaces/database/knowledge';
import { buildChunkHighlights } from '@/utils/documentUtils'; import { buildChunkHighlights } from '@/utils/documentUtils';
import { useCallback, useMemo, useState } from 'react'; import { useCallback, useMemo, useState } from 'react';

View File

@ -1,5 +1,5 @@
import { useFetchChunkList } from '@/hooks/chunkHooks'; import { useFetchChunkList } from '@/hooks/chunk-hooks';
import { useDeleteChunkByIds } from '@/hooks/knowledgeHook'; import { useDeleteChunkByIds } from '@/hooks/knowledge-hooks';
import type { PaginationProps } from 'antd'; import type { PaginationProps } from 'antd';
import { Divider, Flex, Pagination, Space, Spin, message } from 'antd'; import { Divider, Flex, Pagination, Space, Spin, message } from 'antd';
import classNames from 'classnames'; import classNames from 'classnames';

View File

@ -1,6 +1,6 @@
import { BaseState } from '@/interfaces/common'; import { BaseState } from '@/interfaces/common';
import { IChunk, IKnowledgeFile } from '@/interfaces/database/knowledge'; import { IChunk, IKnowledgeFile } from '@/interfaces/database/knowledge';
import kbService from '@/services/kbService'; import kbService from '@/services/knowledge-service';
import { message } from 'antd'; import { message } from 'antd';
import { pick } from 'lodash'; import { pick } from 'lodash';
// import { delay } from '@/utils/storeUtil'; // import { delay } from '@/utils/storeUtil';

View File

@ -6,17 +6,17 @@ import {
useRunDocument, useRunDocument,
useSelectDocumentList, useSelectDocumentList,
useUploadDocument, useUploadDocument,
} from '@/hooks/documentHooks'; } from '@/hooks/document-hooks';
import { import {
useDeleteDocumentById, useDeleteDocumentById,
useFetchKnowledgeDetail, useFetchKnowledgeDetail,
useKnowledgeBaseId, useKnowledgeBaseId,
} from '@/hooks/knowledgeHook'; } from '@/hooks/knowledge-hooks';
import { import {
useChangeDocumentParser, useChangeDocumentParser,
useSetSelectedRecord, useSetSelectedRecord,
} from '@/hooks/logic-hooks'; } from '@/hooks/logic-hooks';
import { useFetchTenantInfo } from '@/hooks/userSettingHook'; import { useFetchTenantInfo } from '@/hooks/user-setting-hooks';
import { IKnowledgeFile } from '@/interfaces/database/knowledge'; import { IKnowledgeFile } from '@/interfaces/database/knowledge';
import { getExtension, isFileUploadDone } from '@/utils/documentUtils'; import { getExtension, isFileUploadDone } from '@/utils/documentUtils';
import { import {
@ -40,7 +40,7 @@ import classNames from 'classnames';
import { ReactElement, useCallback, useMemo, useRef, useState } from 'react'; import { ReactElement, useCallback, useMemo, useRef, useState } from 'react';
import { Link, useNavigate } from 'umi'; import { Link, useNavigate } from 'umi';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import styles from './index.less'; import styles from './index.less';
const { Dragger } = Upload; const { Dragger } = Upload;

View File

@ -3,13 +3,13 @@ import { ReactComponent as DeleteIcon } from '@/assets/svg/delete.svg';
import { ReactComponent as DisableIcon } from '@/assets/svg/disable.svg'; import { ReactComponent as DisableIcon } from '@/assets/svg/disable.svg';
import { ReactComponent as EnableIcon } from '@/assets/svg/enable.svg'; import { ReactComponent as EnableIcon } from '@/assets/svg/enable.svg';
import { ReactComponent as RunIcon } from '@/assets/svg/run.svg'; import { ReactComponent as RunIcon } from '@/assets/svg/run.svg';
import { useShowDeleteConfirm, useTranslate } from '@/hooks/commonHooks'; import { useShowDeleteConfirm, useTranslate } from '@/hooks/common-hooks';
import { import {
useRemoveDocument, useRemoveDocument,
useRunDocument, useRunDocument,
useSetDocumentStatus, useSetDocumentStatus,
} from '@/hooks/documentHooks'; } from '@/hooks/document-hooks';
import { useGetKnowledgeSearchParams } from '@/hooks/routeHook'; import { useGetKnowledgeSearchParams } from '@/hooks/route-hook';
import { import {
DownOutlined, DownOutlined,
FileOutlined, FileOutlined,

View File

@ -1,4 +1,4 @@
import { useSetModalState, useTranslate } from '@/hooks/commonHooks'; import { useSetModalState, useTranslate } from '@/hooks/common-hooks';
import { import {
useCreateDocument, useCreateDocument,
useFetchDocumentList, useFetchDocumentList,
@ -8,10 +8,10 @@ import {
useSetDocumentParser, useSetDocumentParser,
useUploadDocument, useUploadDocument,
useWebCrawl, useWebCrawl,
} from '@/hooks/documentHooks'; } from '@/hooks/document-hooks';
import { useGetKnowledgeSearchParams } from '@/hooks/routeHook'; import { useGetKnowledgeSearchParams } from '@/hooks/route-hook';
import { useOneNamespaceEffectsLoading } from '@/hooks/storeHooks'; import { useOneNamespaceEffectsLoading } from '@/hooks/store-hooks';
import { useFetchTenantInfo } from '@/hooks/userSettingHook'; import { useFetchTenantInfo } from '@/hooks/user-setting-hooks';
import { Pagination } from '@/interfaces/common'; import { Pagination } from '@/interfaces/common';
import { IChangeParserConfigRequestBody } from '@/interfaces/request/document'; import { IChangeParserConfigRequestBody } from '@/interfaces/request/document';
import { getUnSupportedFilesCount } from '@/utils/documentUtils'; import { getUnSupportedFilesCount } from '@/utils/documentUtils';
@ -296,13 +296,13 @@ export const useHandleWebCrawl = () => {
const webCrawl = useWebCrawl(); const webCrawl = useWebCrawl();
const onWebCrawlUploadOk = useCallback( const onWebCrawlUploadOk = useCallback(
async (name: string, url: string ) => { async (name: string, url: string) => {
const ret = await webCrawl(name, url); const ret = await webCrawl(name, url);
if (ret === 0) { if (ret === 0) {
hideWebCrawlUploadModal(); hideWebCrawlUploadModal();
return 0 return 0;
} }
return -1 return -1;
}, },
[webCrawl, hideWebCrawlUploadModal], [webCrawl, hideWebCrawlUploadModal],
); );

View File

@ -3,9 +3,9 @@ import SvgIcon from '@/components/svg-icon';
import { import {
useSelectDocumentList, useSelectDocumentList,
useSetDocumentStatus, useSetDocumentStatus,
} from '@/hooks/documentHooks'; } from '@/hooks/document-hooks';
import { useSetSelectedRecord } from '@/hooks/logic-hooks'; import { useSetSelectedRecord } from '@/hooks/logic-hooks';
import { useSelectParserList } from '@/hooks/userSettingHook'; import { useSelectParserList } from '@/hooks/user-setting-hooks';
import { IKnowledgeFile } from '@/interfaces/database/knowledge'; import { IKnowledgeFile } from '@/interfaces/database/knowledge';
import { getExtension } from '@/utils/documentUtils'; import { getExtension } from '@/utils/documentUtils';
import { Divider, Flex, Switch, Table, Typography } from 'antd'; import { Divider, Flex, Switch, Table, Typography } from 'antd';

View File

@ -1,276 +1,276 @@
import { BaseState } from '@/interfaces/common'; import { BaseState } from '@/interfaces/common';
import { IKnowledgeFile } from '@/interfaces/database/knowledge'; import { IKnowledgeFile } from '@/interfaces/database/knowledge';
import i18n from '@/locales/config'; import i18n from '@/locales/config';
import kbService, { getDocumentFile } from '@/services/kbService'; import kbService, { getDocumentFile } from '@/services/knowledge-service';
import { message } from 'antd'; import { message } from 'antd';
import omit from 'lodash/omit'; import omit from 'lodash/omit';
import pick from 'lodash/pick'; import pick from 'lodash/pick';
import { DvaModel } from 'umi'; import { DvaModel } from 'umi';
export interface KFModelState extends BaseState { export interface KFModelState extends BaseState {
tenantIfo: any; tenantIfo: any;
data: IKnowledgeFile[]; data: IKnowledgeFile[];
total: number; total: number;
currentRecord: Nullable<IKnowledgeFile>; currentRecord: Nullable<IKnowledgeFile>;
fileThumbnails: Record<string, string>; fileThumbnails: Record<string, string>;
} }
const model: DvaModel<KFModelState> = { const model: DvaModel<KFModelState> = {
namespace: 'kFModel', namespace: 'kFModel',
state: { state: {
tenantIfo: {}, tenantIfo: {},
data: [], data: [],
total: 0, total: 0,
currentRecord: null, currentRecord: null,
searchString: '', searchString: '',
pagination: { pagination: {
current: 1, current: 1,
pageSize: 10, pageSize: 10,
}, },
fileThumbnails: {} as Record<string, string>, fileThumbnails: {} as Record<string, string>,
}, },
reducers: { reducers: {
updateState(state, { payload }) { updateState(state, { payload }) {
return { return {
...state, ...state,
...payload, ...payload,
}; };
}, },
setCurrentRecord(state, { payload }) { setCurrentRecord(state, { payload }) {
return { ...state, currentRecord: payload }; return { ...state, currentRecord: payload };
}, },
setSearchString(state, { payload }) { setSearchString(state, { payload }) {
return { ...state, searchString: payload }; return { ...state, searchString: payload };
}, },
setPagination(state, { payload }) { setPagination(state, { payload }) {
return { ...state, pagination: { ...state.pagination, ...payload } }; return { ...state, pagination: { ...state.pagination, ...payload } };
}, },
setFileThumbnails(state, { payload }) { setFileThumbnails(state, { payload }) {
return { ...state, fileThumbnails: payload }; return { ...state, fileThumbnails: payload };
}, },
}, },
effects: { effects: {
*createKf({ payload = {} }, { call }) { *createKf({ payload = {} }, { call }) {
const { data } = yield call(kbService.createKb, payload); const { data } = yield call(kbService.createKb, payload);
const { retcode } = data; const { retcode } = data;
if (retcode === 0) { if (retcode === 0) {
message.success(i18n.t('message.created')); message.success(i18n.t('message.created'));
} }
}, },
*updateKf({ payload = {} }, { call }) { *updateKf({ payload = {} }, { call }) {
const { data } = yield call(kbService.updateKb, payload); const { data } = yield call(kbService.updateKb, payload);
const { retcode } = data; const { retcode } = data;
if (retcode === 0) { if (retcode === 0) {
message.success(i18n.t('message.modified')); message.success(i18n.t('message.modified'));
} }
}, },
*getKfDetail({ payload = {} }, { call }) { *getKfDetail({ payload = {} }, { call }) {
const { data } = yield call(kbService.get_kb_detail, payload); const { data } = yield call(kbService.get_kb_detail, payload);
}, },
*getKfList({ payload = {} }, { call, put, select }) { *getKfList({ payload = {} }, { call, put, select }) {
const state: KFModelState = yield select((state: any) => state.kFModel); const state: KFModelState = yield select((state: any) => state.kFModel);
const requestBody = { const requestBody = {
...payload, ...payload,
page: state.pagination.current, page: state.pagination.current,
page_size: state.pagination.pageSize, page_size: state.pagination.pageSize,
}; };
if (state.searchString) { if (state.searchString) {
requestBody['keywords'] = state.searchString; requestBody['keywords'] = state.searchString;
} }
const { data } = yield call(kbService.get_document_list, requestBody); const { data } = yield call(kbService.get_document_list, requestBody);
const { retcode, data: res } = data; const { retcode, data: res } = data;
if (retcode === 0) { if (retcode === 0) {
yield put({ yield put({
type: 'updateState', type: 'updateState',
payload: { payload: {
data: res.docs, data: res.docs,
total: res.total, total: res.total,
}, },
}); });
} }
}, },
throttledGetDocumentList: [ throttledGetDocumentList: [
function* ({ payload }, { call, put }) { function* ({ payload }, { call, put }) {
yield put({ type: 'getKfList', payload: { kb_id: payload } }); yield put({ type: 'getKfList', payload: { kb_id: payload } });
}, },
{ type: 'throttle', ms: 1000 }, // TODO: Provide type support for this effect { type: 'throttle', ms: 1000 }, // TODO: Provide type support for this effect
], ],
pollGetDocumentList: [ pollGetDocumentList: [
function* ({ payload }, { call, put }) { function* ({ payload }, { call, put }) {
yield put({ type: 'getKfList', payload: { kb_id: payload } }); yield put({ type: 'getKfList', payload: { kb_id: payload } });
}, },
{ type: 'poll', delay: 5000 }, // TODO: Provide type support for this effect { type: 'poll', delay: 5000 }, // TODO: Provide type support for this effect
], ],
*updateDocumentStatus({ payload = {} }, { call, put }) { *updateDocumentStatus({ payload = {} }, { call, put }) {
const { data } = yield call( const { data } = yield call(
kbService.document_change_status, kbService.document_change_status,
pick(payload, ['doc_id', 'status']), pick(payload, ['doc_id', 'status']),
); );
const { retcode } = data; const { retcode } = data;
if (retcode === 0) { if (retcode === 0) {
message.success(i18n.t('message.modified')); message.success(i18n.t('message.modified'));
yield put({ yield put({
type: 'getKfList', type: 'getKfList',
payload: { kb_id: payload.kb_id }, payload: { kb_id: payload.kb_id },
}); });
} }
}, },
*document_rm({ payload = {} }, { call, put }) { *document_rm({ payload = {} }, { call, put }) {
const { data } = yield call(kbService.document_rm, { const { data } = yield call(kbService.document_rm, {
doc_id: payload.doc_id, doc_id: payload.doc_id,
}); });
const { retcode } = data; const { retcode } = data;
if (retcode === 0) { if (retcode === 0) {
message.success(i18n.t('message.deleted')); message.success(i18n.t('message.deleted'));
yield put({ yield put({
type: 'getKfList', type: 'getKfList',
payload: { kb_id: payload.kb_id }, payload: { kb_id: payload.kb_id },
}); });
} }
return retcode; return retcode;
}, },
*document_rename({ payload = {} }, { call, put }) { *document_rename({ payload = {} }, { call, put }) {
const { data } = yield call( const { data } = yield call(
kbService.document_rename, kbService.document_rename,
omit(payload, ['kb_id']), omit(payload, ['kb_id']),
); );
const { retcode } = data; const { retcode } = data;
if (retcode === 0) { if (retcode === 0) {
message.success(i18n.t('message.renamed')); message.success(i18n.t('message.renamed'));
yield put({ yield put({
type: 'getKfList', type: 'getKfList',
payload: { kb_id: payload.kb_id }, payload: { kb_id: payload.kb_id },
}); });
} }
return retcode; return retcode;
}, },
*document_create({ payload = {} }, { call, put }) { *document_create({ payload = {} }, { call, put }) {
const { data } = yield call(kbService.document_create, payload); const { data } = yield call(kbService.document_create, payload);
const { retcode } = data; const { retcode } = data;
if (retcode === 0) { if (retcode === 0) {
yield put({ yield put({
type: 'getKfList', type: 'getKfList',
payload: { kb_id: payload.kb_id }, payload: { kb_id: payload.kb_id },
}); });
message.success(i18n.t('message.created')); message.success(i18n.t('message.created'));
} }
return retcode; return retcode;
}, },
*document_run({ payload = {} }, { call, put }) { *document_run({ payload = {} }, { call, put }) {
const { data } = yield call( const { data } = yield call(
kbService.document_run, kbService.document_run,
omit(payload, ['knowledgeBaseId']), omit(payload, ['knowledgeBaseId']),
); );
const { retcode } = data; const { retcode } = data;
if (retcode === 0) { if (retcode === 0) {
if (payload.knowledgeBaseId) { if (payload.knowledgeBaseId) {
yield put({ yield put({
type: 'getKfList', type: 'getKfList',
payload: { kb_id: payload.knowledgeBaseId }, payload: { kb_id: payload.knowledgeBaseId },
}); });
} }
message.success(i18n.t('message.operated')); message.success(i18n.t('message.operated'));
} }
return retcode; return retcode;
}, },
*document_change_parser({ payload = {} }, { call, put }) { *document_change_parser({ payload = {} }, { call, put }) {
const { data } = yield call( const { data } = yield call(
kbService.document_change_parser, kbService.document_change_parser,
omit(payload, ['kb_id']), omit(payload, ['kb_id']),
); );
const { retcode } = data; const { retcode } = data;
if (retcode === 0) { if (retcode === 0) {
yield put({ yield put({
type: 'getKfList', type: 'getKfList',
payload: { kb_id: payload.kb_id }, payload: { kb_id: payload.kb_id },
}); });
message.success(i18n.t('message.modified')); message.success(i18n.t('message.modified'));
} }
return retcode; return retcode;
}, },
*fetch_document_thumbnails({ payload = {} }, { call, put }) { *fetch_document_thumbnails({ payload = {} }, { call, put }) {
const { data } = yield call(kbService.document_thumbnails, payload); const { data } = yield call(kbService.document_thumbnails, payload);
if (data.retcode === 0) { if (data.retcode === 0) {
yield put({ type: 'setFileThumbnails', payload: data.data }); yield put({ type: 'setFileThumbnails', payload: data.data });
} }
}, },
*fetch_document_file({ payload = {} }, { call }) { *fetch_document_file({ payload = {} }, { call }) {
const documentId = payload; const documentId = payload;
try { try {
const ret = yield call(getDocumentFile, documentId); const ret = yield call(getDocumentFile, documentId);
return ret; return ret;
} catch (error) { } catch (error) {
console.warn(error); console.warn(error);
} }
}, },
*upload_document({ payload = {} }, { call, put }) { *upload_document({ payload = {} }, { call, put }) {
const fileList = payload.fileList; const fileList = payload.fileList;
const formData = new FormData(); const formData = new FormData();
formData.append('kb_id', payload.kb_id); formData.append('kb_id', payload.kb_id);
fileList.forEach((file: any) => { fileList.forEach((file: any) => {
formData.append('file', file); formData.append('file', file);
}); });
const { data } = yield call(kbService.document_upload, formData); const { data } = yield call(kbService.document_upload, formData);
const succeed = data.retcode === 0; const succeed = data.retcode === 0;
if (succeed) { if (succeed) {
message.success(i18n.t('message.uploaded')); message.success(i18n.t('message.uploaded'));
} }
if (succeed || data.retcode === 500) { if (succeed || data.retcode === 500) {
yield put({ yield put({
type: 'getKfList', type: 'getKfList',
payload: { kb_id: payload.kb_id }, payload: { kb_id: payload.kb_id },
}); });
} }
return data; return data;
}, },
*web_crawl({ payload = {} }, { call, put }) { *web_crawl({ payload = {} }, { call, put }) {
const formData = new FormData(); const formData = new FormData();
formData.append('name', payload.name); formData.append('name', payload.name);
formData.append('url', payload.url); formData.append('url', payload.url);
formData.append('kb_id', payload.kb_id); formData.append('kb_id', payload.kb_id);
const { data } = yield call(kbService.web_crawl, formData); const { data } = yield call(kbService.web_crawl, formData);
const succeed = data.retcode === 0; const succeed = data.retcode === 0;
if (succeed) { if (succeed) {
message.success(i18n.t('message.uploaded')); message.success(i18n.t('message.uploaded'));
} }
if (succeed || data.retcode === 500) { if (succeed || data.retcode === 500) {
yield put({ yield put({
type: 'getKfList', type: 'getKfList',
payload: { kb_id: payload.kb_id }, payload: { kb_id: payload.kb_id },
}); });
} }
return data.retcode; return data.retcode;
}, },
}, },
subscriptions: { subscriptions: {
setup({ dispatch, history }) { setup({ dispatch, history }) {
history.listen(({ location }) => { history.listen(({ location }) => {
const state: { from: string } = (location.state ?? { const state: { from: string } = (location.state ?? {
from: '', from: '',
}) as { from: string }; }) as { from: string };
if ( if (
state.from === '/knowledge' || // TODO: Just directly determine whether the current page is on the knowledge list page. state.from === '/knowledge' || // TODO: Just directly determine whether the current page is on the knowledge list page.
location.pathname === '/knowledge/dataset/upload' location.pathname === '/knowledge/dataset/upload'
) { ) {
dispatch({ dispatch({
type: 'setPagination', type: 'setPagination',
payload: { current: 1, pageSize: 10 }, payload: { current: 1, pageSize: 10 },
}); });
} }
}); });
}, },
}, },
}; };
export default model; export default model;

View File

@ -1,5 +1,5 @@
import { useShowDeleteConfirm, useTranslate } from '@/hooks/commonHooks'; import { useShowDeleteConfirm, useTranslate } from '@/hooks/common-hooks';
import { useRemoveDocument } from '@/hooks/documentHooks'; import { useRemoveDocument } from '@/hooks/document-hooks';
import { IKnowledgeFile } from '@/interfaces/database/knowledge'; import { IKnowledgeFile } from '@/interfaces/database/knowledge';
import { api_host } from '@/utils/api'; import { api_host } from '@/utils/api';
import { downloadFile } from '@/utils/fileUtil'; import { downloadFile } from '@/utils/fileUtil';

View File

@ -1,7 +1,7 @@
import { ReactComponent as CancelIcon } from '@/assets/svg/cancel.svg'; import { ReactComponent as CancelIcon } from '@/assets/svg/cancel.svg';
import { ReactComponent as RefreshIcon } from '@/assets/svg/refresh.svg'; import { ReactComponent as RefreshIcon } from '@/assets/svg/refresh.svg';
import { ReactComponent as RunIcon } from '@/assets/svg/run.svg'; import { ReactComponent as RunIcon } from '@/assets/svg/run.svg';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { IKnowledgeFile } from '@/interfaces/database/knowledge'; import { IKnowledgeFile } from '@/interfaces/database/knowledge';
import { Badge, DescriptionsProps, Flex, Popover, Space, Tag } from 'antd'; import { Badge, DescriptionsProps, Flex, Popover, Space, Tag } from 'antd';
import classNames from 'classnames'; import classNames from 'classnames';

View File

@ -1,5 +1,5 @@
import { IModalManagerChildrenProps } from '@/components/modal-manager'; import { IModalManagerChildrenProps } from '@/components/modal-manager';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Form, Input, Modal } from 'antd'; import { Form, Input, Modal } from 'antd';
import { useEffect } from 'react'; import { useEffect } from 'react';

View File

@ -1,8 +1,7 @@
import { IModalManagerChildrenProps } from '@/components/modal-manager'; import { IModalManagerChildrenProps } from '@/components/modal-manager';
import { useTranslate } from '@/hooks/common-hooks';
import { Form, Input, Modal } from 'antd'; import { Form, Input, Modal } from 'antd';
import React from 'react'; import React from 'react';
import {useTranslate} from "@/hooks/commonHooks";
interface IProps extends Omit<IModalManagerChildrenProps, 'showModal'> { interface IProps extends Omit<IModalManagerChildrenProps, 'showModal'> {
loading: boolean; loading: boolean;
@ -36,14 +35,28 @@ const WebCrawlModal: React.FC<IProps> = ({ visible, hideModal, onOk }) => {
<Form.Item <Form.Item
label="Name" label="Name"
name="name" name="name"
rules={[{ required: true, message: 'Please input name!' },{ max: 10, message: 'The maximum length of name is 128 characters' }]} rules={[
{ required: true, message: 'Please input name!' },
{
max: 10,
message: 'The maximum length of name is 128 characters',
},
]}
> >
<Input placeholder="Document name" /> <Input placeholder="Document name" />
</Form.Item> </Form.Item>
<Form.Item <Form.Item
label="URL" label="URL"
name="url" name="url"
rules={[{ required: true, message: 'Please input url!' },{pattern: new RegExp('(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]'), message: 'Please enter a valid URL!'}]} rules={[
{ required: true, message: 'Please input url!' },
{
pattern: new RegExp(
'(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]',
),
message: 'Please enter a valid URL!',
},
]}
> >
<Input placeholder="https://www.baidu.com" /> <Input placeholder="https://www.baidu.com" />
</Form.Item> </Form.Item>

View File

@ -1,6 +1,6 @@
import SvgIcon from '@/components/svg-icon'; import SvgIcon from '@/components/svg-icon';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { useSelectParserList } from '@/hooks/userSettingHook'; import { useSelectParserList } from '@/hooks/user-setting-hooks';
import { Col, Divider, Empty, Row, Typography } from 'antd'; import { Col, Divider, Empty, Row, Typography } from 'antd';
import DOMPurify from 'dompurify'; import DOMPurify from 'dompurify';
import { useMemo } from 'react'; import { useMemo } from 'react';

View File

@ -11,7 +11,7 @@ import MaxTokenNumber from '@/components/max-token-number';
import ParseConfiguration, { import ParseConfiguration, {
showRaptorParseConfiguration, showRaptorParseConfiguration,
} from '@/components/parse-configuration'; } from '@/components/parse-configuration';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { FormInstance } from 'antd/lib'; import { FormInstance } from 'antd/lib';
import styles from './index.less'; import styles from './index.less';

View File

@ -3,14 +3,14 @@ import {
useKnowledgeBaseId, useKnowledgeBaseId,
useSelectKnowledgeDetails, useSelectKnowledgeDetails,
useUpdateKnowledge, useUpdateKnowledge,
} from '@/hooks/knowledgeHook'; } from '@/hooks/knowledge-hooks';
import { useFetchLlmList, useSelectLlmOptions } from '@/hooks/llmHooks'; import { useFetchLlmList, useSelectLlmOptions } from '@/hooks/llm-hooks';
import { useNavigateToDataset } from '@/hooks/routeHook'; import { useNavigateToDataset } from '@/hooks/route-hook';
import { useOneNamespaceEffectsLoading } from '@/hooks/storeHooks'; import { useOneNamespaceEffectsLoading } from '@/hooks/store-hooks';
import { import {
useFetchTenantInfo, useFetchTenantInfo,
useSelectParserList, useSelectParserList,
} from '@/hooks/userSettingHook'; } from '@/hooks/user-setting-hooks';
import { import {
getBase64FromUploadFileList, getBase64FromUploadFileList,
getUploadFileListFromBase64, getUploadFileListFromBase64,

View File

@ -1,40 +1,40 @@
import { Col, Divider, Row, Spin, Typography } from 'antd'; import { Col, Divider, Row, Spin, Typography } from 'antd';
import CategoryPanel from './category-panel'; import CategoryPanel from './category-panel';
import ConfigurationForm from './configuration'; import ConfigurationForm from './configuration';
import { import {
useHandleChunkMethodChange, useHandleChunkMethodChange,
useSelectKnowledgeDetailsLoading, useSelectKnowledgeDetailsLoading,
} from './hooks'; } from './hooks';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import styles from './index.less'; import styles from './index.less';
const { Title } = Typography; const { Title } = Typography;
const Configuration = () => { const Configuration = () => {
const loading = useSelectKnowledgeDetailsLoading(); const loading = useSelectKnowledgeDetailsLoading();
const { form, chunkMethod } = useHandleChunkMethodChange(); const { form, chunkMethod } = useHandleChunkMethodChange();
const { t } = useTranslate('knowledgeConfiguration'); const { t } = useTranslate('knowledgeConfiguration');
return ( return (
<div className={styles.configurationWrapper}> <div className={styles.configurationWrapper}>
<Title level={5}> <Title level={5}>
{t('configuration', { keyPrefix: 'knowledgeDetails' })} {t('configuration', { keyPrefix: 'knowledgeDetails' })}
</Title> </Title>
<p>{t('titleDescription')}</p> <p>{t('titleDescription')}</p>
<Divider></Divider> <Divider></Divider>
<Spin spinning={loading}> <Spin spinning={loading}>
<Row gutter={32}> <Row gutter={32}>
<Col span={8}> <Col span={8}>
<ConfigurationForm form={form}></ConfigurationForm> <ConfigurationForm form={form}></ConfigurationForm>
</Col> </Col>
<Col span={16}> <Col span={16}>
<CategoryPanel chunkMethod={chunkMethod}></CategoryPanel> <CategoryPanel chunkMethod={chunkMethod}></CategoryPanel>
</Col> </Col>
</Row> </Row>
</Spin> </Spin>
</div> </div>
); );
}; };
export default Configuration; export default Configuration;

View File

@ -1,57 +1,57 @@
import { IKnowledge } from '@/interfaces/database/knowledge'; import { IKnowledge } from '@/interfaces/database/knowledge';
import i18n from '@/locales/config'; import i18n from '@/locales/config';
import kbService from '@/services/kbService'; import kbService from '@/services/knowledge-service';
import { message } from 'antd'; import { message } from 'antd';
import { DvaModel } from 'umi'; import { DvaModel } from 'umi';
export interface KSModelState { export interface KSModelState {
isShowPSwModal: boolean; isShowPSwModal: boolean;
tenantIfo: any; tenantIfo: any;
knowledgeDetails: IKnowledge; knowledgeDetails: IKnowledge;
} }
const model: DvaModel<KSModelState> = { const model: DvaModel<KSModelState> = {
namespace: 'kSModel', namespace: 'kSModel',
state: { state: {
isShowPSwModal: false, isShowPSwModal: false,
tenantIfo: {}, tenantIfo: {},
knowledgeDetails: {} as any, knowledgeDetails: {} as any,
}, },
reducers: { reducers: {
updateState(state, { payload }) { updateState(state, { payload }) {
return { return {
...state, ...state,
...payload, ...payload,
}; };
}, },
setKnowledgeDetails(state, { payload }) { setKnowledgeDetails(state, { payload }) {
return { ...state, knowledgeDetails: payload }; return { ...state, knowledgeDetails: payload };
}, },
}, },
effects: { effects: {
*createKb({ payload = {} }, { call }) { *createKb({ payload = {} }, { call }) {
const { data } = yield call(kbService.createKb, payload); const { data } = yield call(kbService.createKb, payload);
const { retcode } = data; const { retcode } = data;
if (retcode === 0) { if (retcode === 0) {
message.success(i18n.t('message.created')); message.success(i18n.t('message.created'));
} }
return data; return data;
}, },
*updateKb({ payload = {} }, { call, put }) { *updateKb({ payload = {} }, { call, put }) {
const { data } = yield call(kbService.updateKb, payload); const { data } = yield call(kbService.updateKb, payload);
const { retcode } = data; const { retcode } = data;
if (retcode === 0) { if (retcode === 0) {
yield put({ type: 'getKbDetail', payload: { kb_id: payload.kb_id } }); yield put({ type: 'getKbDetail', payload: { kb_id: payload.kb_id } });
message.success(i18n.t('message.updated')); message.success(i18n.t('message.updated'));
} }
}, },
*getKbDetail({ payload = {} }, { call, put }) { *getKbDetail({ payload = {} }, { call, put }) {
const { data } = yield call(kbService.get_kb_detail, payload); const { data } = yield call(kbService.get_kb_detail, payload);
if (data.retcode === 0) { if (data.retcode === 0) {
yield put({ type: 'setKnowledgeDetails', payload: data.data }); yield put({ type: 'setKnowledgeDetails', payload: data.data });
} }
return data; return data;
}, },
}, },
}; };
export default model; export default model;

View File

@ -1,8 +1,8 @@
import { ReactComponent as ConfigurationIcon } from '@/assets/svg/knowledge-configration.svg'; import { ReactComponent as ConfigurationIcon } from '@/assets/svg/knowledge-configration.svg';
import { ReactComponent as DatasetIcon } from '@/assets/svg/knowledge-dataset.svg'; import { ReactComponent as DatasetIcon } from '@/assets/svg/knowledge-dataset.svg';
import { ReactComponent as TestingIcon } from '@/assets/svg/knowledge-testing.svg'; import { ReactComponent as TestingIcon } from '@/assets/svg/knowledge-testing.svg';
import { useFetchKnowledgeBaseConfiguration } from '@/hooks/knowledgeHook'; import { useFetchKnowledgeBaseConfiguration } from '@/hooks/knowledge-hooks';
import { useSecondPathName } from '@/hooks/routeHook'; import { useSecondPathName } from '@/hooks/route-hook';
import { IKnowledge } from '@/interfaces/database/knowledge'; import { IKnowledge } from '@/interfaces/database/knowledge';
import { getWidth } from '@/utils'; import { getWidth } from '@/utils';
import { Avatar, Menu, MenuProps, Space } from 'antd'; import { Avatar, Menu, MenuProps, Space } from 'antd';

View File

@ -1,4 +1,4 @@
import { useTestChunkRetrieval } from '@/hooks/knowledgeHook'; import { useTestChunkRetrieval } from '@/hooks/knowledge-hooks';
import { Flex, Form } from 'antd'; import { Flex, Form } from 'antd';
import { useEffect } from 'react'; import { useEffect } from 'react';
import { useDispatch } from 'umi'; import { useDispatch } from 'umi';

View File

@ -3,7 +3,7 @@ import {
ITestingChunk, ITestingChunk,
ITestingDocument, ITestingDocument,
} from '@/interfaces/database/knowledge'; } from '@/interfaces/database/knowledge';
import kbService from '@/services/kbService'; import kbService from '@/services/knowledge-service';
import { DvaModel } from 'umi'; import { DvaModel } from 'umi';
export interface TestingModelState extends Pick<BaseState, 'pagination'> { export interface TestingModelState extends Pick<BaseState, 'pagination'> {

View File

@ -3,9 +3,9 @@ import { Button, Card, Divider, Flex, Form, Input } from 'antd';
import { FormInstance } from 'antd/lib'; import { FormInstance } from 'antd/lib';
import Rerank from '@/components/rerank'; import Rerank from '@/components/rerank';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { useFetchLlmList } from '@/hooks/llmHooks'; import { useFetchLlmList } from '@/hooks/llm-hooks';
import { useOneNamespaceEffectsLoading } from '@/hooks/storeHooks'; import { useOneNamespaceEffectsLoading } from '@/hooks/store-hooks';
import { useEffect } from 'react'; import { useEffect } from 'react';
import styles from './index.less'; import styles from './index.less';

View File

@ -1,6 +1,6 @@
import { ReactComponent as SelectedFilesCollapseIcon } from '@/assets/svg/selected-files-collapse.svg'; import { ReactComponent as SelectedFilesCollapseIcon } from '@/assets/svg/selected-files-collapse.svg';
import Image from '@/components/image'; import Image from '@/components/image';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { ITestingChunk } from '@/interfaces/database/knowledge'; import { ITestingChunk } from '@/interfaces/database/knowledge';
import { import {
Card, Card,

View File

@ -1,6 +1,6 @@
import { ReactComponent as NavigationPointerIcon } from '@/assets/svg/navigation-pointer.svg'; import { ReactComponent as NavigationPointerIcon } from '@/assets/svg/navigation-pointer.svg';
import NewDocumentLink from '@/components/new-document-link'; import NewDocumentLink from '@/components/new-document-link';
import { useGetDocumentUrl } from '@/hooks/documentHooks'; import { useGetDocumentUrl } from '@/hooks/document-hooks';
import { ITestingDocument } from '@/interfaces/database/knowledge'; import { ITestingDocument } from '@/interfaces/database/knowledge';
import { isPdf } from '@/utils/documentUtils'; import { isPdf } from '@/utils/documentUtils';
import { Table, TableProps } from 'antd'; import { Table, TableProps } from 'antd';

View File

@ -1,93 +1,93 @@
import { useKnowledgeBaseId } from '@/hooks/knowledgeHook'; import { useKnowledgeBaseId } from '@/hooks/knowledge-hooks';
import { import {
useNavigateWithFromState, useNavigateWithFromState,
useSecondPathName, useSecondPathName,
useThirdPathName, useThirdPathName,
} from '@/hooks/routeHook'; } from '@/hooks/route-hook';
import { Breadcrumb } from 'antd'; import { Breadcrumb } from 'antd';
import { ItemType } from 'antd/es/breadcrumb/Breadcrumb'; import { ItemType } from 'antd/es/breadcrumb/Breadcrumb';
import { useEffect, useMemo } from 'react'; import { useEffect, useMemo } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { Link, Outlet, useDispatch, useLocation } from 'umi'; import { Link, Outlet, useDispatch, useLocation } from 'umi';
import Siderbar from './components/knowledge-sidebar'; import Siderbar from './components/knowledge-sidebar';
import { KnowledgeDatasetRouteKey, KnowledgeRouteKey } from './constant'; import { KnowledgeDatasetRouteKey, KnowledgeRouteKey } from './constant';
import styles from './index.less'; import styles from './index.less';
const KnowledgeAdding = () => { const KnowledgeAdding = () => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const knowledgeBaseId = useKnowledgeBaseId(); const knowledgeBaseId = useKnowledgeBaseId();
const { t } = useTranslation(); const { t } = useTranslation();
const location = useLocation(); const location = useLocation();
const activeKey: KnowledgeRouteKey = const activeKey: KnowledgeRouteKey =
(useSecondPathName() as KnowledgeRouteKey) || KnowledgeRouteKey.Dataset; (useSecondPathName() as KnowledgeRouteKey) || KnowledgeRouteKey.Dataset;
const datasetActiveKey: KnowledgeDatasetRouteKey = const datasetActiveKey: KnowledgeDatasetRouteKey =
useThirdPathName() as KnowledgeDatasetRouteKey; useThirdPathName() as KnowledgeDatasetRouteKey;
const gotoList = useNavigateWithFromState(); const gotoList = useNavigateWithFromState();
const breadcrumbItems: ItemType[] = useMemo(() => { const breadcrumbItems: ItemType[] = useMemo(() => {
const items: ItemType[] = [ const items: ItemType[] = [
{ {
title: ( title: (
<a onClick={() => gotoList('/knowledge')}> <a onClick={() => gotoList('/knowledge')}>
{t('header.knowledgeBase')} {t('header.knowledgeBase')}
</a> </a>
), ),
}, },
{ {
title: datasetActiveKey ? ( title: datasetActiveKey ? (
<Link <Link
to={`/knowledge/${KnowledgeRouteKey.Dataset}?id=${knowledgeBaseId}`} to={`/knowledge/${KnowledgeRouteKey.Dataset}?id=${knowledgeBaseId}`}
> >
{t(`knowledgeDetails.${activeKey}`)} {t(`knowledgeDetails.${activeKey}`)}
</Link> </Link>
) : ( ) : (
t(`knowledgeDetails.${activeKey}`) t(`knowledgeDetails.${activeKey}`)
), ),
}, },
]; ];
if (datasetActiveKey) { if (datasetActiveKey) {
items.push({ items.push({
title: t(`knowledgeDetails.${datasetActiveKey}`), title: t(`knowledgeDetails.${datasetActiveKey}`),
}); });
} }
return items; return items;
}, [activeKey, datasetActiveKey, gotoList, knowledgeBaseId, t]); }, [activeKey, datasetActiveKey, gotoList, knowledgeBaseId, t]);
useEffect(() => { useEffect(() => {
const search: string = location.search.slice(1); const search: string = location.search.slice(1);
const map = search.split('&').reduce<Record<string, string>>((obj, cur) => { const map = search.split('&').reduce<Record<string, string>>((obj, cur) => {
const [key, value] = cur.split('='); const [key, value] = cur.split('=');
obj[key] = value; obj[key] = value;
return obj; return obj;
}, {}); }, {});
dispatch({ dispatch({
type: 'kAModel/updateState', type: 'kAModel/updateState',
payload: { payload: {
doc_id: undefined, doc_id: undefined,
...map, ...map,
}, },
}); });
}, [location, dispatch]); }, [location, dispatch]);
return ( return (
<> <>
<div className={styles.container}> <div className={styles.container}>
<Siderbar></Siderbar> <Siderbar></Siderbar>
<div className={styles.contentWrapper}> <div className={styles.contentWrapper}>
<Breadcrumb items={breadcrumbItems} /> <Breadcrumb items={breadcrumbItems} />
<div className={styles.content}> <div className={styles.content}>
<Outlet></Outlet> <Outlet></Outlet>
</div> </div>
</div> </div>
</div> </div>
</> </>
); );
}; };
export default KnowledgeAdding; export default KnowledgeAdding;

View File

@ -1,5 +1,5 @@
import CopyToClipboard from '@/components/copy-to-clipboard'; import CopyToClipboard from '@/components/copy-to-clipboard';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { IModalProps } from '@/interfaces/common'; import { IModalProps } from '@/interfaces/common';
import { IToken } from '@/interfaces/database/chat'; import { IToken } from '@/interfaces/database/chat';
import { formatDate } from '@/utils/date'; import { formatDate } from '@/utils/date';

View File

@ -4,7 +4,7 @@ import classNames from 'classnames';
import { ISegmentedContentProps } from '../interface'; import { ISegmentedContentProps } from '../interface';
import KnowledgeBaseItem from '@/components/knowledge-base-item'; import KnowledgeBaseItem from '@/components/knowledge-base-item';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import styles from './index.less'; import styles from './index.less';
const AssistantSetting = ({ show }: ISegmentedContentProps) => { const AssistantSetting = ({ show }: ISegmentedContentProps) => {

View File

@ -14,7 +14,7 @@ import AssistantSetting from './assistant-setting';
import ModelSetting from './model-setting'; import ModelSetting from './model-setting';
import PromptEngine from './prompt-engine'; import PromptEngine from './prompt-engine';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { import {
useFetchLlmModelOnVisible, useFetchLlmModelOnVisible,
useFetchModelId, useFetchModelId,

View File

@ -30,7 +30,7 @@ import { EditableCell, EditableRow } from './editable-cell';
import Rerank from '@/components/rerank'; import Rerank from '@/components/rerank';
import TopNItem from '@/components/top-n-item'; import TopNItem from '@/components/top-n-item';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { useSelectPromptConfigParameters } from '../hooks'; import { useSelectPromptConfigParameters } from '../hooks';
import styles from './index.less'; import styles from './index.less';

View File

@ -1,7 +1,7 @@
import MessageItem from '@/components/message-item'; import MessageItem from '@/components/message-item';
import DocumentPreviewer from '@/components/pdf-previewer'; import DocumentPreviewer from '@/components/pdf-previewer';
import { MessageType } from '@/constants/chat'; import { MessageType } from '@/constants/chat';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Button, Drawer, Flex, Input, Spin } from 'antd'; import { Button, Drawer, Flex, Input, Spin } from 'antd';
import { import {
useClickDrawer, useClickDrawer,
@ -14,7 +14,7 @@ import {
} from '../hooks'; } from '../hooks';
import { buildMessageItemReference } from '../utils'; import { buildMessageItemReference } from '../utils';
import { useSelectUserInfo } from '@/hooks/userSettingHook'; import { useSelectUserInfo } from '@/hooks/user-setting-hooks';
import styles from './index.less'; import styles from './index.less';
const ChatContainer = () => { const ChatContainer = () => {

View File

@ -1,5 +1,5 @@
import LineChart from '@/components/line-chart'; import LineChart from '@/components/line-chart';
import { useSetModalState, useTranslate } from '@/hooks/commonHooks'; import { useSetModalState, useTranslate } from '@/hooks/common-hooks';
import { IModalProps } from '@/interfaces/common'; import { IModalProps } from '@/interfaces/common';
import { IDialog, IStats } from '@/interfaces/database/chat'; import { IDialog, IStats } from '@/interfaces/database/chat';
import { formatDate } from '@/utils/date'; import { formatDate } from '@/utils/date';

View File

@ -1,6 +1,6 @@
import CopyToClipboard from '@/components/copy-to-clipboard'; import CopyToClipboard from '@/components/copy-to-clipboard';
import HightLightMarkdown from '@/components/highlight-markdown'; import HightLightMarkdown from '@/components/highlight-markdown';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { IModalProps } from '@/interfaces/common'; import { IModalProps } from '@/interfaces/common';
import { Card, Modal, Tabs, TabsProps } from 'antd'; import { Card, Modal, Tabs, TabsProps } from 'antd';
import styles from './index.less'; import styles from './index.less';

View File

@ -17,14 +17,14 @@ import {
useSelectTokenList, useSelectTokenList,
useSetDialog, useSetDialog,
useUpdateConversation, useUpdateConversation,
} from '@/hooks/chatHooks'; } from '@/hooks/chat-hooks';
import { import {
useSetModalState, useSetModalState,
useShowDeleteConfirm, useShowDeleteConfirm,
useTranslate, useTranslate,
} from '@/hooks/commonHooks'; } from '@/hooks/common-hooks';
import { useSendMessageWithSse } from '@/hooks/logic-hooks'; import { useSendMessageWithSse } from '@/hooks/logic-hooks';
import { useOneNamespaceEffectsLoading } from '@/hooks/storeHooks'; import { useOneNamespaceEffectsLoading } from '@/hooks/store-hooks';
import { import {
IAnswer, IAnswer,
IConversation, IConversation,

View File

@ -41,7 +41,7 @@ import {
useSelectFirstDialogOnMount, useSelectFirstDialogOnMount,
} from './hooks'; } from './hooks';
import { useSetModalState, useTranslate } from '@/hooks/commonHooks'; import { useSetModalState, useTranslate } from '@/hooks/common-hooks';
import { useSetSelectedRecord } from '@/hooks/logic-hooks'; import { useSetSelectedRecord } from '@/hooks/logic-hooks';
import { IDialog } from '@/interfaces/database/chat'; import { IDialog } from '@/interfaces/database/chat';
import ChatOverviewModal from './chat-overview-modal'; import ChatOverviewModal from './chat-overview-modal';

View File

@ -1,6 +1,6 @@
import Image from '@/components/image'; import Image from '@/components/image';
import SvgIcon from '@/components/svg-icon'; import SvgIcon from '@/components/svg-icon';
import { useSelectFileThumbnails } from '@/hooks/knowledgeHook'; import { useSelectFileThumbnails } from '@/hooks/knowledge-hooks';
import { IReference } from '@/interfaces/database/chat'; import { IReference } from '@/interfaces/database/chat';
import { IChunk } from '@/interfaces/database/knowledge'; import { IChunk } from '@/interfaces/database/knowledge';
import { getExtension } from '@/utils/documentUtils'; import { getExtension } from '@/utils/documentUtils';

View File

@ -1,262 +1,262 @@
import { import {
IConversation, IConversation,
IDialog, IDialog,
IStats, IStats,
IToken, IToken,
Message, Message,
} from '@/interfaces/database/chat'; } from '@/interfaces/database/chat';
import i18n from '@/locales/config'; import i18n from '@/locales/config';
import chatService from '@/services/chatService'; import chatService from '@/services/chat-service';
import { message } from 'antd'; import { message } from 'antd';
import omit from 'lodash/omit'; import omit from 'lodash/omit';
import { DvaModel } from 'umi'; import { DvaModel } from 'umi';
import { v4 as uuid } from 'uuid'; import { v4 as uuid } from 'uuid';
import { IClientConversation, IMessage } from './interface'; import { IClientConversation, IMessage } from './interface';
import { getDocumentIdsFromConversionReference } from './utils'; import { getDocumentIdsFromConversionReference } from './utils';
export interface ChatModelState { export interface ChatModelState {
name: string; name: string;
dialogList: IDialog[]; dialogList: IDialog[];
currentDialog: IDialog; currentDialog: IDialog;
conversationList: IConversation[]; conversationList: IConversation[];
currentConversation: IClientConversation; currentConversation: IClientConversation;
tokenList: IToken[]; tokenList: IToken[];
stats: IStats; stats: IStats;
} }
const model: DvaModel<ChatModelState> = { const model: DvaModel<ChatModelState> = {
namespace: 'chatModel', namespace: 'chatModel',
state: { state: {
name: 'kate', name: 'kate',
dialogList: [], dialogList: [],
currentDialog: <IDialog>{}, currentDialog: <IDialog>{},
conversationList: [], conversationList: [],
currentConversation: {} as IClientConversation, currentConversation: {} as IClientConversation,
tokenList: [], tokenList: [],
stats: {} as IStats, stats: {} as IStats,
}, },
reducers: { reducers: {
save(state, action) { save(state, action) {
return { return {
...state, ...state,
...action.payload, ...action.payload,
}; };
}, },
setDialogList(state, { payload }) { setDialogList(state, { payload }) {
return { return {
...state, ...state,
dialogList: payload, dialogList: payload,
}; };
}, },
setCurrentDialog(state, { payload }) { setCurrentDialog(state, { payload }) {
return { return {
...state, ...state,
currentDialog: payload, currentDialog: payload,
}; };
}, },
setConversationList(state, { payload }) { setConversationList(state, { payload }) {
return { return {
...state, ...state,
conversationList: payload, conversationList: payload,
}; };
}, },
setCurrentConversation(state, { payload }) { setCurrentConversation(state, { payload }) {
const messageList = const messageList =
payload?.message?.map((x: Message | IMessage) => ({ payload?.message?.map((x: Message | IMessage) => ({
...x, ...x,
id: 'id' in x ? x.id : uuid(), id: 'id' in x ? x.id : uuid(),
})) ?? []; })) ?? [];
return { return {
...state, ...state,
currentConversation: { ...payload, message: messageList }, currentConversation: { ...payload, message: messageList },
}; };
}, },
setTokenList(state, { payload }) { setTokenList(state, { payload }) {
return { return {
...state, ...state,
tokenList: payload, tokenList: payload,
}; };
}, },
setStats(state, { payload }) { setStats(state, { payload }) {
return { return {
...state, ...state,
stats: payload, stats: payload,
}; };
}, },
}, },
effects: { effects: {
*getDialog({ payload }, { call, put }) { *getDialog({ payload }, { call, put }) {
const needToBeSaved = const needToBeSaved =
payload.needToBeSaved === undefined ? true : payload.needToBeSaved; payload.needToBeSaved === undefined ? true : payload.needToBeSaved;
const { data } = yield call(chatService.getDialog, { const { data } = yield call(chatService.getDialog, {
dialog_id: payload.dialog_id, dialog_id: payload.dialog_id,
}); });
if (data.retcode === 0 && needToBeSaved) { if (data.retcode === 0 && needToBeSaved) {
yield put({ type: 'setCurrentDialog', payload: data.data }); yield put({ type: 'setCurrentDialog', payload: data.data });
} }
return data; return data;
}, },
*setDialog({ payload }, { call, put }) { *setDialog({ payload }, { call, put }) {
const { data } = yield call(chatService.setDialog, payload); const { data } = yield call(chatService.setDialog, payload);
if (data.retcode === 0) { if (data.retcode === 0) {
yield put({ type: 'listDialog' }); yield put({ type: 'listDialog' });
message.success( message.success(
i18n.t(`message.${payload.dialog_id ? 'modified' : 'created'}`), i18n.t(`message.${payload.dialog_id ? 'modified' : 'created'}`),
); );
} }
return data.retcode; return data.retcode;
}, },
*removeDialog({ payload }, { call, put }) { *removeDialog({ payload }, { call, put }) {
const { data } = yield call(chatService.removeDialog, payload); const { data } = yield call(chatService.removeDialog, payload);
if (data.retcode === 0) { if (data.retcode === 0) {
yield put({ type: 'listDialog' }); yield put({ type: 'listDialog' });
message.success(i18n.t('message.deleted')); message.success(i18n.t('message.deleted'));
} }
return data.retcode; return data.retcode;
}, },
*listDialog({ payload }, { call, put }) { *listDialog({ payload }, { call, put }) {
const { data } = yield call(chatService.listDialog, payload); const { data } = yield call(chatService.listDialog, payload);
if (data.retcode === 0) { if (data.retcode === 0) {
yield put({ type: 'setDialogList', payload: data.data }); yield put({ type: 'setDialogList', payload: data.data });
} }
return data; return data;
}, },
*listConversation({ payload }, { call, put }) { *listConversation({ payload }, { call, put }) {
const { data } = yield call(chatService.listConversation, payload); const { data } = yield call(chatService.listConversation, payload);
if (data.retcode === 0) { if (data.retcode === 0) {
yield put({ type: 'setConversationList', payload: data.data }); yield put({ type: 'setConversationList', payload: data.data });
} }
return data.retcode; return data.retcode;
}, },
*getConversation({ payload }, { call, put }) { *getConversation({ payload }, { call, put }) {
const needToBeSaved = const needToBeSaved =
payload.needToBeSaved === undefined ? true : payload.needToBeSaved; payload.needToBeSaved === undefined ? true : payload.needToBeSaved;
const { data } = yield call(chatService.getConversation, { const { data } = yield call(chatService.getConversation, {
conversation_id: payload.conversation_id, conversation_id: payload.conversation_id,
}); });
if (data.retcode === 0 && needToBeSaved) { if (data.retcode === 0 && needToBeSaved) {
yield put({ yield put({
type: 'kFModel/fetch_document_thumbnails', type: 'kFModel/fetch_document_thumbnails',
payload: { payload: {
doc_ids: getDocumentIdsFromConversionReference(data.data), doc_ids: getDocumentIdsFromConversionReference(data.data),
}, },
}); });
yield put({ type: 'setCurrentConversation', payload: data.data }); yield put({ type: 'setCurrentConversation', payload: data.data });
} }
return data; return data;
}, },
*setConversation({ payload }, { call, put }) { *setConversation({ payload }, { call, put }) {
const { data } = yield call(chatService.setConversation, payload); const { data } = yield call(chatService.setConversation, payload);
if (data.retcode === 0) { if (data.retcode === 0) {
yield put({ yield put({
type: 'listConversation', type: 'listConversation',
payload: { payload: {
dialog_id: data.data.dialog_id, dialog_id: data.data.dialog_id,
}, },
}); });
} }
return data; return data;
}, },
*completeConversation({ payload }, { call }) { *completeConversation({ payload }, { call }) {
const { data } = yield call(chatService.completeConversation, payload); const { data } = yield call(chatService.completeConversation, payload);
// if (data.retcode === 0) { // if (data.retcode === 0) {
// yield put({ // yield put({
// type: 'getConversation', // type: 'getConversation',
// payload: { // payload: {
// conversation_id: payload.conversation_id, // conversation_id: payload.conversation_id,
// }, // },
// }); // });
// } // }
return data.retcode; return data.retcode;
}, },
*removeConversation({ payload }, { call, put }) { *removeConversation({ payload }, { call, put }) {
const { data } = yield call(chatService.removeConversation, { const { data } = yield call(chatService.removeConversation, {
conversation_ids: payload.conversation_ids, conversation_ids: payload.conversation_ids,
}); });
if (data.retcode === 0) { if (data.retcode === 0) {
yield put({ yield put({
type: 'listConversation', type: 'listConversation',
payload: { dialog_id: payload.dialog_id }, payload: { dialog_id: payload.dialog_id },
}); });
message.success(i18n.t('message.deleted')); message.success(i18n.t('message.deleted'));
} }
return data.retcode; return data.retcode;
}, },
*createToken({ payload }, { call, put }) { *createToken({ payload }, { call, put }) {
const { data } = yield call(chatService.createToken, payload); const { data } = yield call(chatService.createToken, payload);
if (data.retcode === 0) { if (data.retcode === 0) {
yield put({ yield put({
type: 'listToken', type: 'listToken',
payload: payload, payload: payload,
}); });
message.success(i18n.t('message.created')); message.success(i18n.t('message.created'));
} }
return data; return data;
}, },
*listToken({ payload }, { call, put }) { *listToken({ payload }, { call, put }) {
const { data } = yield call(chatService.listToken, payload); const { data } = yield call(chatService.listToken, payload);
if (data.retcode === 0) { if (data.retcode === 0) {
yield put({ yield put({
type: 'setTokenList', type: 'setTokenList',
payload: data.data, payload: data.data,
}); });
} }
return data; return data;
}, },
*removeToken({ payload }, { call, put }) { *removeToken({ payload }, { call, put }) {
const { data } = yield call( const { data } = yield call(
chatService.removeToken, chatService.removeToken,
omit(payload, ['dialogId']), omit(payload, ['dialogId']),
); );
if (data.retcode === 0) { if (data.retcode === 0) {
message.success(i18n.t('message.deleted')); message.success(i18n.t('message.deleted'));
yield put({ yield put({
type: 'listToken', type: 'listToken',
payload: { dialog_id: payload.dialogId }, payload: { dialog_id: payload.dialogId },
}); });
} }
return data.retcode; return data.retcode;
}, },
*getStats({ payload }, { call, put }) { *getStats({ payload }, { call, put }) {
const { data } = yield call(chatService.getStats, payload); const { data } = yield call(chatService.getStats, payload);
if (data.retcode === 0) { if (data.retcode === 0) {
yield put({ yield put({
type: 'setStats', type: 'setStats',
payload: data.data, payload: data.data,
}); });
} }
return data.retcode; return data.retcode;
}, },
*createExternalConversation({ payload }, { call, put }) { *createExternalConversation({ payload }, { call, put }) {
const { data } = yield call( const { data } = yield call(
chatService.createExternalConversation, chatService.createExternalConversation,
payload, payload,
); );
// if (data.retcode === 0) { // if (data.retcode === 0) {
// yield put({ // yield put({
// type: 'getExternalConversation', // type: 'getExternalConversation',
// payload: data.data.id, // payload: data.data.id,
// }); // });
// } // }
return data; return data;
}, },
*getExternalConversation({ payload }, { call }) { *getExternalConversation({ payload }, { call }) {
const { data } = yield call( const { data } = yield call(
chatService.getExternalConversation, chatService.getExternalConversation,
null, null,
payload, payload,
); );
return data; return data;
}, },
*completeExternalConversation({ payload }, { call }) { *completeExternalConversation({ payload }, { call }) {
const { data } = yield call( const { data } = yield call(
chatService.completeExternalConversation, chatService.completeExternalConversation,
payload, payload,
); );
return data.retcode; return data.retcode;
}, },
}, },
}; };
export default model; export default model;

View File

@ -1,6 +1,6 @@
import MessageItem from '@/components/message-item'; import MessageItem from '@/components/message-item';
import { MessageType } from '@/constants/chat'; import { MessageType } from '@/constants/chat';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { useSendButtonDisabled } from '@/pages/chat/hooks'; import { useSendButtonDisabled } from '@/pages/chat/hooks';
import { Button, Flex, Input, Spin } from 'antd'; import { Button, Flex, Input, Spin } from 'antd';
import { forwardRef } from 'react'; import { forwardRef } from 'react';

View File

@ -2,9 +2,9 @@ import { MessageType } from '@/constants/chat';
import { import {
useCreateSharedConversation, useCreateSharedConversation,
useFetchSharedConversation, useFetchSharedConversation,
} from '@/hooks/chatHooks'; } from '@/hooks/chat-hooks';
import { useSendMessageWithSse } from '@/hooks/logic-hooks'; import { useSendMessageWithSse } from '@/hooks/logic-hooks';
import { useOneNamespaceEffectsLoading } from '@/hooks/storeHooks'; import { useOneNamespaceEffectsLoading } from '@/hooks/store-hooks';
import { IAnswer } from '@/interfaces/database/chat'; import { IAnswer } from '@/interfaces/database/chat';
import api from '@/utils/api'; import api from '@/utils/api';
import omit from 'lodash/omit'; import omit from 'lodash/omit';

View File

@ -1,6 +1,6 @@
import { Alert, Flex } from 'antd'; import { Alert, Flex } from 'antd';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import React from 'react'; import React from 'react';
import styles from './index.less'; import styles from './index.less';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { IFile } from '@/interfaces/database/file-manager'; import { IFile } from '@/interfaces/database/file-manager';
import { api_host } from '@/utils/api'; import { api_host } from '@/utils/api';
import { downloadFile } from '@/utils/fileUtil'; import { downloadFile } from '@/utils/fileUtil';

View File

@ -1,5 +1,5 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { useFetchKnowledgeList } from '@/hooks/knowledgeHook'; import { useFetchKnowledgeList } from '@/hooks/knowledge-hooks';
import { IModalProps } from '@/interfaces/common'; import { IModalProps } from '@/interfaces/common';
import { filterOptionsByInput } from '@/utils/commonUtil'; import { filterOptionsByInput } from '@/utils/commonUtil';
import { Form, Modal, Select } from 'antd'; import { Form, Modal, Select } from 'antd';

View File

@ -1,5 +1,5 @@
import { ReactComponent as DeleteIcon } from '@/assets/svg/delete.svg'; import { ReactComponent as DeleteIcon } from '@/assets/svg/delete.svg';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { import {
DownOutlined, DownOutlined,
FileTextOutlined, FileTextOutlined,
@ -26,7 +26,7 @@ import {
useSelectBreadcrumbItems, useSelectBreadcrumbItems,
} from './hooks'; } from './hooks';
import { useSelectParentFolderList } from '@/hooks/fileManagerHooks'; import { useSelectParentFolderList } from '@/hooks/file-manager-hooks';
import styles from './index.less'; import styles from './index.less';
interface IProps { interface IProps {

View File

@ -1,5 +1,5 @@
import { IModalManagerChildrenProps } from '@/components/modal-manager'; import { IModalManagerChildrenProps } from '@/components/modal-manager';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Form, Input, Modal } from 'antd'; import { Form, Input, Modal } from 'antd';
interface IProps extends Omit<IModalManagerChildrenProps, 'showModal'> { interface IProps extends Omit<IModalManagerChildrenProps, 'showModal'> {

View File

@ -1,4 +1,4 @@
import { useSetModalState, useShowDeleteConfirm } from '@/hooks/commonHooks'; import { useSetModalState, useShowDeleteConfirm } from '@/hooks/common-hooks';
import { import {
useConnectToKnowledge, useConnectToKnowledge,
useCreateFolder, useCreateFolder,
@ -9,9 +9,9 @@ import {
useSelectFileList, useSelectFileList,
useSelectParentFolderList, useSelectParentFolderList,
useUploadFile, useUploadFile,
} from '@/hooks/fileManagerHooks'; } from '@/hooks/file-manager-hooks';
import { useGetPagination, useSetPagination } from '@/hooks/logic-hooks'; import { useGetPagination, useSetPagination } from '@/hooks/logic-hooks';
import { useOneNamespaceEffectsLoading } from '@/hooks/storeHooks'; import { useOneNamespaceEffectsLoading } from '@/hooks/store-hooks';
import { IFile } from '@/interfaces/database/file-manager'; import { IFile } from '@/interfaces/database/file-manager';
import { PaginationProps } from 'antd'; import { PaginationProps } from 'antd';
import { TableRowSelection } from 'antd/es/table/interface'; import { TableRowSelection } from 'antd/es/table/interface';

View File

@ -1,4 +1,4 @@
import { useSelectFileList } from '@/hooks/fileManagerHooks'; import { useSelectFileList } from '@/hooks/file-manager-hooks';
import { IFile } from '@/interfaces/database/file-manager'; import { IFile } from '@/interfaces/database/file-manager';
import { formatDate } from '@/utils/date'; import { formatDate } from '@/utils/date';
import { Button, Flex, Space, Table, Tag, Typography } from 'antd'; import { Button, Flex, Space, Table, Tag, Typography } from 'antd';
@ -19,7 +19,7 @@ import {
import FileUploadModal from '@/components/file-upload-modal'; import FileUploadModal from '@/components/file-upload-modal';
import RenameModal from '@/components/rename-modal'; import RenameModal from '@/components/rename-modal';
import SvgIcon from '@/components/svg-icon'; import SvgIcon from '@/components/svg-icon';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { formatNumberWithThousandsSeparator } from '@/utils/commonUtil'; import { formatNumberWithThousandsSeparator } from '@/utils/commonUtil';
import { getExtension } from '@/utils/documentUtils'; import { getExtension } from '@/utils/documentUtils';
import ConnectToKnowledgeModal from './connect-to-knowledge-modal'; import ConnectToKnowledgeModal from './connect-to-knowledge-modal';

View File

@ -4,7 +4,7 @@ import { IFile, IFolder } from '@/interfaces/database/file-manager';
import i18n from '@/locales/config'; import i18n from '@/locales/config';
import fileManagerService, { import fileManagerService, {
getDocumentFile, getDocumentFile,
} from '@/services/fileManagerService'; } from '@/services/file-manager-service';
import { message } from 'antd'; import { message } from 'antd';
import omit from 'lodash/omit'; import omit from 'lodash/omit';
import { DvaModel } from 'umi'; import { DvaModel } from 'umi';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Form, Input } from 'antd'; import { Form, Input } from 'antd';
import { IOperatorForm } from '../interface'; import { IOperatorForm } from '../interface';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Flex } from 'antd'; import { Flex } from 'antd';
import classNames from 'classnames'; import classNames from 'classnames';
import lowerFirst from 'lodash/lowerFirst'; import lowerFirst from 'lodash/lowerFirst';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Flex } from 'antd'; import { Flex } from 'antd';
import classNames from 'classnames'; import classNames from 'classnames';
import { pick } from 'lodash'; import { pick } from 'lodash';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Flex } from 'antd'; import { Flex } from 'antd';
import classNames from 'classnames'; import classNames from 'classnames';
import lowerFirst from 'lodash/lowerFirst'; import lowerFirst from 'lodash/lowerFirst';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Flex } from 'antd'; import { Flex } from 'antd';
import classNames from 'classnames'; import classNames from 'classnames';
import lowerFirst from 'lodash/lowerFirst'; import lowerFirst from 'lodash/lowerFirst';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { CloseOutlined } from '@ant-design/icons'; import { CloseOutlined } from '@ant-design/icons';
import { Button, Card, Form, FormListFieldData, Input, Select } from 'antd'; import { Button, Card, Form, FormListFieldData, Input, Select } from 'antd';
import { FormInstance } from 'antd/lib'; import { FormInstance } from 'antd/lib';

View File

@ -1,5 +1,5 @@
import LLMSelect from '@/components/llm-select'; import LLMSelect from '@/components/llm-select';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Form } from 'antd'; import { Form } from 'antd';
import { useSetLlmSetting } from '../hooks'; import { useSetLlmSetting } from '../hooks';
import { IOperatorForm } from '../interface'; import { IOperatorForm } from '../interface';

View File

@ -1,14 +1,14 @@
import MessageItem from '@/components/message-item'; import MessageItem from '@/components/message-item';
import DocumentPreviewer from '@/components/pdf-previewer'; import DocumentPreviewer from '@/components/pdf-previewer';
import { MessageType } from '@/constants/chat'; import { MessageType } from '@/constants/chat';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { useClickDrawer, useGetFileIcon } from '@/pages/chat/hooks'; import { useClickDrawer, useGetFileIcon } from '@/pages/chat/hooks';
import { buildMessageItemReference } from '@/pages/chat/utils'; import { buildMessageItemReference } from '@/pages/chat/utils';
import { Button, Drawer, Flex, Input, Spin } from 'antd'; import { Button, Drawer, Flex, Input, Spin } from 'antd';
import { useSelectCurrentMessages, useSendMessage } from './hooks'; import { useSelectCurrentMessages, useSendMessage } from './hooks';
import { useSelectUserInfo } from '@/hooks/userSettingHook'; import { useSelectUserInfo } from '@/hooks/user-setting-hooks';
import styles from './index.less'; import styles from './index.less';
const FlowChatBox = () => { const FlowChatBox = () => {

View File

@ -1,5 +1,5 @@
import TopNItem from '@/components/top-n-item'; import TopNItem from '@/components/top-n-item';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Form, Select } from 'antd'; import { Form, Select } from 'antd';
import { useMemo } from 'react'; import { useMemo } from 'react';
import { Channel } from '../constant'; import { Channel } from '../constant';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { IModalProps } from '@/interfaces/common'; import { IModalProps } from '@/interfaces/common';
import { Drawer, Flex, Form, Input } from 'antd'; import { Drawer, Flex, Form, Input } from 'antd';
import { useEffect } from 'react'; import { useEffect } from 'react';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Card, Divider, Flex, Layout, Tooltip } from 'antd'; import { Card, Divider, Flex, Layout, Tooltip } from 'antd';
import classNames from 'classnames'; import classNames from 'classnames';
import lowerFirst from 'lodash/lowerFirst'; import lowerFirst from 'lodash/lowerFirst';

View File

@ -1,5 +1,5 @@
import { EditableCell, EditableRow } from '@/components/editable-cell'; import { EditableCell, EditableRow } from '@/components/editable-cell';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { DeleteOutlined } from '@ant-design/icons'; import { DeleteOutlined } from '@ant-design/icons';
import { Button, Flex, Select, Table, TableProps } from 'antd'; import { Button, Flex, Select, Table, TableProps } from 'antd';
import { IGenerateParameter } from '../interface'; import { IGenerateParameter } from '../interface';

View File

@ -1,5 +1,5 @@
import LLMSelect from '@/components/llm-select'; import LLMSelect from '@/components/llm-select';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Form, Input, InputNumber, Switch } from 'antd'; import { Form, Input, InputNumber, Switch } from 'antd';
import { useSetLlmSetting } from '../hooks'; import { useSetLlmSetting } from '../hooks';
import { IOperatorForm } from '../interface'; import { IOperatorForm } from '../interface';

View File

@ -1,4 +1,4 @@
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { useFetchFlow } from '@/hooks/flow-hooks'; import { useFetchFlow } from '@/hooks/flow-hooks';
import { ArrowLeftOutlined } from '@ant-design/icons'; import { ArrowLeftOutlined } from '@ant-design/icons';
import { Button, Flex, Space } from 'antd'; import { Button, Flex, Space } from 'antd';

View File

@ -1,6 +1,6 @@
import { useSetModalState } from '@/hooks/commonHooks'; import { useSetModalState } from '@/hooks/common-hooks';
import { useFetchFlow, useResetFlow, useSetFlow } from '@/hooks/flow-hooks'; import { useFetchFlow, useResetFlow, useSetFlow } from '@/hooks/flow-hooks';
import { useFetchLlmList } from '@/hooks/llmHooks'; import { useFetchLlmList } from '@/hooks/llm-hooks';
import { IGraph } from '@/interfaces/database/flow'; import { IGraph } from '@/interfaces/database/flow';
import { useIsFetching } from '@tanstack/react-query'; import { useIsFetching } from '@tanstack/react-query';
import React, { import React, {

View File

@ -1,4 +1,4 @@
import { useSetModalState } from '@/hooks/commonHooks'; import { useSetModalState } from '@/hooks/common-hooks';
import { Layout } from 'antd'; import { Layout } from 'antd';
import { useState } from 'react'; import { useState } from 'react';
import { ReactFlowProvider } from 'reactflow'; import { ReactFlowProvider } from 'reactflow';

View File

@ -1,6 +1,6 @@
import LLMSelect from '@/components/llm-select'; import LLMSelect from '@/components/llm-select';
import TopNItem from '@/components/top-n-item'; import TopNItem from '@/components/top-n-item';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { Form } from 'antd'; import { Form } from 'antd';
import { useSetLlmSetting } from '../hooks'; import { useSetLlmSetting } from '../hooks';
import { IOperatorForm } from '../interface'; import { IOperatorForm } from '../interface';

View File

@ -1,5 +1,5 @@
import { IModalManagerChildrenProps } from '@/components/modal-manager'; import { IModalManagerChildrenProps } from '@/components/modal-manager';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import { useFetchFlowTemplates } from '@/hooks/flow-hooks'; import { useFetchFlowTemplates } from '@/hooks/flow-hooks';
import { useSelectItem } from '@/hooks/logic-hooks'; import { useSelectItem } from '@/hooks/logic-hooks';
import { Card, Flex, Form, Input, Modal, Space, Typography } from 'antd'; import { Card, Flex, Form, Input, Modal, Space, Typography } from 'antd';

View File

@ -1,4 +1,4 @@
import { useSetModalState } from '@/hooks/commonHooks'; import { useSetModalState } from '@/hooks/common-hooks';
import { import {
useFetchFlowList, useFetchFlowList,
useFetchFlowTemplates, useFetchFlowTemplates,

View File

@ -4,7 +4,7 @@ import CreateFlowModal from './create-flow-modal';
import FlowCard from './flow-card'; import FlowCard from './flow-card';
import { useFetchDataOnMount, useSaveFlow } from './hooks'; import { useFetchDataOnMount, useSaveFlow } from './hooks';
import { useTranslate } from '@/hooks/commonHooks'; import { useTranslate } from '@/hooks/common-hooks';
import styles from './index.less'; import styles from './index.less';
const FlowList = () => { const FlowList = () => {

Some files were not shown because too many files have changed in this diff Show More