| | |
| | | import { createPinia } from 'pinia'; |
| | | import useAppStore from './modules/app'; |
| | | import useUserStore from './modules/user'; |
| | | import usePinia from './modules/storeMsg'; |
| | | import useTabBarStore from './modules/tab-bar'; |
| | | |
| | | const pinia = createPinia(); |
| | | |
| | | export { useAppStore, useUserStore, useTabBarStore }; |
| | | export { useAppStore, useUserStore,usePinia, useTabBarStore }; |
| | | export default pinia; |
New file |
| | |
| | | import { defineStore } from 'pinia'; |
| | | |
| | | const usePinia = defineStore('user', { |
| | | state: () => ({ |
| | | id: '', |
| | | }), |
| | | |
| | | getters: { |
| | | getkbObj(state) { |
| | | return { ...state }; |
| | | }, |
| | | }, |
| | | |
| | | actions: { |
| | | // Set user's information |
| | | setkbObj(str) { |
| | | this.id = str; |
| | | }, |
| | | // Reset user's information |
| | | resetkbObj() { |
| | | this.$reset(); |
| | | }, |
| | | }, |
| | | }); |
| | | |
| | | export default usePinia ; |
| | |
| | | </a-tab-pane> |
| | | <a-tab-pane key="2" :title="t('dmx.list.test')"> |
| | | <div class="rt-container-main"> |
| | | <test :kbobj="kbobj"></test> |
| | | <test ref="testRefs" :kbobj="kbobj"></test> |
| | | </div> |
| | | </a-tab-pane> |
| | | <a-tab-pane key="3" :title="t('dmx.list.disposition')"> |
| | |
| | | </template> |
| | | |
| | | <script lang="ts" setup> |
| | | import { computed, ref, reactive, watch, nextTick, onBeforeMount } from "vue"; |
| | | import { computed, ref, reactive, watch, nextTick, onBeforeMount, onMounted } from "vue"; |
| | | import { useI18n } from 'vue-i18n'; |
| | | import useLoading from '@/hooks/loading'; |
| | | import { |
| | |
| | | const renderData = ref([]); |
| | | const formModel = ref(generateFormModel()); |
| | | const cloneColumns = ref([]); |
| | | const testRefs = ref(null); |
| | | const showColumns = ref<Column[]>([]); |
| | | |
| | | const size = ref<SizeProps>('medium'); |
| | |
| | | |
| | | const selectTab = (index,item) => { |
| | | selectedTab.value= index; |
| | | console.log(item.id); |
| | | kbobj= item |
| | | // console.log(item.id); |
| | | kbobj= item; |
| | | fetchData({ |
| | | kb_id: kbobj.id, |
| | | page: 1, |
| | |
| | | acc[key] = value; |
| | | return acc; |
| | | }, {}); |
| | | console.log(parser_ids, 'parser_ids'); |
| | | // console.log(parser_ids, 'parser_ids'); |
| | | kbtenantInfo.parser_idObj = parser_ids; |
| | | renderData.value = data.data.docs||[]; |
| | | renderData.value = renderData.value.map((item) => { |
| | |
| | | parser_id: parser_ids[item.parser_id], |
| | | }; |
| | | }); |
| | | console.log(renderData.value, 'renderData.value'); |
| | | console.log(renderData.value, 'renderData'); |
| | | |
| | | pagination.current = params.page; |
| | | pagination.total = data.data.total; |
| | |
| | | console.log(tabs.value, 'tabs'); |
| | | if(tabs.value.length>0 && tabs.value[0]){ |
| | | kbobj = tabs.value[0] |
| | | |
| | | fetchData({ |
| | | kb_id: kbobj.id, |
| | | page: 1, |
| | |
| | | onBeforeMount(()=>{ |
| | | knowledgeData() |
| | | }) |
| | | onMounted(()=>{ |
| | | |
| | | }) |
| | | |
| | | </script> |
| | | |
| | |
| | | </a-form-item> |
| | | <a-form-item field="section" label="Rerank模型" :rules="[{match:/section one/,message:'请选择'}]"> |
| | | <a-space direction="vertical" size="large"> |
| | | <a-select :size="'large'" :default-value="form.rerank_id" :style="{width:'100%'}" placeholder="请选择 ..." allow-clear> |
| | | <a-select :size="'large'" v-model="form.rerank_id" :style="{width:'100%'}" placeholder="请选择 ..." allow-clear> |
| | | <a-optgroup :label="index" v-for="(item,index) in modelList" :key=index> |
| | | <a-option |
| | | v-for="(obj) in item" |
| | |
| | | </template> |
| | | |
| | | <script lang="ts" setup> |
| | | import { onMounted ,onBeforeMount, reactive, ref } from "vue"; |
| | | import { onMounted, onBeforeMount, reactive, ref, watch } from "vue"; |
| | | import { Message } from '@arco-design/web-vue'; |
| | | import { kbretrievalTest, queryModelList } from "@/api/kbList"; |
| | | |
| | | const props = defineProps({ |
| | | kbobj: { |
| | | type: Object, |
| | | default: () => { |
| | | return {} |
| | | const props = defineProps(['kbobj']) |
| | | watch( |
| | | ()=>props.kbobj, |
| | | (val)=>{ |
| | | console.log(val, '见听到新值'); |
| | | }, |
| | | { |
| | | deep: true, |
| | | immediate: true |
| | | } |
| | | } |
| | | }) |
| | | ) |
| | | |
| | | let visible = ref(false); |
| | | let loading = ref(false); |
| | | const formRef = ref(null); |
| | | const modelList = ref({}); |
| | | let form = reactive({ |
| | | kb_id: props.kbobj.kb_id, |
| | | kb_id: props.kbobj.id, |
| | | page: 1, |
| | | question: '', |
| | | rerank_id: '', |
| | |
| | | |
| | | |
| | | const formatter = (value) => { |
| | | return value / 100 |
| | | return Math.round(value / 100) |
| | | }; |
| | | |
| | | |
| | | |
| | | const sayHello = () => { |
| | | Message.info('hello'); |
| | | const sayHello = (str) => { |
| | | Message.info(str); |
| | | }; |
| | | |
| | | const handleSubmit = async ({values, errors}) => { |
| | | // console.log(props.kbobj, 'props.kbobj'); |
| | | if (!form.question){ |
| | | return |
| | | } |
| | | form.similarity_threshold = form.similarity_threshold/100; |
| | | form.vector_similarity_weight = form.vector_similarity_weight/100; |
| | | const data = await kbretrievalTest(form); |
| | | let formObj = {...form} |
| | | formObj.similarity_threshold = formObj.similarity_threshold/100; |
| | | formObj.vector_similarity_weight = formObj.vector_similarity_weight/100; |
| | | const data = await kbretrievalTest(formObj); |
| | | console.log(data); |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | }) |
| | | |
| | | |
| | | </script> |
| | | |
| | | <script lang="ts"> |
| | |
| | | 解析方法: |
| | | </div> |
| | | <div style="margin-left: 10px"> |
| | | <a-select v-model="form.parser_id" placeholder="请选择" width="200px"> |
| | | <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> |
| | |
| | | <a-divider style="margin-top: 10px" /> |
| | | <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" /> |
| | | <a-input-number v-model="form.chunk_token_num" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}" |
| | | placeholder="请输入" class="input-demo" :max="1000" /> |
| | | <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-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" :format-tooltip="formatter" 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'}]"> |
| | |
| | | </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 props = defineProps(['kbtenantInfo','item','kbdetail']) |
| | | // const emit = defineEmits(['upTabdateItem']) |
| | | |
| | | let threshold = computed(()=>{ |
| | | return form.threshold/100; |
| | | }) |
| | | |
| | | const kbtenantInfo = props.kbtenantInfo; |
| | | |
| | |
| | | parser_id: props.item.parser_id, |
| | | doc_id: props.item.id, |
| | | max_token: 698, |
| | | threshold: 0.32, |
| | | threshold: 30, |
| | | max_cluster: 233, |
| | | random_seed: 1500, |
| | | chunk_token_num: 128, |
| | |
| | | }, |
| | | ], |
| | | } |
| | | |
| | | const formatter = (value) => { |
| | | return value / 100 |
| | | }; |
| | | function randomNumber() { |
| | | // 生成一个介于min和max之间的随机整数(包含min和max) |
| | | const min = 1; // 最小值 |