feat: 优化全文检索和混合检索方式(#47)
This commit is contained in:
parent
84e8ca0f84
commit
8af8a4949c
@ -527,6 +527,9 @@ h4 {
|
|||||||
.active {
|
.active {
|
||||||
border: 1px solid var(--el-color-primary);
|
border: 1px solid var(--el-color-primary);
|
||||||
}
|
}
|
||||||
|
.el-card__body {
|
||||||
|
padding: calc(var(--app-base-px) + 4px) calc(var(--app-base-px) * 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// AI模型选择:添加模型hover样式
|
// AI模型选择:添加模型hover样式
|
||||||
|
|||||||
@ -1,11 +1,17 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog title="参数设置" class="param-dialog" v-model="dialogVisible" style="width: 550px">
|
<el-dialog
|
||||||
|
align-center
|
||||||
|
title="参数设置"
|
||||||
|
class="param-dialog"
|
||||||
|
v-model="dialogVisible"
|
||||||
|
style="width: 550px"
|
||||||
|
>
|
||||||
<div class="dialog-max-height">
|
<div class="dialog-max-height">
|
||||||
<el-scrollbar>
|
<el-scrollbar always>
|
||||||
<div class="p-16">
|
<div class="p-16">
|
||||||
<el-form label-position="top" ref="paramFormRef" :model="form">
|
<el-form label-position="top" ref="paramFormRef" :model="form">
|
||||||
<el-form-item label="检索模式">
|
<el-form-item label="检索模式">
|
||||||
<el-radio-group v-model="form.search_mode" class="card__radio">
|
<el-radio-group v-model="form.search_mode" class="card__radio" @change="changeHandle">
|
||||||
<el-card
|
<el-card
|
||||||
shadow="never"
|
shadow="never"
|
||||||
class="mb-16"
|
class="mb-16"
|
||||||
@ -26,11 +32,7 @@
|
|||||||
<el-text type="info">通过关键词检索,返回包含关键词最多的文本分段</el-text>
|
<el-text type="info">通过关键词检索,返回包含关键词最多的文本分段</el-text>
|
||||||
</el-radio>
|
</el-radio>
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-card
|
<el-card shadow="never" :class="form.search_mode === 'blend' ? 'active' : ''">
|
||||||
shadow="never"
|
|
||||||
class="mb-16"
|
|
||||||
:class="form.search_mode === 'blend' ? 'active' : ''"
|
|
||||||
>
|
|
||||||
<el-radio value="blend" size="large">
|
<el-radio value="blend" size="large">
|
||||||
<p class="mb-4">混合检索</p>
|
<p class="mb-4">混合检索</p>
|
||||||
<el-text type="info"
|
<el-text type="info"
|
||||||
@ -40,27 +42,41 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-row :gutter="20">
|
||||||
<template #label>
|
<el-col :span="12">
|
||||||
<div class="flex align-center">
|
<el-form-item>
|
||||||
<span class="mr-4">相似度高于</span>
|
<template #label>
|
||||||
<el-tooltip effect="dark" content="相似度越高相关性越强。" placement="right">
|
<div class="flex align-center">
|
||||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
<span class="mr-4">相似度高于</span>
|
||||||
</el-tooltip>
|
<el-tooltip effect="dark" content="相似度越高相关性越强。" placement="right">
|
||||||
</div>
|
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||||
</template>
|
</el-tooltip>
|
||||||
<el-input-number
|
</div>
|
||||||
v-model="form.similarity"
|
</template>
|
||||||
:min="0"
|
<el-input-number
|
||||||
:max="1"
|
v-model="form.similarity"
|
||||||
:precision="3"
|
:min="0"
|
||||||
:step="0.1"
|
:max="1"
|
||||||
controls-position="right"
|
:precision="3"
|
||||||
/>
|
:step="0.1"
|
||||||
</el-form-item>
|
controls-position="right"
|
||||||
<el-form-item label="引用分段数 TOP">
|
class="w-full"
|
||||||
<el-input-number v-model="form.top_n" :min="1" :max="10" controls-position="right" />
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="引用分段数 TOP">
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.top_n"
|
||||||
|
:min="1"
|
||||||
|
:max="10"
|
||||||
|
controls-position="right"
|
||||||
|
class="w-full"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
<el-form-item label="最多引用字符数">
|
<el-form-item label="最多引用字符数">
|
||||||
<el-slider
|
<el-slider
|
||||||
v-model="form.max_paragraph_char_number"
|
v-model="form.max_paragraph_char_number"
|
||||||
@ -215,6 +231,14 @@ const submit = async (formEl: FormInstance | undefined) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function changeHandle(val: string) {
|
||||||
|
if (val === 'keywords') {
|
||||||
|
form.value.similarity = 0
|
||||||
|
} else {
|
||||||
|
form.value.similarity = 0.6
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
defineExpose({ open })
|
defineExpose({ open })
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scope>
|
<style lang="scss" scope>
|
||||||
@ -227,7 +251,7 @@ defineExpose({ open })
|
|||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
}
|
}
|
||||||
.dialog-max-height {
|
.dialog-max-height {
|
||||||
height: calc(100vh - 260px);
|
height: calc(100vh - 180px);
|
||||||
}
|
}
|
||||||
.custom-slider {
|
.custom-slider {
|
||||||
.el-input-number.is-without-controls .el-input__wrapper {
|
.el-input-number.is-without-controls .el-input__wrapper {
|
||||||
|
|||||||
@ -84,7 +84,11 @@
|
|||||||
</template>
|
</template>
|
||||||
<div class="mb-16">
|
<div class="mb-16">
|
||||||
<div class="title mb-8">检索模式</div>
|
<div class="title mb-8">检索模式</div>
|
||||||
<el-radio-group v-model="cloneForm.search_mode" class="card__radio">
|
<el-radio-group
|
||||||
|
v-model="cloneForm.search_mode"
|
||||||
|
class="card__radio"
|
||||||
|
@change="changeHandle"
|
||||||
|
>
|
||||||
<el-card
|
<el-card
|
||||||
shadow="never"
|
shadow="never"
|
||||||
class="mb-16"
|
class="mb-16"
|
||||||
@ -119,27 +123,35 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-16">
|
<el-row :gutter="20">
|
||||||
<div class="title mb-8">相似度高于</div>
|
<el-col :span="12">
|
||||||
<el-input-number
|
<div class="mb-16">
|
||||||
v-model="cloneForm.similarity"
|
<div class="title mb-8">相似度高于</div>
|
||||||
:min="0"
|
<el-input-number
|
||||||
:max="1"
|
v-model="cloneForm.similarity"
|
||||||
:precision="3"
|
:min="0"
|
||||||
:step="0.1"
|
:max="1"
|
||||||
controls-position="right"
|
:precision="3"
|
||||||
/>
|
:step="0.1"
|
||||||
</div>
|
controls-position="right"
|
||||||
<div class="mb-16">
|
class="w-full"
|
||||||
<div class="title mb-8">返回分段数 TOP</div>
|
/>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<div class="mb-16">
|
||||||
|
<div class="title mb-8">返回分段数 TOP</div>
|
||||||
|
<el-input-number
|
||||||
|
v-model="cloneForm.top_number"
|
||||||
|
:min="1"
|
||||||
|
:max="10"
|
||||||
|
controls-position="right"
|
||||||
|
class="w-full"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
<el-input-number
|
|
||||||
v-model="cloneForm.top_number"
|
|
||||||
:min="1"
|
|
||||||
:max="10"
|
|
||||||
controls-position="right"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
<el-button @click="popoverVisible = false">取消</el-button>
|
<el-button @click="popoverVisible = false">取消</el-button>
|
||||||
<el-button type="primary" @click="settingChange('close')">确认</el-button>
|
<el-button type="primary" @click="settingChange('close')">确认</el-button>
|
||||||
@ -218,6 +230,14 @@ const isDataset = computed(() => {
|
|||||||
return meta?.activeMenu.includes('dataset')
|
return meta?.activeMenu.includes('dataset')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
function changeHandle(val: string) {
|
||||||
|
if (val === 'keywords') {
|
||||||
|
cloneForm.value.similarity = 0
|
||||||
|
} else {
|
||||||
|
cloneForm.value.similarity = 0.6
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function settingChange(val: string) {
|
function settingChange(val: string) {
|
||||||
if (val === 'open') {
|
if (val === 'open') {
|
||||||
popoverVisible.value = true
|
popoverVisible.value = true
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user