import { ChatConfig, LLMProvider, LLMProviders, ModelConfig, ProviderConfig, } from "@/app/store"; import { Updater } from "@/app/typing"; import { OpenAIModelConfig } from "./openai/model"; import { OpenAIProviderConfig } from "./openai/provider"; import { ListItem, Select } from "../ui-lib"; import Locale from "@/app/locales"; import { InputRange } from "../input-range"; export function ModelConfigList(props: { provider: LLMProvider; config: ModelConfig; updateConfig: Updater; }) { if (props.provider === "openai") { return ( { props.updateConfig((config) => update(config.openai)); }} models={[ { name: "gpt-3.5-turbo", available: true, }, { name: "gpt-4", available: true, }, ]} /> ); } return null; } export function ProviderConfigList(props: { provider: LLMProvider; config: ProviderConfig; updateConfig: Updater; }) { if (props.provider === "openai") { return ( { props.updateConfig((config) => update(config.openai)); }} /> ); } return null; } export function ProviderSelectItem(props: { value: LLMProvider; update: (value: LLMProvider) => void; }) { return ( ); } export function ChatConfigList(props: { config: ChatConfig; updateConfig: (updater: (config: ChatConfig) => void) => void; }) { return ( <> props.updateConfig( (config) => (config.enableInjectSystemPrompts = e.currentTarget.checked), ) } > props.updateConfig( (config) => (config.template = e.currentTarget.value), ) } > props.updateConfig( (config) => (config.historyMessageCount = e.target.valueAsNumber), ) } > props.updateConfig( (config) => (config.compressMessageLengthThreshold = e.currentTarget.valueAsNumber), ) } > props.updateConfig( (config) => (config.sendMemory = e.currentTarget.checked), ) } > ); }