Merge pull request #3544 from qvink/get_chat_completion_presets_from_preset_manager Get chat completion presets from preset manager

e71427953b1fc7525dfd01256d1440501a3010b2

Cohee <18619528+Cohee1207@users.noreply.github.com>

Signed
2 files changed, +31 -2Showing whitespace changes
public/scripts/openai.js+2 -2
@@ -393,8 +393,8 @@ export let proxies = [
393];393];
394export let selected_proxy = proxies[0];394export let selected_proxy = proxies[0];
395395
396let openai_setting_names;396export let openai_setting_names;
397let openai_settings;397export let openai_settings;
398398
399/** @type {import('./PromptManager.js').PromptManager} */399/** @type {import('./PromptManager.js').PromptManager} */
400export let promptManager = null;400export let promptManager = null;
public/scripts/preset-manager.js+29 -0
@@ -21,6 +21,7 @@ import { groups, selected_group } from './group-chats.js';
21import { instruct_presets } from './instruct-mode.js';21import { instruct_presets } from './instruct-mode.js';
22import { kai_settings } from './kai-settings.js';22import { kai_settings } from './kai-settings.js';
23import { convertNovelPreset } from './nai-settings.js';23import { convertNovelPreset } from './nai-settings.js';
24import { openai_settings, openai_setting_names, oai_settings } from './openai.js';
24import { Popup, POPUP_RESULT, POPUP_TYPE } from './popup.js';25import { Popup, POPUP_RESULT, POPUP_TYPE } from './popup.js';
25import { context_presets, getContextSettings, power_user } from './power-user.js';26import { context_presets, getContextSettings, power_user } from './power-user.js';
26import { SlashCommand } from './slash-commands/SlashCommand.js';27import { SlashCommand } from './slash-commands/SlashCommand.js';
@@ -456,6 +457,10 @@ class PresetManager {
456 presets = textgenerationwebui_presets;457 presets = textgenerationwebui_presets;
457 preset_names = textgenerationwebui_preset_names;458 preset_names = textgenerationwebui_preset_names;
458 break;459 break;
460 case 'openai':
461 presets = openai_settings;
462 preset_names = openai_setting_names;
463 break;
459 case 'context':464 case 'context':
460 presets = context_presets;465 presets = context_presets;
461 preset_names = context_presets.map(x => x.name);466 preset_names = context_presets.map(x => x.name);
@@ -606,6 +611,30 @@ class PresetManager {
606 return settings;611 return settings;
607 }612 }
608613
614 getCompletionPresetByName(name) {
615 // Retrieve a completion preset by name. Return undefined if not found.
616 let { presets, preset_names } = this.getPresetList();
617 let preset;
618
619 // Some APIs use an array of names, others use an object of {name: index}
620 if (Array.isArray(preset_names)) { // array of names
621 if (preset_names.includes(name)) {
622 preset = presets[preset_names.indexOf(name)];
623 }
624 } else { // object of {names: index}
625 if (preset_names[name] !== undefined) {
626 preset = presets[preset_names[name]];
627 }
628 }
629
630 if (preset === undefined) {
631 console.error(`Preset ${name} not found`);
632 }
633
634 // if the preset isn't found, returns undefined
635 return preset;
636 }
637
609 // pass no arguments to delete current preset638 // pass no arguments to delete current preset
610 async deletePreset(name) {639 async deletePreset(name) {
611 const { preset_names, presets } = this.getPresetList();640 const { preset_names, presets } = this.getPresetList();