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:
Aries-ckt
2024-07-26 13:40:54 +08:00
committed by GitHub
parent 22e0680a6a
commit 167d972093
160 changed files with 89339 additions and 795 deletions

View File

@@ -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 })}