| export default function GenericOpenAiOptions({ settings }) { | |
| return ( | |
| <div className="flex flex-col gap-y-7"> | |
| <div className="flex gap-[36px] mt-1.5 flex-wrap"> | |
| <div className="flex flex-col w-60"> | |
| <label className="text-white text-sm font-semibold block mb-3"> | |
| Base URL | |
| </label> | |
| <input | |
| type="url" | |
| name="GenericOpenAiBasePath" | |
| className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5" | |
| placeholder="eg: https://proxy.openai.com" | |
| defaultValue={settings?.GenericOpenAiBasePath} | |
| required={true} | |
| autoComplete="off" | |
| spellCheck={false} | |
| /> | |
| </div> | |
| <div className="flex flex-col w-60"> | |
| <label className="text-white text-sm font-semibold block mb-3"> | |
| API Key | |
| </label> | |
| <input | |
| type="password" | |
| name="GenericOpenAiKey" | |
| className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5" | |
| placeholder="Generic service API Key" | |
| defaultValue={settings?.GenericOpenAiKey ? "*".repeat(20) : ""} | |
| required={false} | |
| autoComplete="off" | |
| spellCheck={false} | |
| /> | |
| </div> | |
| <div className="flex flex-col w-60"> | |
| <label className="text-white text-sm font-semibold block mb-3"> | |
| Chat Model Name | |
| </label> | |
| <input | |
| type="text" | |
| name="GenericOpenAiModelPref" | |
| className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5" | |
| placeholder="Model id used for chat requests" | |
| defaultValue={settings?.GenericOpenAiModelPref} | |
| required={true} | |
| autoComplete="off" | |
| /> | |
| </div> | |
| </div> | |
| <div className="flex gap-[36px] flex-wrap"> | |
| <div className="flex flex-col w-60"> | |
| <label className="text-white text-sm font-semibold block mb-3"> | |
| Token context window | |
| </label> | |
| <input | |
| type="number" | |
| name="GenericOpenAiTokenLimit" | |
| className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5" | |
| placeholder="Content window limit (eg: 4096)" | |
| min={1} | |
| onScroll={(e) => e.target.blur()} | |
| defaultValue={settings?.GenericOpenAiTokenLimit} | |
| required={true} | |
| autoComplete="off" | |
| /> | |
| </div> | |
| <div className="flex flex-col w-60"> | |
| <label className="text-white text-sm font-semibold block mb-3"> | |
| Max Tokens | |
| </label> | |
| <input | |
| type="number" | |
| name="GenericOpenAiMaxTokens" | |
| className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5" | |
| placeholder="Max tokens per request (eg: 1024)" | |
| min={1} | |
| defaultValue={settings?.GenericOpenAiMaxTokens || 1024} | |
| required={true} | |
| autoComplete="off" | |
| /> | |
| </div> | |
| </div> | |
| </div> | |
| ); | |
| } | |