| | import { librechat } from 'librechat-data-provider'; |
| | import type { DynamicSettingProps } from 'librechat-data-provider'; |
| |
|
| | type LibreChatKeys = keyof typeof librechat; |
| |
|
| | type LibreChatParams = { |
| | modelOptions: Omit<NonNullable<DynamicSettingProps['conversation']>, LibreChatKeys>; |
| | resendFiles: boolean; |
| | promptPrefix?: string | null; |
| | maxContextTokens?: number; |
| | fileTokenLimit?: number; |
| | modelLabel?: string | null; |
| | }; |
| |
|
| | |
| | |
| | |
| | |
| | export function extractLibreChatParams( |
| | options?: DynamicSettingProps['conversation'], |
| | ): LibreChatParams { |
| | if (!options) { |
| | return { |
| | modelOptions: {} as Omit<NonNullable<DynamicSettingProps['conversation']>, LibreChatKeys>, |
| | resendFiles: librechat.resendFiles.default as boolean, |
| | }; |
| | } |
| |
|
| | const modelOptions = { ...options }; |
| |
|
| | const resendFiles = |
| | (delete modelOptions.resendFiles, options.resendFiles) ?? |
| | (librechat.resendFiles.default as boolean); |
| | const promptPrefix = (delete modelOptions.promptPrefix, options.promptPrefix); |
| | const maxContextTokens = (delete modelOptions.maxContextTokens, options.maxContextTokens); |
| | const fileTokenLimit = (delete modelOptions.fileTokenLimit, options.fileTokenLimit); |
| | const modelLabel = (delete modelOptions.modelLabel, options.modelLabel); |
| |
|
| | return { |
| | modelOptions: modelOptions as Omit< |
| | NonNullable<DynamicSettingProps['conversation']>, |
| | LibreChatKeys |
| | >, |
| | maxContextTokens, |
| | fileTokenLimit, |
| | promptPrefix, |
| | resendFiles, |
| | modelLabel, |
| | }; |
| | } |
| |
|