import React from 'react';
import TextareaAutosize from 'react-textarea-autosize';
import ModelDropDown from './ModelDropDown';
import { Input } from '~/components/ui/Input.tsx';
import { Label } from '~/components/ui/Label.tsx';
import { Slider } from '~/components/ui/Slider.tsx';
import OptionHover from './OptionHover';
import { HoverCard, HoverCardTrigger } from '~/components/ui/HoverCard.tsx';
import { cn } from '~/utils/';
const defaultTextProps =
'rounded-md border border-gray-300 bg-transparent text-sm shadow-[0_0_10px_rgba(0,0,0,0.10)] outline-none placeholder:text-gray-400 focus:outline-none focus:ring-gray-400 focus:ring-opacity-20 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-400 dark:bg-gray-700 dark:text-gray-50 dark:shadow-[0_0_15px_rgba(0,0,0,0.10)] dark:focus:border-gray-400 dark:focus:outline-none dark:focus:ring-0 dark:focus:ring-gray-400 dark:focus:ring-offset-0';
const optionText =
'p-0 shadow-none text-right pr-1 h-8 border-transparent focus:ring-[#10a37f] focus:ring-offset-0 focus:ring-opacity-100 hover:bg-gray-800/10 dark:hover:bg-white/10 focus:bg-gray-800/10 dark:focus:bg-white/10 transition-colors';
function Settings(props) {
const {
model,
setModel,
chatGptLabel,
setChatGptLabel,
promptPrefix,
setPromptPrefix,
temperature,
setTemperature,
topP,
setTopP,
freqP,
setFreqP,
presP,
setPresP
} = props;
// temperature
// top_p
// presence_penalty
// frequency_penalty
// chatGptLabel
// promptPrefix
// const endpointsConfig = useRecoilValue(store.endpointsConfig);
// const availableModels = endpointsConfig?.['openAI']?.['availableModels'] || [];
// const [model, setModel] = useState('text-davinci-003');
// const [chatGptLabel, setChatGptLabel] = useState('');
// const [promptPrefix, setPromptPrefix] = useState('');
// const [temperature, setTemperature] = useState(1);
// // const [maxTokens, setMaxTokens] = useState(2048);
// const [topP, setTopP] = useState(1);
// const [freqP, setFreqP] = useState(0);
// const [presP, setPresP] = useState(0);
// const textareaRef = useRef(null);
// const inputRef = useRef(null);
return (
<>
setTemperature(e.target.value)}
className={cn(
defaultTextProps,
cn(optionText, 'h-auto w-12 border-0 group-hover/temp:border-gray-200')
)}
/>
setTemperature(value[0])}
max={2}
min={0}
step={0.01}
className="flex h-4 w-full"
/>
{/*
setMaxTokens(e.target.value)}
className={cn(
defaultTextProps,
cn(optionText, 'h-auto w-12 border-0 group-hover/temp:border-gray-200')
)}
/>
setMaxTokens(value[0])}
max={2048} // should be dynamic to the currently selected model
min={1}
step={1}
className="flex h-4 w-full"
/>
*/}
setTopP(e.target.value)}
className={cn(
defaultTextProps,
cn(optionText, 'h-auto w-12 border-0 group-hover/temp:border-gray-200')
)}
/>
setTopP(value[0])}
max={1}
min={0}
step={0.01}
className="flex h-4 w-full"
/>
setFreqP(e.target.value)}
className={cn(
defaultTextProps,
cn(optionText, 'h-auto w-12 border-0 group-hover/temp:border-gray-200')
)}
/>
setFreqP(value[0])}
max={2}
min={-2}
step={0.01}
className="flex h-4 w-full"
/>
setPresP(e.target.value)}
className={cn(
defaultTextProps,
cn(optionText, 'h-auto w-12 border-0 group-hover/temp:border-gray-200')
)}
/>
setPresP(value[0])}
max={2}
min={-2}
step={0.01}
className="flex h-4 w-full"
/>
{/*
setTemperature(e.target.value)}
className={cn(defaultTextProps, cn(optionText, 'w-10 group-hover/temp:border-gray-200'))}
/>
setMaxTokens(e.target.value)}
className={cn(defaultTextProps, cn(optionText, 'w-11 group-hover/max:border-gray-200'))}
/>
setMaxTokens(value)}
max={2048} // should be dynamic to the currently selected model
min={1}
step={1}
className="w-full"
/>
setTopP(e.target.value)}
className={cn(defaultTextProps, cn(optionText, 'w-10 group-hover/top:border-gray-200'))}
/>
setFreqP(e.target.value)}
className={cn(defaultTextProps, cn(optionText, 'w-10 group-hover/freq:border-gray-200'))}
/>
setTopP(value)}
max={1}
min={0}
step={0.01}
className="w-full"
/>
setFreqP(value)}
max={2}
min={-2}
step={0.01}
className="w-full"
/>
setPresP(e.target.value)}
className={cn(defaultTextProps, cn(optionText, 'w-10 group-hover/pres:border-gray-200'))}
/>
setPresP(value)}
max={2}
min={-2}
step={0.01}
className="w-full opacity-0"
/>
setPresP(value)}
max={2}
min={-2}
step={0.01}
className="w-full"
/>
*/}
>
);
}
export default Settings;