Download client/src/utils/getDefaultEndpoint.ts from Zhitomir/chat: direct link, hf CLI and curl.
- Browser
- Download file 1.83 kB
-
https://huggingface.co/spaces/Zhitomir/chat/resolve/main/client/src/utils/getDefaultEndpoint.ts
- Command line
-
hf download hf://spaces/Zhitomir/chat/client/src/utils/getDefaultEndpoint.ts
-
curl -L -o getDefaultEndpoint.ts https://huggingface.co/spaces/Zhitomir/chat/resolve/main/client/src/utils/getDefaultEndpoint.ts
1.83 kB
| import type { | |
| TConversation, | |
| TPreset, | |
| TEndpointsConfig, | |
| EModelEndpoint, | |
| } from 'librechat-data-provider'; | |
| import getLocalStorageItems from './getLocalStorageItems'; | |
| import { mapEndpoints } from './endpoints'; | |
| type TConvoSetup = Partial<TPreset> | Partial<TConversation>; | |
| type TDefaultEndpoint = { convoSetup: TConvoSetup; endpointsConfig: TEndpointsConfig }; | |
| const getEndpointFromSetup = (convoSetup: TConvoSetup, endpointsConfig: TEndpointsConfig) => { | |
| const { endpoint: targetEndpoint } = convoSetup || {}; | |
| if (targetEndpoint && endpointsConfig?.[targetEndpoint ?? '']) { | |
| return targetEndpoint; | |
| } else if (targetEndpoint) { | |
| console.warn(`Illegal target endpoint ${targetEndpoint} ${endpointsConfig}`); | |
| } | |
| return null; | |
| }; | |
| const getEndpointFromLocalStorage = (endpointsConfig: TEndpointsConfig) => { | |
| try { | |
| const { lastConversationSetup } = getLocalStorageItems(); | |
| const { endpoint } = lastConversationSetup; | |
| const isDefaultConfig = Object.values(endpointsConfig ?? {})?.every((value) => !value); | |
| if (isDefaultConfig && endpoint) { | |
| return endpoint; | |
| } | |
| if (isDefaultConfig && endpoint) { | |
| return endpoint; | |
| } | |
| return endpoint && endpointsConfig?.[endpoint ?? ''] ? endpoint : null; | |
| } catch (error) { | |
| console.error(error); | |
| return null; | |
| } | |
| }; | |
| const getDefinedEndpoint = (endpointsConfig: TEndpointsConfig) => { | |
| const endpoints = mapEndpoints(endpointsConfig); | |
| return endpoints.find((e) => Object.hasOwn(endpointsConfig ?? {}, e)); | |
| }; | |
| const getDefaultEndpoint = ({ convoSetup, endpointsConfig }: TDefaultEndpoint): EModelEndpoint => { | |
| return ( | |
| getEndpointFromSetup(convoSetup, endpointsConfig) || | |
| getEndpointFromLocalStorage(endpointsConfig) || | |
| getDefinedEndpoint(endpointsConfig) | |
| ); | |
| }; | |
| export default getDefaultEndpoint; | |