import { LlmModelType } from '@/constants/knowledge'; import { useTranslate } from '@/hooks/common-hooks'; import { useSelectLlmOptionsByModelType } from '@/hooks/llm-hooks'; import { Select as AntSelect, Form, message, Slider } from 'antd'; import { useCallback } from 'react'; import { useFormContext } from 'react-hook-form'; import { SingleFormSlider } from './ui/dual-range-slider'; import { FormControl, FormField, FormItem, FormLabel, FormMessage, } from './ui/form'; import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue, } from './ui/select'; type FieldType = { rerank_id?: string; top_k?: number; }; export const RerankItem = () => { const { t } = useTranslate('knowledgeDetails'); const allOptions = useSelectLlmOptionsByModelType(); const [messageApi, contextHolder] = message.useMessage(); const handleChange = useCallback( (val: string) => { if (val) { messageApi.open({ type: 'warning', content: t('reRankModelWaring'), }); } }, [messageApi, t], ); return ( <> {contextHolder} ); }; const Rerank = () => { const { t } = useTranslate('knowledgeDetails'); return ( <> {({ getFieldValue }) => { const rerankId = getFieldValue('rerank_id'); return ( rerankId && ( label={t('topK')} name={'top_k'} initialValue={1024} tooltip={t('topKTip')} > ) ); }} ); }; export default Rerank; const RerankId = 'rerank_id'; function RerankFormField() { const form = useFormContext(); const { t } = useTranslate('knowledgeDetails'); const allOptions = useSelectLlmOptionsByModelType(); const options = allOptions[LlmModelType.Rerank]; return ( ( {t('rerankModel')} )} /> ); } export function RerankFormFields() { const { control, watch } = useFormContext(); const { t } = useTranslate('knowledgeDetails'); const rerankId = watch(RerankId); return ( <> {rerankId && ( ( {t('topK')} )} /> )} ); }