liudong
2024-07-30 58e492ee63137fe98df7256171fe8330165407a0
调试配置接口页面逻辑
6个文件已修改
183 ■■■■■ 已修改文件
src/api/kbList.ts 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dmx/knowledgeLib/config.vue 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dmx/knowledgeLib/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dmx/knowledgeLib/test.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dmx/knowledgeLib/tool.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/components/login-form.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/kbList.ts
@@ -124,8 +124,10 @@
}
// 配置接口
export function kbUpdate(params) {
  return axios.post('/api/v1/kb/update', params);
}
src/views/dmx/knowledgeLib/config.vue
@@ -15,7 +15,7 @@
          <a-form-item field="section" label="知识库图片">
            <a-space direction="vertical" :style="{ width: '100%' }">
              <a-upload
                action="/"
                :auto-upload="false"
                :fileList="file ? [file] : []"
                :show-file-list="false"
                @change="onChange"
@@ -69,28 +69,31 @@
<!--            </a-select>-->
<!--          </a-form-item>-->
          <a-form-item field="section" label="嵌入模型" :rules="[{match:/section one/,message:'请选择'}]">
            <a-select v-model="form.embd_id" placeholder="请选择" allow-clear>
              <a-option value="section one">Section One</a-option>
              <a-option value="section two">Section Two</a-option>
              <a-option value="section three">Section Three</a-option>
            </a-select>
            <a-space direction="vertical" size="large">
              <a-select :size="'large'" v-model="form.embd_id" :style="{width:'100%'}" placeholder="请选择 ..." disabled allow-clear>
                <a-optgroup  :label="index" v-for="(item,index) in modelList" :key=index>
                  <a-option
                    v-for="(obj) in item"
                    :key='obj.fid'
                    :value="obj.llm_name"
                  >
                    {{obj.llm_name}}
                  </a-option>
                </a-optgroup>
              </a-select>
            </a-space>
          </a-form-item>
          <a-form-item field="section" label="解析方法" :rules="[{match:/section one/,message:'请选择'}]">
            <a-select v-model="form.parser_id" placeholder="请选择" allow-clear>
              <a-option value="section one">Section One</a-option>
              <a-option value="section two">Section Two</a-option>
              <a-option value="section three">Section Three</a-option>
            <a-select v-model="form.parser_id" placeholder="请选择" disabled allow-clear>
              <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数"
                       :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
          <a-form-item field="slider" label="块Token数">
            <a-slider v-model="form.chunk_token_num" :max="100"  show-input />
<!--            <a-input-number v-model="form.score" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}"-->
<!--                            placeholder="Please Enter" class="input-demo" :min="10" :max="1000" />-->
          </a-form-item>
          <a-form-item field="slider" label="布局识别" :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
          <a-form-item  label="布局识别" >
            <a-space direction="vertical" size="large">
              <a-switch v-model="form.score" checked-value="yes" unchecked-value="no" />
              <a-switch v-model="form.layout_recognize"  />
            </a-space>
          </a-form-item>
          <a-form-item field="raptor" label="使用召回增强RAPTOR策略">
@@ -102,25 +105,18 @@
            <a-form-item field="prompt" label="提示词">
              <a-textarea
                v-model="form.prompt"
                style="height: 10rem;border: 1px solid  var(--color-fill-3);border-radius: 4px"
                placeholder="请填写提示词" />
                style="height: 10rem;border: 1px solid  var(--color-fill-3);border-radius: 4px" placeholder="请填写提示词"  />
            </a-form-item>
            <a-form-item field="slider" label="最大token数"
                         :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
              <a-slider v-model="form.max_token" :min="1" :max="1000" />
              <a-input-number v-model="form.max_token" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}"
                              placeholder="Please Enter" class="input-demo" :min="10" :max="1000" />
              <a-slider v-model="form.max_token" :min="1" :max="1000" show-input/>
            </a-form-item>
            <a-form-item field="slider" label="阈值" :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
              <a-slider v-model="form.threshold" :max="1" />
              <a-input-number v-model="form.threshold" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}"
                              placeholder="Please Enter" class="input-demo" :min="0" :max="1" />
              <a-slider v-model="form.threshold"  show-tooltip show-input/>
            </a-form-item>
            <a-form-item field="slider" label="最大聚类数"
                         :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
              <a-slider v-model="form.max_cluster" :max="1000" />
              <a-input-number v-model="form.max_cluster" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}"
                              placeholder="Please Enter" class="input-demo" :min="10" :max="1000" />
              <a-slider v-model="form.max_cluster" :max="1000" show-input/>
            </a-form-item>
            <a-form-item field="slider" label="随机种子" v-model="form.random_seed"
                         :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
@@ -129,7 +125,6 @@
              <a-button type="primary" @click="randomNumber">
                <icon-plus />
              </a-button>
            </a-form-item>
          </div>
