mirror of
http://112.124.100.131/ebiz-ai/ebiz-ai-knowledge-manage.git
synced 2025-12-12 12:26:52 +08:00
feat(knowledge): 添加检索设置功能
- 新增 SearchSetting 组件用于检索设置 - 在知识库详情页面添加检索设置按钮和弹窗 - 实现了向量检索、全文检索和混合检索的设置功能 - 添加了重排序模型、Top K 和 Score
This commit is contained in:
161
src/views/knowledge/detail/components/SearchSetting/Index.vue
Normal file
161
src/views/knowledge/detail/components/SearchSetting/Index.vue
Normal file
@@ -0,0 +1,161 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-drawer
|
||||
title="搜索设置"
|
||||
:visible.sync="visible"
|
||||
size="50%"
|
||||
@close="handleClose"
|
||||
>
|
||||
<el-form ref="form" :model="form" label-width="80%" label-position="top">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="Embedding模型">
|
||||
<el-select v-model="form.embeddingModel" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in modelList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- <el-form-item label="检索设置">
|
||||
<div class="flex justify-content-b">
|
||||
<div
|
||||
v-for="(item, index) in settingList"
|
||||
:key="item.name"
|
||||
class="setting_item flex"
|
||||
:class="{ activeItem: index === activeIndex }"
|
||||
@click="handleClick(index)"
|
||||
>
|
||||
<img
|
||||
src="@/assets/images/konwledge/knowledge-5.png"
|
||||
alt=""
|
||||
style="height: 40px"
|
||||
/>
|
||||
<div class="ml10">
|
||||
<p class="fwb label fs15">
|
||||
{{ item.name }}
|
||||
<span v-if="index === 2" class="point fs12 ml10">推荐</span>
|
||||
</p>
|
||||
<p class="desc">{{ item.desc }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>-->
|
||||
<el-collapse v-model="activeName" accordion>
|
||||
<el-collapse-item
|
||||
v-for="(item, index) in settingList"
|
||||
:key="item.name"
|
||||
:title="item.name"
|
||||
:name="index"
|
||||
>
|
||||
<template slot="title">
|
||||
<div class="flex align-items-c">
|
||||
<img
|
||||
src="@/assets/images/konwledge/knowledge-5.png"
|
||||
alt=""
|
||||
style="height: 20px"
|
||||
/>
|
||||
<div class="ml10">
|
||||
<p class="fwb label fs15">
|
||||
{{ item.name }}
|
||||
<span v-if="index === 2" class="point fs12 ml10">推荐</span>
|
||||
</p>
|
||||
<p class="desc">{{ item.desc }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<div>
|
||||
<search-form :activeIndex="activeName"></search-form>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</el-form>
|
||||
</el-drawer>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import SearchForm from '@/views/knowledge/detail/components/SearchSetting/SearchForm.vue'
|
||||
|
||||
export default {
|
||||
name: 'SearchSetting',
|
||||
components: { SearchForm },
|
||||
props: {},
|
||||
data() {
|
||||
return {
|
||||
activeName: 0,
|
||||
visible: false,
|
||||
form: {
|
||||
embeddingModel: '',
|
||||
modelOpen: false
|
||||
},
|
||||
modelList: [],
|
||||
activeIndex: 0,
|
||||
settingList: [
|
||||
{
|
||||
name: '向量检索',
|
||||
desc: '通过生成查询嵌入并查询与其向量表示最相似的文本分段'
|
||||
},
|
||||
{
|
||||
name: '全文检索',
|
||||
desc:
|
||||
'索引文档中的所有词汇,从而允许用户查询任意词汇,并返回包含这些词汇的文本片段'
|
||||
},
|
||||
{
|
||||
name: '混合检索',
|
||||
desc:
|
||||
'同时执行全文检索和向量检索,并应用重排序步骤,从两类查询结果中选择匹配用户问题的最佳结果,用户可以选择设置权重或配置重新排序模型。'
|
||||
}
|
||||
],
|
||||
marks: {
|
||||
// 20: '0',
|
||||
// 80: '100'
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.visible = true
|
||||
},
|
||||
handleClose() {
|
||||
this.$emit('close')
|
||||
},
|
||||
handleClick(index) {
|
||||
this.activeIndex = index
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.point {
|
||||
color: #296dff;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #296dff;
|
||||
padding: 2px 5px;
|
||||
}
|
||||
.label {
|
||||
color: #354052;
|
||||
font-size: 15px;
|
||||
}
|
||||
.desc {
|
||||
color: #676f83;
|
||||
}
|
||||
|
||||
/deep/ .el-collapse-item__header {
|
||||
height: 85px;
|
||||
line-height: 23px;
|
||||
border: 1px solid #ebeef5;
|
||||
border-radius: 5px;
|
||||
padding: 10px 20px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
/deep/ .is-active {
|
||||
.el-collapse-item__header {
|
||||
background-color: #f5f5fb;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user