Merge pull request #3544 from qvink/get_chat_completion_presets_from_preset_manager Get chat completion presets from preset manager
Signed| @@ -393,8 +393,8 @@ export let proxies = [ | |||
| 393 | ]; | 393 | ]; |
| 394 | export let selected_proxy = proxies[0]; | 394 | export let selected_proxy = proxies[0]; |
| 395 | 395 | ||
| 396 | let openai_setting_names; | 396 | export let openai_setting_names; |
| 397 | let openai_settings; | 397 | export let openai_settings; |
| 398 | 398 | ||
| 399 | /** @type {import('./PromptManager.js').PromptManager} */ | 399 | /** @type {import('./PromptManager.js').PromptManager} */ |
| 400 | export let promptManager = null; | 400 | export let promptManager = null; |
| @@ -21,6 +21,7 @@ import { groups, selected_group } from './group-chats.js'; | |||
| 21 | import { instruct_presets } from './instruct-mode.js'; | 21 | import { instruct_presets } from './instruct-mode.js'; |
| 22 | import { kai_settings } from './kai-settings.js'; | 22 | import { kai_settings } from './kai-settings.js'; |
| 23 | import { convertNovelPreset } from './nai-settings.js'; | 23 | import { convertNovelPreset } from './nai-settings.js'; |
| 24 | import { openai_settings, openai_setting_names, oai_settings } from './openai.js'; | ||
| 24 | import { Popup, POPUP_RESULT, POPUP_TYPE } from './popup.js'; | 25 | import { Popup, POPUP_RESULT, POPUP_TYPE } from './popup.js'; |
| 25 | import { context_presets, getContextSettings, power_user } from './power-user.js'; | 26 | import { context_presets, getContextSettings, power_user } from './power-user.js'; |
| 26 | import { SlashCommand } from './slash-commands/SlashCommand.js'; | 27 | import { 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 | } |
| 608 | 613 | ||
| 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 preset | 638 | // 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(); |