From 332d4874d01c3fdd69ea22eb40876a1346ae6744 Mon Sep 17 00:00:00 2001
From: balibabu <cike8899@users.noreply.github.com>
Date: Wed, 28 Feb 2024 18:57:10 +0800
Subject: [PATCH] feat: fetch parser list for SegmentSetModal (#81)

---
 .../components/knowledge-file/model.ts        | 12 ++++----
 .../parsing-action-cell/index.tsx             |  4 +--
 .../knowledge-file/segmentSetModal.tsx        | 30 +++++++++----------
 web/src/pages/chat/model.ts                   |  4 ++-
 4 files changed, 24 insertions(+), 26 deletions(-)

diff --git a/web/src/pages/add-knowledge/components/knowledge-file/model.ts b/web/src/pages/add-knowledge/components/knowledge-file/model.ts
index 53f1167..d1b2fa1 100644
--- a/web/src/pages/add-knowledge/components/knowledge-file/model.ts
+++ b/web/src/pages/add-knowledge/components/knowledge-file/model.ts
@@ -65,14 +65,14 @@ const model: DvaModel<KFModelState> = {
       const { data } = yield call(kbService.createKb, payload);
       const { retcode } = data;
       if (retcode === 0) {
-        message.success('创建成功!');
+        message.success('Created!');
       }
     },
     *updateKf({ payload = {} }, { call }) {
       const { data } = yield call(kbService.updateKb, payload);
       const { retcode } = data;
       if (retcode === 0) {
-        message.success('修改成功!');
+        message.success('Modified!');
       }
     },
     *getKfDetail({ payload = {} }, { call }) {
@@ -120,7 +120,7 @@ const model: DvaModel<KFModelState> = {
       );
       const { retcode } = data;
       if (retcode === 0) {
-        message.success('修改成功!');
+        message.success('Modified!');
         put({
           type: 'getKfList',
           payload: { kb_id: payload.kb_id },
@@ -133,7 +133,7 @@ const model: DvaModel<KFModelState> = {
       });
       const { retcode } = data;
       if (retcode === 0) {
-        message.success('删除成功!');
+        message.success('Deleted!');
         yield put({
           type: 'getKfList',
           payload: { kb_id: payload.kb_id },
@@ -171,7 +171,7 @@ const model: DvaModel<KFModelState> = {
             isShowCEFwModal: false,
           },
         });
-        message.success('创建成功!');
+        message.success('Created!');
       }
       return retcode;
     },
@@ -202,7 +202,7 @@ const model: DvaModel<KFModelState> = {
             isShowSegmentSetModal: false,
           },
         });
-        message.success('修改成功!');
+        message.success('Modified!');
       }
       return retcode;
     },
diff --git a/web/src/pages/add-knowledge/components/knowledge-file/parsing-action-cell/index.tsx b/web/src/pages/add-knowledge/components/knowledge-file/parsing-action-cell/index.tsx
index 0de4657..7557779 100644
--- a/web/src/pages/add-knowledge/components/knowledge-file/parsing-action-cell/index.tsx
+++ b/web/src/pages/add-knowledge/components/knowledge-file/parsing-action-cell/index.tsx
@@ -56,15 +56,13 @@ const ParsingActionCell = ({
     });
   };
 
-  const onRename = () => {};
-
   const chunkItems: MenuProps['items'] = [
     {
       key: '1',
       label: (
         <div>
           <Button type="link" onClick={showSegmentSetModal}>
-            分段设置
+            Parser type
           </Button>
         </div>
       ),
diff --git a/web/src/pages/add-knowledge/components/knowledge-file/segmentSetModal.tsx b/web/src/pages/add-knowledge/components/knowledge-file/segmentSetModal.tsx
index 07853c2..49aab4e 100644
--- a/web/src/pages/add-knowledge/components/knowledge-file/segmentSetModal.tsx
+++ b/web/src/pages/add-knowledge/components/knowledge-file/segmentSetModal.tsx
@@ -1,6 +1,6 @@
+import { useFetchParserList, useSelectParserList } from '@/hooks/knowledgeHook';
 import { Modal, Space, Tag } from 'antd';
 import React, { useEffect, useState } from 'react';
-import { useTranslation } from 'react-i18next';
 import { useDispatch, useSelector } from 'umi';
 import styles from './index.less';
 const { CheckableTag } = Tag;
@@ -16,17 +16,13 @@ const SegmentSetModal: React.FC<kFProps> = ({
 }) => {
   const dispatch = useDispatch();
   const kFModel = useSelector((state: any) => state.kFModel);
-  const settingModel = useSelector((state: any) => state.settingModel);
   const [selectedTag, setSelectedTag] = useState('');
-  const parser_ids = settingModel?.tenantIfo?.parser_ids ?? '';
   const { isShowSegmentSetModal } = kFModel;
-  const { t } = useTranslation();
+  const parserList = useSelectParserList();
+
+  useFetchParserList();
 
   useEffect(() => {
-    dispatch({
-      type: 'settingModel/getTenantInfo',
-      payload: {},
-    });
     setSelectedTag(parser_id);
   }, [parser_id]);
 
@@ -48,32 +44,34 @@ const SegmentSetModal: React.FC<kFProps> = ({
       },
     });
 
-    retcode === 0 && getKfList && getKfList();
+    if (retcode === 0 && getKfList) {
+      getKfList();
+      handleCancel();
+    }
   };
 
   const handleChange = (tag: string, checked: boolean) => {
     const nextSelectedTag = checked ? tag : selectedTag;
-    console.log('You are interested in: ', nextSelectedTag);
     setSelectedTag(nextSelectedTag);
   };
 
   return (
     <Modal
-      title="Basic Modal"
+      title="Parser Type"
       open={isShowSegmentSetModal}
       onOk={handleOk}
       onCancel={handleCancel}
     >
       <Space size={[0, 8]} wrap>
         <div className={styles.tags}>
-          {parser_ids.split(',').map((tag: string) => {
+          {parserList.map((x) => {
             return (
               <CheckableTag
-                key={tag}
-                checked={selectedTag === tag}
-                onChange={(checked) => handleChange(tag, checked)}
+                key={x.value}
+                checked={selectedTag === x.value}
+                onChange={(checked) => handleChange(x.value, checked)}
               >
-                {tag}
+                {x.label}
               </CheckableTag>
             );
           })}
diff --git a/web/src/pages/chat/model.ts b/web/src/pages/chat/model.ts
index 659fc3d..e885e60 100644
--- a/web/src/pages/chat/model.ts
+++ b/web/src/pages/chat/model.ts
@@ -110,10 +110,12 @@ const model: DvaModel<ChatModelState> = {
       return data.retcode;
     },
     *getConversation({ payload }, { call, put }) {
+      const needToBeSaved =
+        payload.needToBeSaved === undefined ? true : payload.needToBeSaved;
       const { data } = yield call(chatService.getConversation, {
         conversation_id: payload.conversation_id,
       });
-      if (data.retcode === 0 && payload.needToBeSaved) {
+      if (data.retcode === 0 && needToBeSaved) {
         yield put({
           type: 'kFModel/fetch_document_thumbnails',
           payload: {
-- 
GitLab