| import { EModelEndpoint } from 'librechat-data-provider'; |
| import { useFormContext, Controller } from 'react-hook-form'; |
| import InputWithLabel from './InputWithLabel'; |
|
|
| const OpenAIConfig = ({ |
| endpoint, |
| userProvideURL, |
| }: { |
| endpoint: EModelEndpoint | string; |
| userProvideURL?: boolean | null; |
| }) => { |
| const { control } = useFormContext(); |
| const isAzure = endpoint === EModelEndpoint.azureOpenAI; |
| return ( |
| <form className="flex-wrap"> |
| {!isAzure && ( |
| <Controller |
| name="apiKey" |
| control={control} |
| render={({ field }) => ( |
| <InputWithLabel |
| id="apiKey" |
| {...field} |
| label={`${isAzure ? 'Azure q' : ''}OpenAI API Key`} |
| labelClassName="mb-1" |
| inputClassName="mb-2" |
| /> |
| )} |
| /> |
| )} |
| {isAzure && ( |
| <> |
| <Controller |
| name="azureOpenAIApiKey" |
| control={control} |
| render={({ field }) => ( |
| <InputWithLabel |
| id="azureOpenAIApiKey" |
| {...field} |
| label={'Azure OpenAI API Key'} |
| labelClassName="mb-1" |
| /> |
| )} |
| /> |
| <div className="mt-3"></div> |
| <Controller |
| name="azureOpenAIApiInstanceName" |
| control={control} |
| render={({ field }) => ( |
| <InputWithLabel |
| id="azureOpenAIApiInstanceName" |
| {...field} |
| label={'Azure OpenAI Instance Name'} |
| labelClassName="mb-1" |
| /> |
| )} |
| /> |
| <div className="mt-3"></div> |
| <Controller |
| name="azureOpenAIApiDeploymentName" |
| control={control} |
| render={({ field }) => ( |
| <InputWithLabel |
| id="azureOpenAIApiDeploymentName" |
| {...field} |
| label={'Azure OpenAI Deployment Name'} |
| labelClassName="mb-1" |
| /> |
| )} |
| /> |
| <div className="mt-3"></div> |
| <Controller |
| name="azureOpenAIApiVersion" |
| control={control} |
| render={({ field }) => ( |
| <InputWithLabel |
| id="azureOpenAIApiVersion" |
| {...field} |
| label={'Azure OpenAI API Version'} |
| labelClassName="mb-1" |
| /> |
| )} |
| /> |
| </> |
| )} |
| {userProvideURL && ( |
| <div className="mt-3"> |
| <Controller |
| name="baseURL" |
| control={control} |
| render={({ field }) => ( |
| <InputWithLabel |
| id="baseURL" |
| {...field} |
| label={'API Base URL'} |
| subLabel={'(Optional)'} |
| labelClassName="mb-1" |
| /> |
| )} |
| /> |
| </div> |
| )} |
| </form> |
| ); |
| }; |
|
|
| export default OpenAIConfig; |
|
|