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 | 394 | export let selected_proxy = proxies[0]; |
| 395 | 395 | |
| 396 | 396 | export let openai_setting_names; |
| 397 | 397 | export let openai_settings; |
| 398 | 398 | |
| 399 | 399 | /** @type {import('./PromptManager.js').PromptManager} */ |
| 400 | 400 | export let promptManager = null; |
| @@ -21,6 +21,7 @@ import { groups, selected_group } from './group-chats.js'; | ||
| 21 | 21 | import { instruct_presets } from './instruct-mode.js'; |
| 22 | 22 | import { kai_settings } from './kai-settings.js'; |
| 23 | 23 | import { convertNovelPreset } from './nai-settings.js'; |
| 24 | +import { openai_settings, openai_setting_names, oai_settings } from './openai.js'; | |
| 24 | 25 | import { Popup, POPUP_RESULT, POPUP_TYPE } from './popup.js'; |
| 25 | 26 | import { context_presets, getContextSettings, power_user } from './power-user.js'; |
| 26 | 27 | import { SlashCommand } from './slash-commands/SlashCommand.js'; |
| @@ -456,6 +457,10 @@ class PresetManager { | ||
| 456 | 457 | presets = textgenerationwebui_presets; |
| 457 | 458 | preset_names = textgenerationwebui_preset_names; |
| 458 | 459 | break; |
| 460 | + case 'openai': | |
| 461 | + presets = openai_settings; | |
| 462 | + preset_names = openai_setting_names; | |
| 463 | + break; | |
| 459 | 464 | case 'context': |
| 460 | 465 | presets = context_presets; |
| 461 | 466 | preset_names = context_presets.map(x => x.name); |
| @@ -606,6 +611,30 @@ class PresetManager { | ||
| 606 | 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 | 638 | // pass no arguments to delete current preset |
| 610 | 639 | async deletePreset(name) { |
| 611 | 640 | const { preset_names, presets } = this.getPresetList(); |