| | import type { TPreset, TPlugin } from 'librechat-data-provider'; |
| | import { EModelEndpoint } from 'librechat-data-provider'; |
| |
|
| | type TEndpoints = Array<string | EModelEndpoint>; |
| |
|
| | export const getPresetTitle = (preset: TPreset, mention?: boolean) => { |
| | const { |
| | endpoint, |
| | title: presetTitle, |
| | model, |
| | tools, |
| | promptPrefix, |
| | chatGptLabel, |
| | modelLabel, |
| | } = preset; |
| | const modelInfo = model ?? ''; |
| | let title = ''; |
| | let label = ''; |
| |
|
| | if (modelLabel) { |
| | label = modelLabel; |
| | } |
| |
|
| | if ( |
| | label && |
| | presetTitle != null && |
| | presetTitle && |
| | label.toLowerCase().includes(presetTitle.toLowerCase()) |
| | ) { |
| | title = label + ': '; |
| | label = ''; |
| | } else if (presetTitle != null && presetTitle && presetTitle.trim() !== 'New Chat') { |
| | title = presetTitle + ': '; |
| | } |
| |
|
| | if (mention === true) { |
| | return `${modelInfo}${label ? ` | ${label}` : ''}${ |
| | promptPrefix != null && promptPrefix ? ` | ${promptPrefix}` : '' |
| | }${ |
| | tools |
| | ? ` | ${tools |
| | .map((tool: TPlugin | string) => { |
| | if (typeof tool === 'string') { |
| | return tool; |
| | } |
| | return tool.pluginKey; |
| | }) |
| | .join(', ')}` |
| | : '' |
| | }`; |
| | } |
| |
|
| | return `${title}${modelInfo}${label ? ` (${label})` : ''}`.trim(); |
| | }; |
| |
|
| | |
| | export const removeUnavailableTools = ( |
| | preset: TPreset, |
| | availableTools: Record<string, TPlugin | undefined>, |
| | ) => { |
| | const newPreset = { ...preset }; |
| |
|
| | if (newPreset.tools && newPreset.tools.length > 0) { |
| | newPreset.tools = newPreset.tools |
| | .filter((tool) => { |
| | let pluginKey: string; |
| | if (typeof tool === 'string') { |
| | pluginKey = tool; |
| | } else { |
| | ({ pluginKey } = tool); |
| | } |
| |
|
| | return !!availableTools[pluginKey]; |
| | }) |
| | .map((tool) => { |
| | if (typeof tool === 'string') { |
| | return tool; |
| | } |
| | return tool.pluginKey; |
| | }); |
| | } |
| |
|
| | return newPreset; |
| | }; |
| |
|