fix: 更新 MilvusKB 配置项标签,添加重排序模型选择功能,优化 SearchConfigModal 描述显示

This commit is contained in:
Wenjie Zhang 2026-01-27 17:07:18 +08:00
parent e41fc1e000
commit 537b798f9a
4 changed files with 32 additions and 20 deletions

View File

@ -803,7 +803,7 @@ class MilvusKB(KnowledgeBase):
},
{
"key": "final_top_k",
"label": "最终返回",
"label": "最终返回 Chunk ",
"type": "number",
"default": 10,
"min": 1,
@ -812,7 +812,7 @@ class MilvusKB(KnowledgeBase):
},
{
"key": "similarity_threshold",
"label": "相似度阈值",
"label": "相似度阈值0-1",
"type": "number",
"default": 0.0,
"min": 0.0,
@ -822,7 +822,7 @@ class MilvusKB(KnowledgeBase):
},
{
"key": "keyword_top_k",
"label": "关键词召回数",
"label": "使用关键词召回的最大 Chunk ",
"type": "number",
"default": 50,
"min": 1,
@ -855,6 +855,17 @@ class MilvusKB(KnowledgeBase):
"default": False,
"description": "是否使用精排模型对检索结果进行重排序",
},
{
"key": "reranker_model",
"label": "重排序模型",
"type": "select",
"default": "",
"options": [
{"label": info.name, "value": model_id}
for model_id, info in kwargs.get("reranker_names", {}).items()
],
"description": "选择用于本次查询的重排序模型",
},
{
"key": "recall_top_k",
"label": "召回数量",
@ -866,20 +877,6 @@ class MilvusKB(KnowledgeBase):
},
]
# 动态添加 reranker 模型选择
reranker_names = kwargs.get("reranker_names", {})
if reranker_names:
options.append(
{
"key": "reranker_model",
"label": "重排序模型",
"type": "select",
"default": "",
"options": [{"label": info.name, "value": model_id} for model_id, info in reranker_names.items()],
"description": "选择用于本次查询的重排序模型",
}
)
return {"type": "milvus", "options": options}
def __del__(self):

View File

@ -62,7 +62,9 @@
<a-col :span="12">
<a-form-item
:label="
selectedBenchmark.has_gold_answers ? '答案生成模型(可选)' : '答案生成模型(当前基准无需)'
selectedBenchmark.has_gold_answers
? '答案生成模型(可选)'
: '答案生成模型(当前基准无需)'
"
>
<ModelSelectorComponent
@ -78,7 +80,9 @@
<a-col :span="12">
<a-form-item
:label="
selectedBenchmark.has_gold_answers ? '答案评判模型(可选)' : '答案评判模型(当前基准无需)'
selectedBenchmark.has_gold_answers
? '答案评判模型(可选)'
: '答案评判模型(当前基准无需)'
"
>
<ModelSelectorComponent

View File

@ -28,6 +28,9 @@
<a-row :gutter="16">
<a-col :span="12" v-for="param in queryParams" :key="param.key">
<a-form-item :label="param.label">
<template #extra v-if="param.description">
<div class="param-description">{{ param.description }}</div>
</template>
<a-select
v-if="param.type === 'select'"
v-model:value="meta[param.key]"
@ -273,6 +276,13 @@ watch(
max-width: 100%;
}
.param-description {
font-size: 12px;
color: var(--gray-500);
line-height: 1.5;
margin-top: 4px;
}
//
:deep(.ant-form-item) {
margin-bottom: 16px;

View File

@ -678,7 +678,8 @@ const handleMouseUp = () => {
}
.config-text {
font-size: 13px;
font-size: 14px;
margin-left: 4px;
}
}