mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-01-06 02:28:51 +01:00
* feat: openai parameters * refactor: anthropic/bedrock params, add preset params for openai, and add azure params * refactor: use 'compact' schemas for anthropic/openai * refactor: ensure custom endpoints are properly recognized as valid param endpoints * refactor: update paramEndpoints check in BaseClient.js * chore: optimize logging by omitting modelsConfig * refactor: update label casing in baseDefinitions combobox items * fix: remove 'stop' model options when using o1 series models * refactor(AnthropicClient): remove default `stop` value * refactor: reset params on parameters change * refactor: remove unused default parameter value map introduced in prior commit * fix: 'min' typo for 'max' value * refactor: preset settings * refactor: replace dropdown for image detail with slider; remove `preventDelayedUpdate` condition from DynamicSlider * fix: localizations for freq./pres. penalty * Refactor maxOutputTokens to use coerceNumber in tConversationSchema * refactor(AnthropicClient): use `getModelMaxOutputTokens`
65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
import { useMemo } from 'react';
|
|
import { getSettingsKeys } from 'librechat-data-provider';
|
|
import type { SettingDefinition } from 'librechat-data-provider';
|
|
import type { TModelSelectProps } from '~/common';
|
|
import { componentMapping } from '~/components/SidePanel/Parameters/components';
|
|
import { presetSettings } from '~/components/SidePanel/Parameters/settings';
|
|
|
|
export default function BedrockSettings({
|
|
conversation,
|
|
setOption,
|
|
models,
|
|
readonly,
|
|
}: TModelSelectProps) {
|
|
const parameters = useMemo(() => {
|
|
const [combinedKey, endpointKey] = getSettingsKeys(
|
|
conversation?.endpointType ?? conversation?.endpoint ?? '',
|
|
conversation?.model ?? '',
|
|
);
|
|
return presetSettings[combinedKey] ?? presetSettings[endpointKey];
|
|
}, [conversation]);
|
|
|
|
if (!parameters) {
|
|
return null;
|
|
}
|
|
|
|
const renderComponent = (setting: SettingDefinition | undefined) => {
|
|
if (!setting) {
|
|
return null;
|
|
}
|
|
const Component = componentMapping[setting.component];
|
|
if (!Component) {
|
|
return null;
|
|
}
|
|
const { key, default: defaultValue, ...rest } = setting;
|
|
|
|
const props = {
|
|
key,
|
|
settingKey: key,
|
|
defaultValue,
|
|
...rest,
|
|
readonly,
|
|
setOption,
|
|
conversation,
|
|
};
|
|
|
|
if (key === 'model') {
|
|
return <Component {...props} options={models} />;
|
|
}
|
|
|
|
return <Component {...props} />;
|
|
};
|
|
|
|
return (
|
|
<div className="h-auto max-w-full overflow-x-hidden p-3">
|
|
<div className="grid grid-cols-1 gap-6 md:grid-cols-5">
|
|
<div className="flex flex-col gap-6 md:col-span-3">
|
|
{parameters.col1.map(renderComponent)}
|
|
</div>
|
|
<div className="flex flex-col gap-6 md:col-span-2">
|
|
{parameters.col2.map(renderComponent)}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|