Pārlūkot izejas kodu

feat:知识库详情页国际化完成

hanyang 1 gadu atpakaļ
vecāks
revīzija
f1cba6f7db

+ 88 - 0
public/i18n/lang-en.json

@@ -78,6 +78,94 @@
     "searchAppTip": "All Application Types",
     "searchLabelTip": "All Labels"
   },
+  "knowledgeLib": {
+    "tab_1": "Dataset",
+    "tab_2": "Test",
+    "tab_3": "Configuration",
+    "select_all": "Batch",
+    "select_enable": "Enable",
+    "select_disable": "Disable",
+    "select_start": "Start",
+    "select_cancel": "Cancel",
+    "select_delete": "Delete",
+    "tips_fresh": "Refresh",
+    "tips_density": "Density",
+    "search_placeholder": "Search",
+    "create_file": "Create file",
+    "upload_file": "Upload file",
+    "file": "File",
+    "folder": "Folder",
+    "table_name": "Name",
+    "table_chunk": "Chunk Count",
+    "table_create_time": "Upload Time",
+    "table_parser": "Parser Method",
+    "table_start": "Enable",
+    "table_run": "Parsing Status",
+    "table_action": "Action",
+    "table_status_finish": "Finish",
+    "table_status_fail": "Fail",
+    "table_status_running": "Parsing",
+    "table_status_cancel": "Cancelled",
+    "table_status_stop": "Not Started",
+    "popover_label_1": "The process starts at",
+    "popover_label_2": "Process duration",
+    "popover_label_3": "Progress message",
+    "action_tip_parser": "Parser Method",
+    "action_tip_delete": "Delete",
+    "action_tip_download": "Download",
+    "action_tip_rename": "Rename",
+    "rename_form_label": "name",
+    "rename_form_placeholder": "Please enter a name",
+    "submit": "Confirm",
+    "cancel": "Cancel",
+    "delete_confirm": "Are you sure you want to delete?",
+    "tool_tab_1": "Parser Method",
+    "tool_tab_2": "Create Parsing Task",
+    "block_token_count": "Block Token Count",
+    "use_strategy": "Use Recall-Enhanced RAPTOR Strategy",
+    "prompt": "Prompt",
+    "prompt_placeholder": "Please enter a prompt",
+    "max_token_count": "Maximum Token Count",
+    "threshold": "Threshold",
+    "max_clusters": "Maximum Number of Clusters",
+    "random_seed": "Random Seed",
+    "radio_label_1": "Full Text",
+    "radio_label_2": "Ellipsis",
+    "check_all": "Select All",
+    "enable_checked": "Enable Selected",
+    "disable_checked": "Disable Selected",
+    "delete_checked": "Delete Selected",
+    "start_checked": "Start Selected",
+    "all": "All",
+    "enable": "Enable",
+    "disable": "Disable",
+    "edit_parser_block": "Edit Parsing Block",
+    "parse_block": "Parsing Block",
+    "keyword": "Keyword *",
+    "create_parser_block": "Create Parsing Block",
+    "test_title": "Retrieval Test",
+    "test_tips": "Last step! Once successful, leave the rest to Infiniflow AI.",
+    "similarity_threshold": "Similarity Threshold",
+    "similarity_weight": "Keyword Similarity Weight",
+    "rerank_model": "Rerank Model",
+    "select_placeholder": "Please select...",
+    "test_content": "Test Text",
+    "test_btn": "Test",
+    "test_result_head": "Selected Files",
+    "test_preview": "Preview",
+    "hybrid_similarity": "Hybrid Similarity",
+    "keyword_similarity": "Keyword Similarity",
+    "vector_similarity": "Vector Similarity",
+    "config_header": "Update your knowledge base details here, especially the parsing method.",
+    "label_name": "Knowledge Base Name",
+    "input_placeholder": "Please enter",
+    "label_desc": "Knowledge Base Description",
+    "label_model": "Embedded Model",
+    "label_parser": "Parsing Method",
+    "label_layout": "Layout Recognition",
+    "label_prompt_placeholder": "Please fill in the prompt",
+    "save_btn": "Save"
+  },
   "permission": {
     "query": "Query",
     "reset": "Reset",

+ 88 - 0
public/i18n/lang-zh.json

@@ -78,6 +78,94 @@
     "searchAppTip": "全部应用类型",
     "searchLabelTip": "全部标签"
   },
