feat: add function to retrieve chat completion preset from settings
| @@ -4104,6 +4104,19 @@ async function getStatusOpen() { | |||
| 4104 | } | 4104 | } |
| 4105 | 4105 | ||
| 4106 | /** | 4106 | /** |
| 4107 | * Get OpenAI preset body from settings | ||
| 4108 | * @param {ChatCompletionSettings} settings The settings object | ||
| 4109 | * @returns {Object} The preset body object | ||
| 4110 | */ | ||
| 4111 | export function getChatCompletionPreset(settings = oai_settings) { | ||
| 4112 | const presetBody = {}; | ||
| 4113 | for (const [presetKey, [, settingsKey]] of Object.entries(settingsToUpdate)) { | ||
| 4114 | presetBody[presetKey] = settings[settingsKey]; | ||
| 4115 | } | ||
| 4116 | return structuredClone(presetBody); | ||
| 4117 | } | ||
| 4118 | |||
| 4119 | /** | ||
| 4107 | * Persist a settings preset with the given name | 4120 | * Persist a settings preset with the given name |
| 4108 | * | 4121 | * |
| 4109 | * @param {string} name - Name of the preset | 4122 | * @param {string} name - Name of the preset |
| @@ -4112,11 +4125,7 @@ async function getStatusOpen() { | |||
| 4112 | * @returns {Promise<void>} | 4125 | * @returns {Promise<void>} |
| 4113 | */ | 4126 | */ |
| 4114 | async function saveOpenAIPreset(name, settings, triggerUi = true) { | 4127 | async function saveOpenAIPreset(name, settings, triggerUi = true) { |
| 4115 | const presetBody = {}; | 4128 | const presetBody = getChatCompletionPreset(settings); |
| 4116 | for (const [presetKey, [, settingsKey]] of Object.entries(settingsToUpdate)) { | ||
| 4117 | presetBody[presetKey] = settings[settingsKey]; | ||
| 4118 | } | ||
| 4119 | |||
| 4120 | const savePresetSettings = await fetch('/api/presets/save', { | 4129 | const savePresetSettings = await fetch('/api/presets/save', { |
| 4121 | method: 'POST', | 4130 | method: 'POST', |
| 4122 | headers: getRequestHeaders(), | 4131 | headers: getRequestHeaders(), |