| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import {
- useFetchKnowledgeBaseConfiguration,
- useUpdateKnowledge,
- } from '@/hooks/knowledge-hooks';
- import { useFetchLlmList, useSelectLlmOptions } from '@/hooks/llm-hooks';
- import { useNavigateToDataset } from '@/hooks/route-hook';
- import {
- useFetchTenantInfo,
- useSelectParserList,
- } from '@/hooks/user-setting-hooks';
- import {
- getBase64FromUploadFileList,
- getUploadFileListFromBase64,
- } from '@/utils/file-util';
- import { useIsFetching } from '@tanstack/react-query';
- import { Form, UploadFile } from 'antd';
- import { FormInstance } from 'antd/lib';
- import pick from 'lodash/pick';
- import { useCallback, useEffect } from 'react';
- import { LlmModelType } from '../../constant';
-
- export const useSubmitKnowledgeConfiguration = (form: FormInstance) => {
- const { saveKnowledgeConfiguration, loading } = useUpdateKnowledge();
- const navigateToDataset = useNavigateToDataset();
-
- const submitKnowledgeConfiguration = useCallback(async () => {
- const values = await form.validateFields();
- const avatar = await getBase64FromUploadFileList(values.avatar);
- saveKnowledgeConfiguration({
- ...values,
- avatar,
- });
- navigateToDataset();
- }, [saveKnowledgeConfiguration, form, navigateToDataset]);
-
- return {
- submitKnowledgeConfiguration,
- submitLoading: loading,
- navigateToDataset,
- };
- };
-
- export const useFetchKnowledgeConfigurationOnMount = (form: FormInstance) => {
- const parserList = useSelectParserList();
- const embeddingModelOptions = useSelectLlmOptions();
-
- useFetchTenantInfo();
- const { data: knowledgeDetails } = useFetchKnowledgeBaseConfiguration();
- useFetchLlmList(LlmModelType.Embedding);
-
- useEffect(() => {
- const fileList: UploadFile[] = getUploadFileListFromBase64(
- knowledgeDetails.avatar,
- );
- form.setFieldsValue({
- ...pick(knowledgeDetails, [
- 'description',
- 'name',
- 'permission',
- 'embd_id',
- 'parser_id',
- 'language',
- 'parser_config',
- ]),
- avatar: fileList,
- });
- }, [form, knowledgeDetails]);
-
- return {
- parserList,
- embeddingModelOptions,
- disabled: knowledgeDetails.chunk_num > 0,
- };
- };
-
- export const useSelectKnowledgeDetailsLoading = () =>
- useIsFetching({ queryKey: ['fetchKnowledgeDetail'] }) > 0;
-
- export const useHandleChunkMethodChange = () => {
- const [form] = Form.useForm();
- const chunkMethod = Form.useWatch('parser_id', form);
-
- return { form, chunkMethod };
- };
|