import { useCallback } from 'react' import { QueryMode, QueryRequest } from '@/api/lightrag' import Text from '@/components/ui/Text' import Input from '@/components/ui/Input' import Checkbox from '@/components/ui/Checkbox' import NumberInput from '@/components/ui/NumberInput' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/Card' import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/Select' import { useSettingsStore } from '@/stores/settings' import { useTranslation } from 'react-i18next' export default function QuerySettings() { const { t } = useTranslation() const querySettings = useSettingsStore((state) => state.querySettings) const handleChange = useCallback((key: keyof QueryRequest, value: any) => { useSettingsStore.getState().updateQuerySettings({ [key]: value }) }, []) return ( {t('retrievePanel.querySettings.parametersTitle')} {t('retrievePanel.querySettings.parametersDescription')}
{/* Query Mode */} <> {/* Response Format */} <> {/* Top K */} <> handleChange('top_k', v)} min={1} placeholder={t('retrievePanel.querySettings.topKPlaceholder')} /> {/* Max Tokens */} <> <> handleChange('max_token_for_text_unit', v)} min={1} placeholder={t('retrievePanel.querySettings.maxTokensTextUnit')} /> <> handleChange('max_token_for_global_context', v)} min={1} placeholder={t('retrievePanel.querySettings.maxTokensGlobalContext')} /> <> handleChange('max_token_for_local_context', v)} min={1} placeholder={t('retrievePanel.querySettings.maxTokensLocalContext')} /> {/* History Turns */} <> handleChange('history_turns', v)} min={0} placeholder={t('retrievePanel.querySettings.historyTurnsPlaceholder')} /> {/* Keywords */} <> <> { const keywords = e.target.value .split(',') .map((k) => k.trim()) .filter((k) => k !== '') handleChange('hl_keywords', keywords) }} placeholder={t('retrievePanel.querySettings.hlkeywordsPlaceHolder')} /> <> { const keywords = e.target.value .split(',') .map((k) => k.trim()) .filter((k) => k !== '') handleChange('ll_keywords', keywords) }} placeholder={t('retrievePanel.querySettings.hlkeywordsPlaceHolder')} /> {/* Toggle Options */} <>
handleChange('only_need_context', checked)} />
handleChange('only_need_prompt', checked)} />
handleChange('stream', checked)} />
) }