import * as React from "react"; import { InfioSettings } from '../../types/settings'; import { MAX_FREQUENCY_PENALTY, MAX_MAX_TOKENS, MAX_PRESENCE_PENALTY, MAX_TEMPERATURE, MAX_TOP_P, MIN_FREQUENCY_PENALTY, MIN_MAX_TOKENS, MIN_PRESENCE_PENALTY, MIN_TEMPERATURE, MIN_TOP_P } from "../versions"; import SliderSettingsItem from "./SliderSettingsItem"; type Props = { settings: InfioSettings; updateSettings: (update: Partial) => void; errors: Map; } export default function ModelParametersSettings({ settings, updateSettings, errors }: Props): React.JSX.Element { return ( <> updateSettings({ modelOptions: { ...settings.modelOptions, temperature: value, }, }) } min={MIN_TEMPERATURE} max={MAX_TEMPERATURE} step={0.05} /> updateSettings({ modelOptions: { ...settings.modelOptions, top_p: value, }, }) } min={MIN_TOP_P} max={MAX_TOP_P} step={0.05} /> {settings.apiProvider !== "ollama" && ( <> updateSettings({ modelOptions: { ...settings.modelOptions, frequency_penalty: value, }, }) } min={MIN_FREQUENCY_PENALTY} max={MAX_FREQUENCY_PENALTY} step={0.05} /> updateSettings({ modelOptions: { ...settings.modelOptions, presence_penalty: value, }, }) } min={MIN_PRESENCE_PENALTY} max={MAX_PRESENCE_PENALTY} step={0.05} /> updateSettings({ modelOptions: { ...settings.modelOptions, max_tokens: value, }, }) } min={MIN_MAX_TOKENS} max={MAX_MAX_TOKENS} step={10} /> )} ); }