| | |
| | | <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" |
| | |
| | | <!-- </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策略"> |
| | |
| | | <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'}]"> |
| | |
| | | <a-button type="primary" @click="randomNumber"> |
| | | <icon-plus /> |
| | | </a-button> |
| | | |
| | | </a-form-item> |
| | | |
| | | </div> |
| | |
| | | <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; |
| | |
| | | }); |
| | | |
| | | const form = reactive({ |
| | | name: '', |
| | | name: props.kbobj.name, |
| | | avatar: '',// |
| | | max_token: 698, |
| | | threshold: 0.32, |
| | |
| | | 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 |
| | | }); |
| | | |
| | |
| | | }; |
| | | |
| | | |
| | | 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() { |
| | |
| | | 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"> |