@@ -199,9 +194,10 @@
<script lang="ts" setup>
import { onMounted, onBeforeMount, reactive, ref } from "vue";
import { Message } from "@arco-design/web-vue";
import { queryModelList,kbUpdate } from "@/api/kbList";
const props = defineProps(["kbtenantInfo", "kbobj", "kbdetail"]);
const props =  defineProps(['kbtenantInfo','kbobj'])
// const emit =  defineEmits(['upTabdateItem'])
const kbtenantInfo = props.kbtenantInfo;
@@ -215,7 +211,7 @@
});
const form = reactive({
  name: '',
  name: props.kbobj.name,
  avatar: '',//
  max_token: 698,
  threshold: 0.32,
@@ -230,8 +226,8 @@
  description: "",
  language: "English",
  permission: "",
  embd_id: "",
  parser_id: "",
  embd_id: "BAAI/bge-large-zh-v1.5",
  parser_id: props.kbobj.parser_id,
  layout_recognize: true
});
@@ -262,8 +258,48 @@
};
const handleSubmit = ({ values, errors }) => {
  console.log("values:", values, "\nerrors:", errors);
const handleSubmit = async ({ values, errors }) => {
  if (errors){
    return;
  }
  console.log(form);
  let parms = {
      name: form.name,
      avatar: form.avatar,
      description: form.description,
      language: form.language,
      permission: form.permission,
      embd_id: form.embd_id,
      parser_id: form.parser_id,
      parser_config: {
        chunk_token_num: form.chunk_token_num,
        layout_recognize: form.layout_recognize,
      },
      kb_id: props.kbobj.id,
   }
   if(form.layout_recognize){
     parms.parser_config.raptor = {
       use_raptor: form.use_raptor,
       prompt: form.prompt,
       max_token: form.max_token,
       threshold: form.threshold,
       max_cluster: form.max_cluster,
       random_seed: form.random_seed,
     };
   }
   try {
    const data = await kbUpdate(parms);
    Message.success("配置成功");
    // visible.value = false;
    // emit('upTabdateItem')
  } catch (err) {
    // you can report use errorHandler or other
  }
};
function randomNumber() {
@@ -296,27 +332,32 @@
  visible.value = false;
};
const handleOpened = (el) => {
  Object.assign(form, {
    name: "",// 用户名
    nameJoin: "",// 昵称
    post: "",// 岗位
    txt: ""// 备注
const handleOpened =(el) => {
  Object.assign(form,{
  });
  formRef.value.resetFields();
  console.log(props.record, "record");
  // if(props.edit == 'edit'){
  //   Object.assign(form,props.record);
  // }
}
const queryModel = async (params) => {
  try {
    const data = await queryModelList(params);
    console.log(data.data, '大模型列表');
    modelList.value = data.data
  } catch (err) {
    // you can report use errorHandler or other
  } finally {
  }
};
onBeforeMount(() => {
});
onMounted(() => {
onBeforeMount(()=>{
  queryModel({})
})
onMounted(()=>{
});
})
</script>
<script lang="ts">
src/views/dmx/knowledgeLib/index.vue
@@ -238,7 +238,7 @@
          </a-tab-pane>
          <a-tab-pane key="3" :title="t('dmx.list.disposition')">
            <div class="rt-container-main">
              <config :kbtenantInfo="kbtenantInfo" :kbdetail="kbdetail" :kbobj="kbobj"></config>
              <config :kbtenantInfo="kbtenantInfo"  :kbobj="kbobj"></config>
            </div>
          </a-tab-pane>
        </a-tabs>
src/views/dmx/knowledgeLib/test.vue
@@ -19,7 +19,7 @@
                  <a-optgroup  :label="index" v-for="(item,index) in modelList" :key=index>
                    <a-option
                      v-for="(obj) in item"
                      :key=obj.fid
                      :key="obj.fid"
                      :disabled="!obj.available"
                      :value="obj.llm_name"
                    >
@@ -113,11 +113,11 @@
  if (!form.question){
    return
  }
  let formObj = {...form}
  formObj.kb_id = store.kbobj.id;
  formObj.similarity_threshold = formObj.similarity_threshold/100;
  formObj.vector_similarity_weight = formObj.vector_similarity_weight/100;
   const data = await kbretrievalTest(formObj);
  // let formObj = {...form}
  // formObj.kb_id = store.kbobj.id;
  // formObj.similarity_threshold = formObj.similarity_threshold/100;
  // formObj.vector_similarity_weight = formObj.vector_similarity_weight/100;
  //  const data = await kbretrievalTest(formObj);
}
const handleClick = () => {
src/views/dmx/knowledgeLib/tool.vue
@@ -48,7 +48,7 @@
          <a-slider v-model="form.max_token" :min="1" :max="1000" show-input/>
        </a-form-item>
        <a-form-item field="slider" label="阈值" :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
          <a-slider v-model="form.threshold" :format-tooltip="formatter" show-tooltip show-input/>
          <a-slider v-model="form.threshold"  show-tooltip show-input/>
        </a-form-item>
        <a-form-item field="slider" label="最大聚类数"
                     :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
src/views/login/components/login-form.vue
@@ -102,18 +102,18 @@
    if (!errors) {
      setLoading(true);
      try {
        const rsaPassWord = rsaPsw(values.password) as string;
        console.log(values,'登录信息');
        await userStore.login({
          email: values.email,
          password: rsaPassWord,
        } as LoginData);
        const { redirect, ...othersQuery } = router.currentRoute.value.query;
        // const rsaPassWord = rsaPsw(values.password) as string;
        // console.log(values,'登录信息');
        // await userStore.login({
        //   email: values.email,
        //   password: rsaPassWord,
        // } as LoginData);
        // const { redirect, ...othersQuery } = router.currentRoute.value.query;
        router.push({
          name: 'knowledgeLib',
          query: {
            ...othersQuery,
          },
          // query: {
          //   ...othersQuery,
          // },
        });
        Message.success(t('欢迎回来'));
        const { rememberPassword } = loginConfig.value;