| | |
| | | title="解析方法" |
| | | @before-open="handleOpened" |
| | | @cancel="handleCancel" |
| | | @opened="handleOpened" |
| | | :footer="false" |
| | | title-align="start" |
| | | width="700px" |
| | |
| | | 解析方法: |
| | | </div> |
| | | <div style="margin-left: 10px"> |
| | | <a-select v-model="form.section" 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="请选择" > |
| | | <a-option v-for="item in parser_ids" :key="item.value" :label="item.name" :value="item.value"></a-option> |
| | | </a-select> |
| | | </div> |
| | | </div> |
| | | <a-form ref="formRef" :rules="rules" :model="form" auto-label-width @submit="handleSubmit" > |
| | | <a-divider style="margin-top: 10px" /> |
| | | <a-form-item field="slider" label="最大token数" |
| | | :rules="[{type:'number', min:5,message:'slider is min than 5'}]"> |
| | | <a-slider v-model="form.section" :max="10" /> |
| | | <a-input-number v-model="form.section" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}" |
| | | placeholder="Please Enter" class="input-demo" :min="10" :max="1000" /> |
| | | <a-form-item field="slider" label="块token数" |
| | | :rules="[{type:'number', min:1,message:'slider is min than 1'}]"> |
| | | <a-slider v-model="form.chunk_token_num" :max="1000" show-input /> |
| | | </a-form-item> |
| | | <a-divider style="margin-top: 10px" /> |
| | | <a-form-item field="raptor" label="使用召回增强RAPTOR策略"> |
| | | <a-space direction="vertical" size="large"> |
| | | <a-switch v-model="form.raptor" @change="onChangeRAPTOR" /> |
| | | <a-switch v-model="form.use_raptor" @change="onChangeRAPTOR" /> |
| | | </a-space> |
| | | </a-form-item> |
| | | <div v-if="form.raptor"> |
| | | <a-form-item field="section" label="提示词"> |
| | | <div v-if="form.use_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="" |
| | | allow-clear /> |
| | | 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.score" :max="10" /> |
| | | <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-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.score" :max="10" /> |
| | | <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-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.score" :max="10" /> |
| | | <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-slider v-model="form.max_cluster" :max="1000" show-input/> |
| | | </a-form-item> |
| | | <a-form-item field="slider" label="随机种子" |
| | | <a-form-item field="slider" label="随机种子" v-model="form.random_seed" |
| | | :rules="[{type:'number', min:5,message:'slider is min than 5'}]"> |
| | | <a-input-number v-model="form.score" :style="{width:'300px',marginRight:'1rem',borderRadius:'4px'}" |
| | | <a-input-number v-model="form.random_seed" :style="{width:'300px',marginRight:'1rem',borderRadius:'4px'}" |
| | | placeholder="请输入" class="input-demo" :min="10" :max="100" /> |
| | | <a-button type="primary" @click=""> |
| | | <a-button type="primary" @click="randomNumber"> |
| | | <icon-plus /> |
| | | </a-button> |
| | | |
| | |
| | | </template> |
| | | |
| | | <script lang="ts" setup> |
| | | import { onMounted ,onBeforeMount, reactive, ref } from "vue"; |
| | | |
| | | import { onMounted, onBeforeMount, reactive, ref, computed } from "vue"; |
| | | import { Message } from "@arco-design/web-vue"; |
| | | import {kbdocumentchangeparser} from "@/api/kbList"; |
| | | const visible = ref(false); |
| | | const loading = ref(false); |
| | | |
| | | const props = defineProps(['kbtenantInfo','item','kbdetail']) |
| | | // const emit = defineEmits(['upTabdateItem']) |
| | | |
| | | let threshold = computed(()=>{ |
| | | return form.threshold/100; |
| | | }) |
| | | |
| | | const kbtenantInfo = props.kbtenantInfo; |
| | | |
| | | let parser_ids = kbtenantInfo.parser_ids.split(',').map((item) => { |
| | | const [value1, value2] = item.split(':'); |
| | | return { |
| | | name: value2, |
| | | value: value1, |
| | | }; |
| | | }); |
| | | |
| | | const form = reactive({ |
| | | size: "medium", |
| | | name: "", |
| | | age: undefined, |
| | | section: "0", |
| | | province: "haidian", |
| | | options: [], |
| | | date: "", |
| | | time: "", |
| | | radio: "radio one", |
| | | slider: 5, |
| | | score: 5, |
| | | switch: false, |
| | | multiSelect: ["section one"], |
| | | treeSelect: "", |
| | | raptor: true, |
| | | parser_id: props.item.parser_id, |
| | | doc_id: props.item.id, |
| | | max_token: 698, |
| | | threshold: 30, |
| | | max_cluster: 233, |
| | | random_seed: 1500, |
| | | chunk_token_num: 128, |
| | | use_raptor: false, |
| | | pages: {}, |
| | | prompt: '请总结以下段落。 小心数字,不要编造。 段落如下:\n' + |
| | | ' {cluster_content}\n' + |
| | | '以上就是你需要总结的内容。', |
| | |
| | | const formRef = ref(null); |
| | | |
| | | const rules = { |
| | | name: [ |
| | | prompt: [ |
| | | { |
| | | required: true, |
| | | message:'名称不允许为空', |
| | | message:'提示词不允许为空', |
| | | }, |
| | | ], |
| | | } |
| | | const formatter = (value) => { |
| | | return value / 100 |
| | | }; |
| | | function randomNumber() { |
| | | // 生成一个介于min和max之间的随机整数(包含min和max) |
| | | const min = 1; // 最小值 |
| | | const max = 10000; // 最大值 |
| | | form.random_seed = Math.floor(Math.random() * (max - min + 1)) + min; |
| | | } |
| | | |
| | | const handleSubmit = async ({values, errors}) => { |
| | | if(!errors){ |
| | | let data = await kbdocumentchangeparser({ |
| | | parser_id: form.parser_id, |
| | | doc_id: form.doc_id, |
| | | 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, |
| | | }, |
| | | chunk_token_num: form.chunk_token_num, |
| | | pages: [ |
| | | |
| | | const handleSubmit = ({values, errors}) => { |
| | | console.log('values:', values, '\nerrors:', errors) |
| | | ] |
| | | } |
| | | }) |
| | | if(data.code == 0){ |
| | | Message.success('配置成功'); |
| | | }else{ |
| | | Message.error('配置失败'); |
| | | } |
| | | visible.value = false; |
| | | } |
| | | } |
| | | |
| | | const handleClick = () => { |
| | |
| | | } |
| | | |
| | | const handleOpened =(el) => { |
| | | Object.assign(form,{ |
| | | name: '',// 用户名 |
| | | nameJoin: '',// 昵称 |
| | | post: '',// 岗位 |
| | | txt: '',// 备注 |
| | | }); |
| | | formRef.value.resetFields(); |
| | | console.log('props',props.kbtenantInfo); |
| | | console.log('props',props.item); |
| | | console.log('props',props.kbdetail); |
| | | console.log(parser_ids, 'parser_ids'); |
| | | // Object.assign(form,{ |
| | | // name: '',// 用户名 |
| | | // nameJoin: '',// 昵称 |
| | | // post: '',// 岗位 |
| | | // txt: '',// 备注 |
| | | // }); |
| | | // formRef.value.resetFields(); |
| | | } |
| | | |
| | | const onChangeRAPTOR = () => { |
| | | console.log(form.raptor); |
| | | |
| | | }; |
| | | |
| | | onBeforeMount(()=>{ |