From df32ffbe5757855ea843c2e1ae08a50d2b50d3ae Mon Sep 17 00:00:00 2001 From: Wang Qi Date: Mon, 10 Aug 2026 20:01:45 +0800 Subject: [PATCH] Fix: restrict keywords_similarity_weight [0,1] (#18044) --- web/src/components/similarity-slider/index.tsx | 9 ++++++--- web/src/pages/agent/form/retrieval-form/next.tsx | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/web/src/components/similarity-slider/index.tsx b/web/src/components/similarity-slider/index.tsx index f822bf20d7..7e55158b9c 100644 --- a/web/src/components/similarity-slider/index.tsx +++ b/web/src/components/similarity-slider/index.tsx @@ -32,7 +32,7 @@ export const initialKeywordsSimilarityWeightValue = { export const similarityThresholdSchema = { similarity_threshold: z.number() }; export const keywordsSimilarityWeightSchema = { - keywords_similarity_weight: z.number(), + keywords_similarity_weight: z.number().min(0).max(1), }; export const vectorSimilarityWeightSchema = { @@ -53,7 +53,8 @@ export function SimilaritySliderFormField({ const { t } = useTranslate('knowledgeDetails'); const form = useFormContext(); const isVector = similarityWeightType === 'vector'; - const normalizeWeight = (weight: number) => Number(weight.toFixed(2)); + const normalizeWeight = (weight: number) => + Number(Math.min(1, Math.max(0, weight)).toFixed(2)); const getVectorWeight = (weight: number) => normalizeWeight(isVector ? weight : 1 - weight); const getFullTextWeight = (weight: number) => @@ -137,7 +138,9 @@ export function SimilaritySliderFormField({ step={0.01} {...field} value={getVectorWeight(field.value)} - onChange={(value) => field.onChange(getStoredWeight(value))} + onChange={(value) => + field.onChange(getStoredWeight(Number(value))) + } > diff --git a/web/src/pages/agent/form/retrieval-form/next.tsx b/web/src/pages/agent/form/retrieval-form/next.tsx index a68ebc3649..d8cb10269c 100644 --- a/web/src/pages/agent/form/retrieval-form/next.tsx +++ b/web/src/pages/agent/form/retrieval-form/next.tsx @@ -44,7 +44,7 @@ import { useValues } from './use-values'; export const RetrievalPartialSchema = { similarity_threshold: z.coerce.number(), - keywords_similarity_weight: z.coerce.number(), + keywords_similarity_weight: z.coerce.number().min(0).max(1), top_n: z.coerce.number(), top_k: z.coerce.number(), dataset_ids: z.array(z.string()),