mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-09-18 16:00:41 +00:00
feat(ChatKnowledge): Support Financial Report Analysis (#1702)
Co-authored-by: hzh97 <2976151305@qq.com> Co-authored-by: Fangyin Cheng <staneyffer@gmail.com> Co-authored-by: licunxing <864255598@qq.com>
This commit is contained in:
@@ -2,8 +2,8 @@ import React, { useState, useEffect } from 'react';
|
||||
import { PlusOutlined } from '@ant-design/icons';
|
||||
import { Button, Modal, Steps } from 'antd';
|
||||
import SpaceCard from '@/components/knowledge/space-card';
|
||||
import { File, ISpace, StepChangeParams } from '@/types/knowledge';
|
||||
import { apiInterceptors, getSpaceList } from '@/client/api';
|
||||
import { File, ISpace, IStorage, SpaceConfig, StepChangeParams } from '@/types/knowledge';
|
||||
import { apiInterceptors, getSpaceConfig, getSpaceList } from '@/client/api';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import DocUploadForm from '@/components/knowledge/doc-upload-form';
|
||||
import SpaceForm from '@/components/knowledge/space-form';
|
||||
@@ -18,6 +18,8 @@ const Knowledge = () => {
|
||||
const [spaceName, setSpaceName] = useState<string>('');
|
||||
const [files, setFiles] = useState<Array<File>>([]);
|
||||
const [docType, setDocType] = useState<string>('');
|
||||
const [spaceConfig, setSpaceConfig] = useState<IStorage | null>(null);
|
||||
|
||||
const { t } = useTranslation();
|
||||
const addKnowledgeSteps = [
|
||||
{ title: t('Knowledge_Space_Config') },
|
||||
@@ -30,11 +32,19 @@ const Knowledge = () => {
|
||||
const [_, data] = await apiInterceptors(getSpaceList());
|
||||
setSpaceList(data);
|
||||
}
|
||||
|
||||
async function getSpaceConfigs() {
|
||||
const [_, data] = await apiInterceptors(getSpaceConfig());
|
||||
if (!data) return null;
|
||||
setSpaceConfig(data.storage);
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
getSpaces();
|
||||
getSpaceConfigs();
|
||||
}, []);
|
||||
|
||||
const handleStepChange = ({ label, spaceName, docType, files }: StepChangeParams) => {
|
||||
const handleStepChange = ({ label, spaceName, docType = '', files, pace = 1 }: StepChangeParams) => {
|
||||
if (label === 'finish') {
|
||||
setIsAddShow(false);
|
||||
getSpaces();
|
||||
@@ -43,9 +53,9 @@ const Knowledge = () => {
|
||||
getSpaces();
|
||||
} else if (label === 'forward') {
|
||||
activeStep === 0 && getSpaces();
|
||||
setActiveStep((step) => step + 1);
|
||||
setActiveStep((step) => step + pace);
|
||||
} else {
|
||||
setActiveStep((step) => step - 1);
|
||||
setActiveStep((step) => step - pace);
|
||||
}
|
||||
files && setFiles(files);
|
||||
spaceName && setSpaceName(spaceName);
|
||||
@@ -53,9 +63,13 @@ const Knowledge = () => {
|
||||
};
|
||||
|
||||
function onAddDoc(spaceName: string) {
|
||||
const space = spaceList?.find((item) => item?.name === spaceName);
|
||||
setSpaceName(spaceName);
|
||||
setActiveStep(1);
|
||||
setActiveStep(space?.domain_type === 'FinancialReport' ? 2 : 1);
|
||||
setIsAddShow(true);
|
||||
if (space?.domain_type === 'FinancialReport') {
|
||||
setDocType('DOCUMENT');
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
@@ -93,7 +107,7 @@ const Knowledge = () => {
|
||||
footer={null}
|
||||
>
|
||||
<Steps current={activeStep} items={addKnowledgeSteps} />
|
||||
{activeStep === 0 && <SpaceForm handleStepChange={handleStepChange} />}
|
||||
{activeStep === 0 && <SpaceForm handleStepChange={handleStepChange} spaceConfig={spaceConfig} />}
|
||||
{activeStep === 1 && <DocTypeForm handleStepChange={handleStepChange} />}
|
||||
<DocUploadForm
|
||||
className={classNames({ hidden: activeStep !== 2 })}
|
||||
|
Reference in New Issue
Block a user