+  "knowledgeLib": {
+    "tab_1": "数据集",
+    "tab_2": "测试",
+    "tab_3": "配置",
+    "select_all": "批量",
+    "select_enable": "启用",
+    "select_disable": "禁用",
+    "select_start": "启动",
+    "select_cancel": "取消",
+    "select_delete": "删除",
+    "tips_fresh": "刷新",
+    "tips_density": "密度",
+    "search_placeholder": "搜索",
+    "create_file": "新增文件",
+    "upload_file": "上传文件",
+    "file": "文件",
+    "folder": "文件夹",
+    "table_name": "名称",
+    "table_chunk": "分快数",
+    "table_create_time": "上传时间",
+    "table_parser": "解析方法",
+    "table_start": "启用",
+    "table_run": "解析状态",
+    "table_action": "操作",
+    "table_status_finish": "完成",
+    "table_status_fail": "失败",
+    "table_status_running": "解析中",
+    "table_status_cancel": "取消",
+    "table_status_stop": "未启动",
+    "popover_label_1": "流程起始于",
+    "popover_label_2": "过程持续时间",
+    "popover_label_3": "进度消息",
+    "action_tip_parser": "解析方法",
+    "action_tip_delete": "删除",
+    "action_tip_download": "下载",
+    "action_tip_rename": "重命名",
+    "rename_form_label": "名称",
+    "rename_form_placeholder": "请输入名称",
+    "submit": "确定",
+    "cancel": "取消",
+    "delete_confirm": "确定删除吗?",
+    "tool_tab_1": "解析方法",
+    "tool_tab_2": "创建解析块",
+    "block_token_count": "块token数",
+    "use_strategy": "使用召回增强RAPTOR策略",
+    "prompt": "提示词",
+    "prompt_placeholder": "请填写提示词",
+    "max_token_count": "最大token数",
+    "threshold": "阈值",
+    "max_clusters": "最大聚类数",
+    "random_seed": "随机种子",
+    "radio_label_1": "全文",
+    "radio_label_2": "省略",
+    "check_all": "选择所有",
+    "enable_checked": "启用选定的",
+    "disable_checked": "禁用选定的",
+    "delete_checked": "删除选定的",
+    "start_checked": "启动选定的",
+    "all": "所有",
+    "enable": "启用",
+    "disable": "禁用",
+    "edit_parser_block": "编辑解析块",
+    "parse_block": "解析块",
+    "keyword": "关键词 *",
+    "create_parser_block": "创建解析块",
+    "test_title": "检索测试",
+    "test_tips": "最后一步! 成功后,剩下的就交给Infiniflow AI吧。",
+    "similarity_threshold": "相似度阈值",
+    "similarity_weight": "关键字相似度权重",
+    "rerank_model": "Rerank模型",
+    "select_placeholder": "请选择...",
+    "test_content": "测试文本",
+    "test_btn": "测试",
+    "test_result_head": "选定的文件",
+    "test_preview": "预览",
+    "hybrid_similarity": "混合相似度",
+    "keyword_similarity": "关键词相似度",
+    "vector_similarity": "向量相似度",
+    "config_header": "在这里更新您的知识库详细信息,尤其是解析方法。",
+    "label_name": "知识库名称",
+    "input_placeholder": "请输入",
+    "label_desc": "知识库描述",
+    "label_model": "嵌入模型",
+    "label_parser": "解析方法",
+    "label_layout": "布局识别",
+    "label_prompt_placeholder": "请填写提示词",
+    "save_btn": "保存"
+  },
   "permission": {
     "query": "查询",
     "reset": "重置",

+ 21 - 2
src/modules/intelligent/MessageBody.vue

@@ -41,6 +41,24 @@
             </div>
           </template>
         </a-dropdown>
+        <!-- <a-select :default-value="'Beijing'" placeholder="Please select ..." multiple>
+          <a-option>Beijing</a-option>
+          <a-option>Shanghai</a-option>
+          <a-option>Guangzhou</a-option>
+          <a-option disabled>Disabled</a-option>
+          <a-option>Shenzhen</a-option>
+          <a-option>Wuhan</a-option>
+          <template #header>
+            <div style="padding: 6px 12px">
+              <a-checkbox value="1">全选</a-checkbox>
+            </div>
+          </template>
+          <template #footer>
+            <div style="padding: 6px 0; text-align: center">
+              <a-button>Click Me</a-button>
+            </div>
+          </template>
+        </a-select> -->
       </template>
       <template #bottom>
         <div class="bottom">
@@ -288,8 +306,9 @@ onBeforeUnmount(() => {
   grid-template-columns: repeat(6, 1fr);
   align-content: flex-start;
   gap: 20px;
-  overflow-y: scroll;
-  height: calc(100% - 80px);
+  padding-top: 10px;
+  overflow-y: auto;
+  height: calc(100% - 90px);
 }
 .body-container::-webkit-scrollbar {
   display: none;

+ 1 - 1
src/modules/intelligent/TopSetting.vue

@@ -91,7 +91,7 @@ import {
   bus_intelligentSearch,
   bus_intelligentEdit,
   bus_intelligentIconEdit,
-  bus_intelligentLabelSync,
+  bus_intelligentLabelSync
 } from '../../base/event-bus';
 
 const router = useRouter();

+ 1 - 2
src/modules/knowledge/MessageBody.vue

@@ -10,7 +10,7 @@
     >
       <template #bottom>
         <div class="bottom">
-          <div>{{ item.count }}{{ $t('management.document') }}</div>
+          <div>{{ item.count }}&nbsp;{{ $t('management.document') }}</div>
           <div>|</div>
           <div>{{ item.time }}</div>
         </div>
@@ -68,7 +68,6 @@ const scroll_bottom = ref(false);
 const search_text = ref('');
 
 const handleToDetail = (item) => {
-  console.log(router.getRoutes());
   router.push({
     path: '/knowledge/detail',
     query: {

+ 1 - 1
src/modules/knowledge/rgflow/TopBreadCrumb.vue

@@ -2,7 +2,7 @@
   <a-breadcrumb class="breadcrumb">
     <a-breadcrumb-item><icon-apps /></a-breadcrumb-item>
     <a-breadcrumb-item>
-      <router-link to="/knowledge">知识库管理</router-link>
+      <router-link to="/knowledge">{{ $t('header.知识库管理') }}</router-link>
     </a-breadcrumb-item>
     <a-breadcrumb-item>{{ current_label }}</a-breadcrumb-item>
   </a-breadcrumb>

+ 8 - 4
src/modules/knowledge/rgflow/knowledgeLib/add.vue

@@ -3,11 +3,13 @@
     <template #icon>
       <icon-plus />
     </template>
-    新增文件
+    <!-- 新增文件 -->
+    {{ $t('knowledgeLib.create_file') }}
   </a-button>
+  <!--上传文件  -->
   <a-modal
     v-model:visible="visible"
-    title="上传文件"
+    :title="$t('knowledgeLib.upload_file')"
     @open="handleOpened"
     @cancel="handleCancel"
     :ok-loading="loading"
@@ -15,8 +17,10 @@
     title-align="start"
   >
     <a-tabs :default-active-key="activeKey" @change="activeKeyChange">
-      <a-tab-pane key="1" title="文件"> </a-tab-pane>
-      <a-tab-pane key="2" title="文件夹"> </a-tab-pane>
+      <!-- 文件 -->
+      <a-tab-pane key="1" :title="$t('knowledgeLib.file')"> </a-tab-pane>
+      <!-- 文件夹 -->
+      <a-tab-pane key="2" :title="$t('knowledgeLib.folder')"> </a-tab-pane>
     </a-tabs>
     <div class="aUpload">
       <!--          <a-upload :file-list="uploadList" draggable accept=".word, .pdf, .ppt, .excel, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .pptx, .ppt, .pdf, .mp4, .avi, .mp3,.wav, .wma, .wmv, .rm," :custom-request="customRequest" />-->

+ 10 - 5
src/modules/knowledge/rgflow/knowledgeLib/addDetails.vue

@@ -4,19 +4,22 @@
       <icon-plus />
     </template>
   </a-button>
+  <!-- 创建解析块 -->
   <a-modal
     v-model:visible="visible"
-    title="创建解析块"
+    :title="$t('knowledgeLib.create_parser_block')"
     @before-open="handleOpened"
     @cancel="handleCancel"
     :footer="false"
     title-align="start"
   >
     <a-form ref="formRef" :rules="rules" :model="form" @submit="handleSubmit" layout="vertical">
-      <a-form-item field="content_with_weight" label="解析块">
+      <!-- 解析块 -->
+      <a-form-item field="content_with_weight" :label="$t('knowledgeLib.parse_block')">
         <a-textarea v-model="form.content_with_weight" placeholder="" style="height: 100px" auto-size />
       </a-form-item>
-      <a-form-item field="important_kwd_key" label="关键词 *">
+      <!-- 关键词 -->
+      <a-form-item field="important_kwd_key" :label="$t('knowledgeLib.keyword')">
         <div style="width: auto">
           <a-tag
             v-for="(item, index) in form.important_kwd"
@@ -46,8 +49,10 @@
 
       <a-form-item>
         <div style="width: 100%; text-align: right">
-          <a-button @click="visible = false">取消</a-button>
-          <a-button style="margin-left: 10px" type="primary" html-type="submit">确定</a-button>
+          <a-button @click="visible = false">{{ $t('knowledgeLib.cancel') }}</a-button>
+          <a-button style="margin-left: 10px" type="primary" html-type="submit">{{
+            $t('knowledgeLib.submit')
+          }}</a-button>
         </div>
       </a-form-item>
     </a-form>

+ 46 - 51
src/modules/knowledge/rgflow/knowledgeLib/config.vue

@@ -2,7 +2,8 @@
   <div ref="scrollContainer" class="main-container">
     <div style="position: absolute; top: 0; left: 0; width: 100%; padding: 0 20px">
       <h4 style="margin-bottom: 10px"></h4>
-      <div style="color: #666666">在这里更新您的知识库详细信息,尤其是解析方法。</div>
+      <!-- 在这里更新您的知识库详细信息,尤其是解析方法。 -->
+      <div style="color: #666666">{{ $t('knowledgeLib.config_header') }}</div>
       <a-divider style="margin-top: 20px" />
     </div>
     <div class="main-container-lf">
@@ -15,89 +16,78 @@
           layout="vertical"
           @submit="handleSubmit"
         >
-          <a-form-item field="name" label="知识库名称">
-            <a-input v-model="form.name" placeholder="请输入" />
+          <!-- 知识库名称 -->
+          <a-form-item field="name" :label="$t('knowledgeLib.label_name')">
+            <a-input v-model="form.name" :placeholder="$t('knowledgeLib.input_placeholder')" />
           </a-form-item>
-          <!-- <a-form-item field="section" label="知识库图片">
-            <a-space direction="vertical" :style="{ width: '100%' }">
-              <Upload
-                v-if="avatarShow"
-                :action="uploadAction"
-                :limit="1"
-                :url="form.avatar ? httpUrl + form.avatar : ''"
-                @update:fileList="updateFileList"
-                @success="handleSuccess"
-              ></Upload>
-            </a-space>
-          </a-form-item> -->
-          <a-form-item field="section" label="描述">
+          <!-- 描述 -->
+          <a-form-item field="section" :label="$t('knowledgeLib.label_desc')">
             <a-textarea placeholder="" v-model="form.description" allow-clear />
           </a-form-item>
-          <!--          <a-form-item field="section" label="语言" :rules="[{match:/section one/,message:'请选择'}]">-->
-          <!--            <a-select v-model="form.section" placeholder="请选择" allow-clear>-->
-          <!--              <a-option value="0">中文</a-option>-->
-          <!--              <a-option value="1">英文</a-option>-->
-          <!--            </a-select>-->
-          <!--          </a-form-item>-->
-          <a-form-item field="embd_id" label="嵌入模型">
+          <!-- 嵌入模型 -->
+          <a-form-item field="embd_id" :label="$t('knowledgeLib.label_model')">
             <a-select
               :size="'large'"
               v-model="form.embd_id"
-              placeholder="请选择 ..."
+              :placeholder="$t('knowledgeLib.input_placeholder')"
               :disabled="kbObj.chunk_num && kbObj.token_num"
             >
-              <!-- <a-optgroup  :label="index" v-for="(item,index) in mobileData" :key=index>
-                <a-option
-                  v-for="(obj) in item"
-                  :key='obj.fid'
-                  :value="obj.llm_name"
-                >
-                  {{obj.llm_name}}
-                </a-option>
-              </a-optgroup> -->
               <a-option v-for="(item, index) in mobileData" :key="item.name" :value="item.name">
                 {{ item.name }}
               </a-option>
             </a-select>
           </a-form-item>
-          <a-form-item field="parser_id" label="解析方法">
-            <a-select v-model="form.parser_id" placeholder="请选择" :disabled="!!(kbObj.chunk_num && kbObj.token_num)">
+          <!-- 解析方法 -->
+          <a-form-item field="parser_id" :label="$t('knowledgeLib.label_model')">
+            <a-select
+              v-model="form.parser_id"
+              :placeholder="$t('knowledgeLib.input_placeholder')"
+              :disabled="!!(kbObj.chunk_num && kbObj.token_num)"
+            >
               <a-option v-for="item in parser_ids" :key="item.value" :label="item.name" :value="item.value"></a-option>
             </a-select>
           </a-form-item>
-          <a-form-item field="slider" label="块Token数">
+          <!-- 块Token数 -->
+          <a-form-item field="slider" :label="$t('knowledgeLib.block_token_count')">
             <a-slider v-model="form.chunk_token_num" :min="0" :max="2048" show-input />
           </a-form-item>
-          <a-form-item label="布局识别">
+          <!-- 布局识别 -->
+          <a-form-item :label="$t('knowledgeLib.label_layout')">
             <a-space direction="vertical">
               <a-switch v-model="form.layout_recognize" size="small" />
             </a-space>
           </a-form-item>
-          <a-form-item field="raptor" label="使用召回增强RAPTOR策略">
+          <!-- 使用召回增强RAPTOR策略 -->
+          <a-form-item field="raptor" :label="$t('knowledgeLib.use_strategy')">
             <a-switch v-model="form.use_raptor" size="small" />
           </a-form-item>
           <div v-if="form.use_raptor">
-            <a-form-item field="prompt" label="提示词">
+            <!-- 提示词 -->
+            <a-form-item field="prompt" :label="$t('knowledgeLib.prompt')">
               <a-textarea
                 v-model="form.prompt"
                 style="height: 10rem; border: 1px solid var(--color-fill-3); border-radius: 4px"
-                placeholder="请填写提示词"
+                :placeholder="$t('knowledgeLib.label_prompt_placeholder')"
               />
             </a-form-item>
-            <a-form-item field="slider" label="最大token数">
+            <!-- 最大token数 -->
+            <a-form-item field="slider" :label="$t('knowledgeLib.max_token_count')">
               <a-slider v-model="form.max_token" :min="0" :max="2048" show-input />
             </a-form-item>
-            <a-form-item field="slider" label="阈值">
+            <!-- 阈值 -->
+            <a-form-item field="slider" :label="$t('knowledgeLib.threshold')">
               <a-slider v-model="form.threshold" :step="0.01" :min="0" :max="1" show-input />
             </a-form-item>
-            <a-form-item field="slider" label="最大聚类数">
+            <!-- 最大聚类数 -->
+            <a-form-item field="slider" :label="$t('knowledgeLib.max_clusters')">
               <a-slider v-model="form.max_cluster" :min="1" :max="1024" show-input />
             </a-form-item>
-            <a-form-item field="slider" label="随机种子" v-model="form.random_seed">
+            <!-- 随机种子 -->
+            <a-form-item field="slider" :label="$t('knowledgeLib.random_seed')" v-model="form.random_seed">
               <a-input-number
                 v-model="form.random_seed"
                 :style="{ width: '300px', marginRight: '1rem', borderRadius: '4px' }"
-                placeholder="请输入"
+                :placeholder="$t('knowledgeLib.input_placeholder')"
                 class="input-demo"
                 :min="10"
                 :max="100"
@@ -110,8 +100,10 @@
           <a-form-item>
             <div style="width: 100%; text-align: right">
               <a-space>
-                <a-button @click="cancelConfig">取消</a-button>
-                <a-button :loading="loading" type="primary" html-type="submit">保存</a-button>
+                <a-button @click="cancelConfig"> {{ $t('knowledgeLib.cancel') }} </a-button>
+                <a-button :loading="loading" type="primary" html-type="submit">{{
+                  $t('knowledgeLib.save_btn')
+                }}</a-button>
               </a-space>
             </div>
           </a-form-item>
@@ -133,8 +125,11 @@
         >
           "General" 分块方法说明
         </h4>
-        < data-inspector-line="40" data-inspector-column="10"
-        data-inspector-relative-path="src\pages\add-knowledge\components\knowledge-setting\category-panel.tsx">
+        <p
+          data-inspector-line="40"
+          data-inspector-column="10"
+          data-inspector-relative-path="src\pages\add-knowledge\components\knowledge-setting\category-panel.tsx"
+        ></p>
         <p>支持的文件格式为<b>DOCX、EXCEL、PPT、IMAGE、PDF、TXT</b>。</p>
         <p>此方法将简单的方法应用于块文件:</p>
         <p></p>
@@ -167,7 +162,7 @@
             data-inspector-line="32"
             data-inspector-column="8"
             data-inspector-relative-path="src\components\svg-icon.tsx"
-            :src="step1"
+            src="../../../../assets/image/management/step1.png"
             alt=""
             width="50%"
           />
@@ -175,7 +170,7 @@
             data-inspector-line="32"
             data-inspector-column="8"
             data-inspector-relative-path="src\components\svg-icon.tsx"
-            :src="step2"
+            src="../../../../assets/image/management/step2.png"
             alt=""
             width="50%"
           />

+ 13 - 7
src/modules/knowledge/rgflow/knowledgeLib/edit.vue

@@ -1,27 +1,33 @@
 <template>
-  <a-tooltip content="重命名">
-    <a-button type="text" v-hasPermi="'/kb/rename'" :disabled="props.item.run == '1'" @click="handleClick" size="small">
+  <!-- 重命名 -->
+  <a-tooltip :content="$t('knowledgeLib.action_tip_rename')">
+    <a-button type="text" :disabled="props.item.run == '1'" @click="handleClick" size="small">
       <template #icon>
         <icon-edit />
       </template>
     </a-button>
   </a-tooltip>
+  <!-- 重命名 -->
   <a-modal
     v-model:visible="visible"
-    title="重命名"
+    :title="$t('knowledgeLib.action_tip_rename')"
     @before-open="handleOpened"
     @cancel="handleCancel"
     :footer="false"
     title-align="start"
   >
     <a-form ref="formRef" :rules="rules" :model="form" @submit="handleSubmit">
-      <a-form-item field="name" label="名称">
-        <a-input v-model="form.name" placeholder="请输入名称" />
+      <!-- 名称 -->
+      <a-form-item field="name" :label="$t('knowledgeLib.rename_form_label')">
+        <a-input v-model="form.name" :placeholder="$t('knowledgeLib.rename_form_placeholder')" />
       </a-form-item>
       <a-form-item>
         <div style="width: 100%; text-align: right">
-          <a-button @click="visible = false">取消</a-button>
-          <a-button style="margin-left: 10px" type="primary" html-type="submit">确定</a-button>
+          <!-- 取消 -->
+          <a-button @click="visible = false">{{ $t('knowledgeLib.cancel') }}</a-button>
+          <a-button style="margin-left: 10px" type="primary" html-type="submit">{{
+            $t('knowledgeLib.submit')
+          }}</a-button>
         </div>
       </a-form-item>
     </a-form>

+ 11 - 5
src/modules/knowledge/rgflow/knowledgeLib/eidtDetails.vue

@@ -1,17 +1,19 @@
 <template>
   <a-modal
     v-model:visible="visible"
-    title="编辑解析块"
+    :title="$t('knowledgeLib.edit_parser_block')"
     @before-open="handleOpened"
     @cancel="handleCancel"
     :footer="false"
     title-align="start"
   >
     <a-form ref="formRef" :rules="rules" :model="form" @submit="handleSubmit" layout="vertical">
-      <a-form-item field="content_with_weight" label="解析块">
+      <!-- 解析块 -->
+      <a-form-item field="content_with_weight" :label="$t('knowledgeLib.parse_block')">
         <a-textarea v-model="form.content_with_weight" placeholder="" style="height: 100px; overflow: auto" auto-size />
       </a-form-item>
-      <a-form-item field="important_kwd_key" label="关键词 *">
+      <!-- 关键词 -->
+      <a-form-item field="important_kwd_key" :label="$t('knowledgeLib.keyword')">
         <div style="width: auto">
           <a-tag
             v-for="(item, index) in form.important_kwd"
@@ -51,8 +53,12 @@
       <!--      </div>-->
       <a-form-item>
         <div style="width: 100%; text-align: right">
-          <a-button @click="visible = false">取消</a-button>
-          <a-button style="margin-left: 10px" type="primary" html-type="submit">确定</a-button>
+          <!-- 取消 -->
+          <a-button @click="visible = false">{{ $t('knowledgeLib.cancel') }}</a-button>
+          <!-- 确定 -->
+          <a-button style="margin-left: 10px" type="primary" html-type="submit">{{
+            $t('knowledgeLib.submit')
+          }}</a-button>
         </div>
       </a-form-item>
     </a-form>

+ 145 - 116
src/modules/knowledge/rgflow/knowledgeLib/index.vue

@@ -4,7 +4,8 @@
       <!-- <div class="rt-container" v-if="tabs.length > 0"> -->
       <div class="rt-container">
         <a-tabs :active-key="activeKey" @change="handleTabChange">
-          <a-tab-pane key="1" title="数据集">
+          <!-- 数据集 -->
+          <a-tab-pane key="1" :title="$t('knowledgeLib.tab_1')">
             <a-scrollbar class="rt-container-main" :style="{ height: documentHeight + 'px' }" style="overflow: auto">
               <!-- <a-scrollbar class="rt-container-main" style="overflow: auto"> -->
               <a-card
@@ -24,8 +25,9 @@
                       <a-row :gutter="16">
                         <a-col :span="24" style="margin-bottom: 10px; display: flex; justify-content: space-between">
                           <a-popover position="bottom" v-model="checkedArr.length" trigger="click">
-                            <a-button :disabled="checkedArr.length == 0" border
-                              >批量
+                            <a-button :disabled="checkedArr.length == 0" border>
+                              <!-- 批量 -->
+                              {{ $t('knowledgeLib.select_all') }}
                               <icon-down style="margin-left: 4px" />
                             </a-button>
                             <template #content>
@@ -34,7 +36,8 @@
                                   <template #icon>
                                     <icon-play-circle />
                                   </template>
-                                  启用
+                                  <!-- 启用 -->
+                                  {{ $t('knowledgeLib.select_enable') }}
                                 </a-button>
                               </p>
                               <p>
@@ -42,7 +45,8 @@
                                   <template #icon>
                                     <icon-record color="" />
                                   </template>
-                                  禁用
+                                  <!-- 禁用 -->
+                                  {{ $t('knowledgeLib.select_disable') }}
                                 </a-button>
                               </p>
                               <p>
@@ -50,7 +54,8 @@
                                   <template #icon>
                                     <icon-check-circle />
                                   </template>
-                                  启动
+                                  <!-- 启动 -->
+                                  {{ $t('knowledgeLib.select_start') }}
                                 </a-button>
                               </p>
                               <p>
@@ -58,7 +63,8 @@
                                   <template #icon>
                                     <icon-close-circle />
                                   </template>
-                                  取消
+                                  <!-- 取消 -->
+                                  {{ $t('knowledgeLib.select_cancel') }}
                                 </a-button>
                               </p>
                               <a-divider style="margin: 10px 0" />
@@ -67,14 +73,16 @@
                                   <template #icon>
                                     <icon-delete />
                                   </template>
-                                  删除
+                                  <!-- 删除 -->
+                                  {{ $t('knowledgeLib.select_delete') }}
                                 </a-button>
                               </p>
                             </template>
                           </a-popover>
                           <span>
+                            <!-- 搜索 -->
                             <a-input-search
-                              placeholder="搜索"
+                              :placeholder="$t('knowledgeLib.search_placeholder')"
                               style="width: 200px; margin-right: 10px"
                               v-model="keywords"
                               @change="search"
@@ -93,13 +101,15 @@
                     <a-space> </a-space>
                   </a-col>
                   <a-col :span="12" style="display: flex; align-items: center; justify-content: end">
-                    <a-tooltip content="刷新">
+                    <!-- 刷新 -->
+                    <a-tooltip :content="$t('knowledgeLib.tips_fresh')">
                       <div class="action-icon">
                         <icon-refresh size="18" />
                       </div>
                     </a-tooltip>
                     <a-dropdown @select="handleSelectDensity">
-                      <a-tooltip content="密度">
+                      <!-- 密度 -->
+                      <a-tooltip :content="$t('knowledgeLib.tips_density')">
                         <div class="action-icon">
                           <icon-line-height size="18" />
                         </div>
@@ -157,53 +167,91 @@
                   <template #run="{ record }">
                     <div style="display: flex; align-items: center">
                       <div style="width: 100px">
-                        <a-popover title="" v-if="record.run == '4'">
-                          <a-tag :loading="record.loading" :color="'red'" border>失败</a-tag>
+                        <a-popover position="lt" title="" v-if="record.run == '4'">
+                          <a-tag :loading="record.loading" :color="'red'" border>
+                            <!-- 失败 -->
+                            {{ $t('knowledgeLib.status_fail') }}
+                          </a-tag>
                           <template #content>
-                            <p>流程开始于:{{ record.process_begin_at }}</p>
-                            <p>过程持续时间:{{ record.process_duation.toFixed(2) }}</p>
+                            <!-- 流程开始于: -->
+                            <p>{{ $t('knowledgeLib.popover_label_1') }}:{{ record.process_begin_at }}</p>
+                            <!-- 过程持续时间 -->
+                            <p>{{ $t('knowledgeLib.popover_label_2') }}:{{ record.process_duation.toFixed(2) }}</p>
                             <div>
-                              <p>进度消息:<span v-html="record.progress_msg.replace(/\n/g, '<br/>')"></span></p>
+                              <!-- 进度消息: -->
+                              <p>
+                                {{ $t('knowledgeLib.popover_label_3') }}:<span
+                                  v-html="record.progress_msg.replace(/\n/g, '<br/>')"
+                                ></span>
+                              </p>
                             </div>
                           </template>
                         </a-popover>
-                        <a-popover title="" v-if="record.run == '3'">
-                          <a-tag :loading="record.loading" :color="'blue'" border>完成</a-tag>
+                        <a-popover position="lt" title="" v-if="record.run == '3'">
+                          <a-tag :loading="record.loading" :color="'blue'" border>
+                            <!-- 完成 -->
+                            {{ $t('knowledgeLib.table_status_finish') }}
+                          </a-tag>
                           <template #content>
-                            <p>流程开始于:{{ record.process_begin_at }}</p>
-                            <p>过程持续时间:{{ record.process_duation.toFixed(2) }}</p>
+                            <p>{{ $t('knowledgeLib.popover_label_1') }}:{{ record.process_begin_at }}</p>
+                            <p>{{ $t('knowledgeLib.popover_label_2') }}:{{ record.process_duation.toFixed(2) }}</p>
                             <div>
-                              <p>进度消息:<span v-html="record.progress_msg.replace(/\n/g, '<br/>')"></span></p>
+                              <p>
+                                {{ $t('knowledgeLib.popover_label_3') }}:<span
+                                  v-html="record.progress_msg.replace(/\n/g, '<br/>')"
+                                ></span>
+                              </p>
                             </div>
                           </template>
                         </a-popover>
-                        <a-popover title="" v-if="record.run == '1'">
-                          <a-tag :loading="record.loading" :color="'blue'" border>解析中...</a-tag>
+                        <a-popover position="lt" title="" v-if="record.run == '1'">
+                          <a-tag :loading="record.loading" :color="'blue'" border>
+                            <!-- 解析中... -->
+                            {{ $t('knowledgeLib.table_status_running') }}
+                          </a-tag>
                           <template #content>
-                            <p>流程开始于:{{ record.process_begin_at }}</p>
-                            <p>过程持续时间:{{ record.process_duation.toFixed(2) }}</p>
+                            <p>{{ $t('knowledgeLib.popover_label_1') }}:{{ record.process_begin_at }}</p>
+                            <p>{{ $t('knowledgeLib.popover_label_2') }}:{{ record.process_duation.toFixed(2) }}</p>
                             <div>
-                              <p>进度消息:<span v-html="record.progress_msg.replace(/\n/g, '<br/>')"></span></p>
+                              <p>
+                                {{ $t('knowledgeLib.popover_label_3') }}:<span
+                                  v-html="record.progress_msg.replace(/\n/g, '<br/>')"
+                                ></span>
+                              </p>
                             </div>
                           </template>
                         </a-popover>
-                        <a-popover title="" v-if="record.run == '2'">
-                          <a-tag :loading="record.loading" :color="'gold'" border>取消</a-tag>
+                        <a-popover position="lt" title="" v-if="record.run == '2'">
+                          <a-tag :loading="record.loading" :color="'gold'" border>
+                            <!-- 取消 -->
+                            {{ $t('knowledgeLib.table_status_cancel') }}
+                          </a-tag>
                           <template #content>
-                            <p>流程开始于:{{ record.process_begin_at }}</p>
-                            <p>过程持续时间:{{ record.process_duation.toFixed(2) }}</p>
+                            <p>{{ $t('knowledgeLib.popover_label_1') }}:{{ record.process_begin_at }}</p>
+                            <p>{{ $t('knowledgeLib.popover_label_2') }}:{{ record.process_duation.toFixed(2) }}</p>
                             <div>
-                              <p>进度消息:<span v-html="record.progress_msg.replace(/\n/g, '<br/>')"></span></p>
+                              <p>
+                                {{ $t('knowledgeLib.popover_label_3') }}:<span
+                                  v-html="record.progress_msg.replace(/\n/g, '<br/>')"
+                                ></span>
+                              </p>
                             </div>
                           </template>
                         </a-popover>
-                        <a-popover title="" v-if="record.run == '0'">
-                          <a-tag :loading="record.loading" :color="'green'" border>未启动 </a-tag>
+                        <a-popover position="lt" title="" v-if="record.run == '0'">
+                          <a-tag :loading="record.loading" :color="'green'" border>
+                            <!-- 未启动 -->
+                            {{ $t('knowledgeLib.table_status_stop') }}
+                          </a-tag>
                           <template #content>
-                            <p>流程开始于:{{ record.process_begin_at }}</p>
-                            <p>过程持续时间:{{ record.process_duation.toFixed(2) }}</p>
+                            <p>{{ $t('knowledgeLib.popover_label_1') }}:{{ record.process_begin_at }}</p>
+                            <p>{{ $t('knowledgeLib.popover_label_2') }}:{{ record.process_duation.toFixed(2) }}</p>
                             <div>
-                              <p>进度消息:<span v-html="record.progress_msg.replace(/\n/g, '<br/>')"></span></p>
+                              <p>
+                                {{ $t('knowledgeLib.popover_label_3') }}:<span
+                                  v-html="record.progress_msg.replace(/\n/g, '<br/>')"
+                                ></span>
+                              </p>
                             </div>
                           </template>
                         </a-popover>
@@ -224,16 +272,19 @@
                     </div>
                   </template>
                   <template #action="{ record }">
-                    <a-tooltip content="解析方法">
-                      <a-button type="text" :disabled="record.run == '1'" @click="handleClick(record)" 查 size="small">
+                    <!-- 解析方法 -->
+                    <a-tooltip :content="$t('knowledgeLib.action_tip_parser')">
+                      <a-button type="text" :disabled="record.run == '1'" @click="handleClick(record)" size="small">
                         <template #icon>
                           <icon-tool />
                         </template>
                       </a-button>
                     </a-tooltip>
                     <edit :item="record" @upTabdateItem="upTabdateItem" />
-                    <a-popconfirm :content="'确定删除吗'" type="warning" @ok="deleteItem(record)">
-                      <a-tooltip content="删除">
+                    <!-- 确定删除吗 -->
+                    <a-popconfirm :content="$t('knowledgeLib.delete_confirm')" type="warning" @ok="deleteItem(record)">
+                      <!-- 删除 -->
+                      <a-tooltip :content="$t('knowledgeLib.action_tip_delete')">
                         <a-button type="text" size="small" :disabled="record.run == '1'">
                           <template #icon>
                             <icon-delete />
@@ -241,7 +292,8 @@
                         </a-button>
                       </a-tooltip>
                     </a-popconfirm>
-                    <a-tooltip content="下载">
+                    <!-- 下载 -->
+                    <a-tooltip :content="$t('knowledgeLib.action_tip_download')">
                       <a-button
                         type="text"
                         size="small"
@@ -269,12 +321,14 @@
               </a-card>
             </a-scrollbar>
           </a-tab-pane>
-          <a-tab-pane key="2" title="测试">
+          <!-- 测试 -->
+          <a-tab-pane key="2" :title="$t('knowledgeLib.tab_2')">
             <a-scrollbar class="rt-container-main" :style="{ height: documentHeight + 'px' }" style="overflow: hidden">
               <test ref="testForm"></test>
             </a-scrollbar>
           </a-tab-pane>
-          <a-tab-pane key="3" title="配置">
+          <!-- 配置 -->
+          <a-tab-pane key="3" :title="$t('knowledgeLib.tab_3')">
             <a-scrollbar class="rt-container-main" :style="{ height: documentHeight + 'px' }" style="overflow: auto">
               <config
                 ref="configForm"
@@ -320,13 +374,8 @@ import tool from './tool.vue';
 // import excel from '@/views/dmx/knowledgeLib/components/excel.vue';
 // import txtPdf from '@/views/dmx/knowledgeLib/components/txtPdf.vue';
 import { Message, Modal } from '@arco-design/web-vue';
-import { documentHeight, parseTime } from './utils';
-// import { deleteLlm } from '@/api/model';
-// import { userModelState } from '@/store';
-// import { getUserResources } from '@/utils/auth';
+import { documentHeight, parseTime, getTableColumns } from './utils';
 
-// let modelStore = userModelState();
-// const httpUrl = modelStore.hrefUrl;
 const props = defineProps({
   kb_id: {
     type: String,
@@ -441,50 +490,53 @@ const densityList = computed(() => [
     value: 'large'
   }
 ]);
-const columns = computed(() => [
-  {
-    title: '名称',
-    dataIndex: 'name',
-    slotName: 'name',
-    width: 300
-  },
-  {
-    title: '分快数',
-    dataIndex: 'chunk_num',
-    width: 90
-  },
-  {
-    title: '上传时间',
-    dataIndex: 'create_time',
-    slotName: 'create_time',
-    width: 200
-  },
-  {
-    title: '解析方法',
-    dataIndex: 'parser_id',
-    slotName: 'parser_id',
-    width: 150
-  },
-  {
-    title: '启用',
-    dataIndex: 'status',
-    slotName: 'status',
-    width: 100
-  },
-  {
-    title: '解析状态',
-    dataIndex: 'run',
-    slotName: 'run',
-    width: 100
-  },
-  {
-    title: '操作',
-    dataIndex: 'action',
-    slotName: 'action',
-    width: 200,
-    minWidth: 200
-  }
-]);
+// const columns = computed(() => [
+//   {
+//     title: '名称',
+//     dataIndex: 'name',
+//     slotName: 'name',
+//     width: 300
+//   },
+//   {
+//     title: '分快数',
+//     dataIndex: 'chunk_num',
+//     width: 90
+//   },
+//   {
+//     title: '上传时间',
+//     dataIndex: 'create_time',
+//     slotName: 'create_time',
+//     width: 200
+//   },
+//   {
+//     title: '解析方法',
+//     dataIndex: 'parser_id',
+//     slotName: 'parser_id',
+//     width: 150
+//   },
+//   {
+//     title: '启用',
+//     dataIndex: 'status',
+//     slotName: 'status',
+//     width: 100
+//   },
+//   {
+//     title: '解析状态',
+//     dataIndex: 'run',
+//     slotName: 'run',
+//     width: 100
+//   },
+//   {
+//     title: '操作',
+//     dataIndex: 'action',
+//     slotName: 'action',
+//     width: 200,
+//     minWidth: 200
+//   }
+// ]);
+const columns = computed(() => {
+  return getTableColumns(t);
+});
 const contentTypeOptions = computed(() => [
   {
     label: '图文',
@@ -799,29 +851,6 @@ const exchangeArray = (array, beforeIdx, newIdx, isDeep = false) => {
   return newArray;
 };
 
-// const popupVisibleChange = (val: boolean) => {
-//   if (val) {
-//     nextTick(() => {
-//       const el = document.getElementById('tableSetting') as HTMLElement;
-//       const sortable = new Sortable(el, {
-//         onEnd(e: any) {
-//           const { oldIndex, newIndex } = e;
-//           exchangeArray(cloneColumns.value, oldIndex, newIndex);
-//           exchangeArray(showColumns.value, oldIndex, newIndex);
-//         }
-//       });
-//     });
-//   }
-// };
-
-// const fileClick = () => {
-//   detailsShow.value = true;
-// };
-
-// const goBackClick = () => {
-//   detailsShow.value = false;
-// };
-
 function upTabdateItem(id, newName) {
   // console.log(id, newName);
   const itemToUpdate = renderData.value.find((item) => item.id === id);

+ 33 - 18
src/modules/knowledge/rgflow/knowledgeLib/test.vue

@@ -1,24 +1,33 @@
 <template>
   <div class="main-container">
     <div class="main-container-lf">
-      <div class="main-container-lf-top">检索测试</div>
+      <div class="main-container-lf-top">
+        <!-- 检索测试 -->
+        {{ $t('knowledgeLib.test_title') }}
+      </div>
       <div class="main-container-lf-down">
-        <div style="color: #999">最后一步! 成功后,剩下的就交给Infiniflow AI吧。</div>
+        <div style="color: #999">
+          <!-- 最后一步! 成功后,剩下的就交给Infiniflow AI吧。 -->
+          {{ $t('knowledgeLib.test_tips') }}
+        </div>
         <a-divider style="margin-top: 10px" />
         <a-form ref="formRef" :model="form" :style="{ width: '100%' }" layout="vertical" @submit="handleSubmit">
-          <a-form-item field="similarity_threshold" label="相似度阈值">
+          <!-- 相似度阈值 -->
+          <a-form-item field="similarity_threshold" :label="$t('knowledgeLib.similarity_threshold')">
             <a-slider v-model="form.similarity_threshold" :step="0.01" :min="0" :max="1" />
           </a-form-item>
-          <a-form-item field="slider" label="关键字相似度权重">
+          <!-- 关键字相似度权重 -->
+          <a-form-item field="slider" :label="$t('knowledgeLib.similarity_weight')">
             <a-slider v-model="form.vector_similarity_weight" :step="0.01" :min="0" :max="1" />
           </a-form-item>
-          <a-form-item field="section" label="Rerank模型">
+          <!-- Rerank模型 -->
+          <a-form-item field="section" :label="$t('knowledgeLib.rerank_model')">
             <a-space direction="vertical" size="large">
               <a-select
                 :size="'large'"
                 v-model="form.rerank_id"
                 :style="{ width: '100%' }"
-                placeholder="请选择 ..."
+                :placeholder="$t('knowledgeLib.select_placeholder')"
                 allow-clear
               >
                 <a-optgroup :label="index" v-for="(item, index) in modelList" :key="index">
@@ -34,7 +43,10 @@
           </a-form-item>
           <a-form-item>
             <div class="main-container-form-item-extra">
-              <div class="main-container-form-item-extra-top">测试文本</div>
+              <div class="main-container-form-item-extra-top">
+                <!-- 测试文本 -->
+                {{ $t('knowledgeLib.test_content') }}
+              </div>
               <div class="main-container-form-item-extra-down">
                 <a-textarea
                   v-model="form.question"
@@ -44,9 +56,10 @@
                 />
               </div>
               <div class="main-container-form-item-extra-btn">
-                <a-button :disabled="!form.question" :loading="loading" type="primary" html-type="submit"
-                  >测试</a-button
-                >
+                <a-button :disabled="!form.question" :loading="loading" type="primary" html-type="submit">
+                  <!-- 测试 -->
+                  {{ $t('knowledgeLib.test_btn') }}
+                </a-button>
               </div>
             </div>
           </a-form-item>
@@ -55,7 +68,8 @@
     </div>
     <div class="main-container-rt">
       <a-collapse style="width: 96%; margin-top: 1rem; margin-left: 2%" @change="handleCollapseChange">
-        <a-collapse-item :header="check_count + '/' + doc_total + '选定的文件'" key="3">
+        <!-- 选定的文件 -->
+        <a-collapse-item :header="check_count + '/' + doc_total + $t('knowledgeLib.test_result_head')" key="3">
           <a-checkbox-group v-model="checked_list" @change="handleCheckedChange" :style="{ width: '100%' }">
             <a-list :bordered="false" :pagination-props="doc_pagination_props" style="background: var(--color-bg-1)">
               <a-list-item v-for="doc in docList" :key="doc.doc_id" style="border-left: none; border-right: none">
@@ -66,7 +80,8 @@
                 </a-list-item-meta>
                 <template #actions>
                   {{ doc.count }}
-                  <a-tooltip content="预览">
+                  <!-- 预览 -->
+                  <a-tooltip :content="$t('knowledgeLib.test_preview')">
                     <div class="action-icon">
                       <icon-eye @click="handlePreview(doc.doc_id)" />
                     </div>
@@ -84,9 +99,12 @@
         <a-card :bordered="false" v-for="item in chunks" :key="item.chunk_id">
           <template #title>
             <div class="main-container-rt-down-title">
-              <div>{{ (item.similarity * 100).toFixed(2) }}&nbsp;混合相似度</div>
-              <div>{{ (item.term_similarity * 100).toFixed(2) }}&nbsp;关键词相似度</div>
-              <div>{{ (item.vector_similarity * 100).toFixed(2) }}&nbsp;向量相似度</div>
+              <!-- 混合相似度  -->
+              <div>{{ (item.similarity * 100).toFixed(2) }}&nbsp; {{ $t('knowledgeLib.hybrid_similarity') }}</div>
+              <!-- 关键词相似度 -->
+              <div>{{ (item.term_similarity * 100).toFixed(2) }}&nbsp; {{ $t('knowledgeLib.keyword_similarity') }}</div>
+              <!-- 向量相似度 -->
+              <div>{{ (item.vector_similarity * 100).toFixed(2) }}&nbsp;{{ $t('knowledgeLib.vector_similarity') }}</div>
             </div>
           </template>
           <div class="main-container-rt-down-content">
@@ -279,7 +297,6 @@ export default {
       height: 40px;
       line-height: 40px;
       border-bottom: 1px solid var(--color-fill-3);
-      //background: rgb(var(--primary-6));
       color: #999999;
       text-align: center;
     }
@@ -299,8 +316,6 @@ export default {
     width: 69%;
     height: 100%;
     overflow: hidden;
-    //background: #626aea;
-    //border: 1px solid var(--color-fill-3);
     background: var(--color-bg-2);
     border-radius: 10px;
     .main-container-rt-down {

+ 64 - 25
src/modules/knowledge/rgflow/knowledgeLib/tool.vue

@@ -12,11 +12,15 @@
       <a-tab-pane key="1">
         <template #title>
           <icon-calendar />
-          解析方法
+          <!-- 解析方法 -->
+          {{ $t('knowledgeLib.tool_tab_1') }}
         </template>
         <div style="width: 100%">
           <div style="display: flex; align-items: center">
-            <div>解析方法:</div>
+            <div>
+              <!-- 解析方法: -->
+              {{ $t('knowledgeLib.action_tip_parser') }}:
+            </div>
             <div style="margin-left: 10px">
               <a-select v-model="form.parser_id" placeholder="请选择">
                 <a-option
@@ -31,7 +35,12 @@
           <div class="parser">
             <a-form ref="formRef" :rules="rules" :model="form" auto-label-width @submit="handleSubmit">
               <a-divider style="margin-top: 10px" v-if="form.parser_id === 'naive'" />
-              <a-form-item field="slider" label="块Token数" v-if="form.parser_id === 'naive'">
+              <!-- 块Token数  -->
+              <a-form-item
+                field="slider"
+                :label="$t('knowledgeLib.block_token_count')"
+                v-if="form.parser_id === 'naive'"
+              >
                 <a-slider v-model="form.chunk_token_num" :min="0" :max="2048" show-input />
               </a-form-item>
               <a-divider
@@ -44,9 +53,10 @@
                   form.parser_id === 'book'
                 "
               />
+              <!-- 使用召回增强RAPTOR策略 -->
               <a-form-item
                 field="raptor"
-                label="使用召回增强RAPTOR策略"
+                :label="$t('knowledgeLib.use_strategy')"
                 v-if="
                   form.parser_id === 'naive' ||
                   form.parser_id === 'qa' ||
@@ -58,25 +68,30 @@
                 <a-switch v-model="form.use_raptor" @change="onChangeRAPTOR" size="small" />
               </a-form-item>
               <div v-if="form.use_raptor">
-                <a-form-item field="prompt" label="提示词">
+                <!-- 提示词 -->
+                <a-form-item field="prompt" :label="$t('knowledgeLib.prompt')">
                   <a-textarea
                     v-model="form.prompt"
                     style="height: 10rem; border: 1px solid var(--color-fill-3); border-radius: 4px"
-                    placeholder="请填写提示词"
+                    :placeholder="$t('knowledgeLib.prompt_placeholder')"
                   />
                 </a-form-item>
-                <a-form-item field="slider" label="最大token数">
+                <!-- 最大token数 -->
+                <a-form-item field="slider" :label="$t('knowledgeLib.max_token_count')">
                   <a-slider v-model="form.max_token" :min="0" :max="2048" show-input />
                 </a-form-item>
-                <a-form-item field="slider" label="阈值">
+                <!-- 阈值 -->
+                <a-form-item field="slider" :label="$t('knowledgeLib.threshold')">
                   <a-slider v-model="form.threshold" :step="0.01" :min="0" :max="1" show-input />
                 </a-form-item>
-                <a-form-item field="slider" label="最大聚类数">
+                <!-- 最大聚类数 -->
+                <a-form-item field="slider" :label="$t('knowledgeLib.max_clusters')">
                   <a-slider v-model="form.max_cluster" :min="1" :max="1024" show-input />
                 </a-form-item>
+                <!--  随机种子-->
                 <a-form-item
                   field="slider"
-                  label="随机种子"
+                  :label="$t('knowledgeLib.random_seed')"
                   v-model="form.random_seed"
                   :rules="[{ type: 'number', min: 5, message: 'slider is min than 5' }]"
                 >
@@ -99,8 +114,11 @@
               </div>
               <a-form-item>
                 <div style="width: 100%; text-align: right">
-                  <a-button @click="visible = false">取消</a-button>
-                  <a-button style="margin-left: 10px" type="primary" html-type="submit">确定 </a-button>
+                  <!-- 取消 -->
+                  <a-button @click="visible = false">{{ $t('knowledgeLib.cancel') }}</a-button>
+                  <a-button style="margin-left: 10px" type="primary" html-type="submit">
+                    {{ $t('knowledgeLib.submit') }}
+                  </a-button>
                 </div>
               </a-form-item>
             </a-form>
@@ -110,18 +128,26 @@
       <a-tab-pane key="2">
         <template #title>
           <icon-clock-circle />
-          创建解析块
+          <!-- 创建解析块 -->
+          {{ $t('knowledgeLib.tool_tab_2') }}
         </template>
         <div class="details">
           <div class="details-header">
             <div style="display: flex; align-items: center; justify-content: flex-end">
               <a-radio-group v-model="radio" type="button" style="margin-right: 10px" @change="onRadioChange">
-                <a-radio value="1">全文</a-radio>
-                <a-radio value="2">省略</a-radio>
+                <a-radio value="1">
+                  <!-- 全文 -->
+                  {{ $t('knowledgeLib.radio_label_1') }}
+                </a-radio>
+                <a-radio value="2">
+                  <!-- 省略 -->
+                  {{ $t('knowledgeLib.radio_label_2') }}
+                </a-radio>
               </a-radio-group>
               <a-popover position="bottom">
-                <a-button type="outline" class="button" style="margin-right: 10px"
-                  >批量
+                <a-button type="outline" class="button" style="margin-right: 10px">
+                  <!-- 批量 -->
+                  {{ $t('knowledgeLib.select_all') }}
                   <icon-down style="margin-left: 4px" />
                 </a-button>
                 <template #content>
@@ -132,7 +158,8 @@
                       @change="handleChangeAll"
                       style="margin-left: 10px"
                     >
-                      选择所有
+                      <!-- 选择所有 -->
+                      {{ $t('knowledgeLib.check_all') }}
                     </a-checkbox>
                   </a-space>
                   <a-divider style="margin: 10px 0" />
@@ -141,7 +168,8 @@
                       <template #icon>
                         <icon-check-circle />
                       </template>
-                      启用选定的
+                      <!-- 启用选定的 -->
+                      {{ $t('knowledgeLib.enable_checked') }}
                     </a-button>
                   </p>
                   <p>
@@ -149,7 +177,8 @@
                       <template #icon>
                         <icon-close-circle />
                       </template>
-                      禁用选定的
+                      <!-- 禁用选定的 -->
+                      {{ $t('knowledgeLib.disable_checked') }}
                     </a-button>
                   </p>
                   <a-divider style="margin: 10px 0" />
@@ -158,7 +187,8 @@
                       <template #icon>
                         <icon-delete />
                       </template>
-                      删除选定的
+                      <!-- 删除选定的 -->
+                      {{ $t('knowledgeLib.delete_checked') }}
                     </a-button>
                   </p>
                 </template>
@@ -176,7 +206,7 @@
                   @input="getList()"
                   allow-clear
                   @clear.stop="getList()"
-                  placeholder="搜索"
+                  placeholder="$t('knowledgeLib.search_placeholder')"
                 />
               </a-space>
               <a-button
@@ -196,9 +226,18 @@
                 </a-button>
                 <template #content>
                   <a-radio-group v-model="available_int" direction="vertical" size="large" @change="onChangeavailable">
-                    <a-radio :value="''">所有</a-radio>
-                    <a-radio :value="1">启用</a-radio>
-                    <a-radio :value="0">禁用</a-radio>
+                    <a-radio :value="''">
+                      <!-- 所有 -->
+                      {{ $t('knowledgeLib.all') }}
+                    </a-radio>
+                    <a-radio :value="1">
+                      <!-- 启用 -->
+                      {{ $t('knowledgeLib.enable') }}
+                    </a-radio>
+                    <a-radio :value="0">
+                      <!-- 禁用 -->
+                      {{ $t('knowledgeLib.disable') }}
+                    </a-radio>
                   </a-radio-group>
                 </template>
               </a-popover>

+ 56 - 0
src/modules/knowledge/rgflow/knowledgeLib/utils/index.js

@@ -42,3 +42,59 @@ export function parseTime(time, cFormat) {
     return value || 0;
   });
 }
+
+//
+
+export const getTableColumns = (t) => {
+  return [
+    //名称,
+    {
+      title: t('knowledgeLib.table_name'),
+      dataIndex: 'name',
+      slotName: 'name',
+      width: 300
+    },
+    //分块数
+    {
+      title: t('knowledgeLib.table_chunk'),
+      dataIndex: 'chunk_num',
+      width: 90
+    },
+    // 上传时间
+    {
+      title: t('knowledgeLib.table_create_time'),
+      dataIndex: 'create_time',
+      slotName: 'create_time',
+      width: 200
+    },
+    // 解析方法
+    {
+      title: t('knowledgeLib.table_parser'),
+      dataIndex: 'parser_id',
+      slotName: 'parser_id',
+      width: 150
+    },
+    // 启用
+    {
+      title: t('knowledgeLib.table_start'),
+      dataIndex: 'status',
+      slotName: 'status',
+      width: 100
+    },
+    // 解析状态
+    {
+      title: t('knowledgeLib.table_run'),
+      dataIndex: 'run',
+      slotName: 'run',
+      width: 100
+    },
+    // 操作
+    {
+      title: t('knowledgeLib.table_action'),
+      dataIndex: 'action',
+      slotName: 'action',
+      width: 200,
+      minWidth: 200
+    }
+  ];
+};

+ 0 - 1
src/modules/login/FormItem.vue

@@ -96,7 +96,6 @@ const handleSubmit = (data) => {
         await userStore.getUserInfo();
 
         router.push({ path: '/' });
-
       })
       .catch((err) => {
         $message.error(err);