Adjusted naming and validation
| @@ -111,7 +111,7 @@ const settings = { | ||
| 111 | 111 | const moduleWorker = new ModuleWorkerWrapper(synchronizeChat); |
| 112 | 112 | const webllmProvider = new WebLlmVectorProvider(); |
| 113 | 113 | const cachedSummaries = new Map(); |
| 114 | 114 | const vector_api_requires_urlvectorApiRequiresUrl = ['llamacpp', 'vllm', 'ollama', 'koboldcpp']; |
| 115 | 115 | |
| 116 | 116 | /** |
| 117 | 117 | * Gets the Collection ID for a file embedded in the chat. |
| @@ -886,11 +886,18 @@ function throwIfSourceInvalid() { | ||
| 886 | 886 | throw new Error('Vectors: API key missing', { cause: 'api_key_missing' }); |
| 887 | 887 | } |
| 888 | 888 | |
| 889 | - if (settings.source === 'ollama' && !textgenerationwebui_settings.server_urls[textgen_types.OLLAMA] || | |
| 889 | + if (vectorApiRequiresUrl.includes(settings.source) && settings.use_alt_endpoint) { | |
| 890 | - settings.source === 'vllm' && !textgenerationwebui_settings.server_urls[textgen_types.VLLM] || | |
| 890 | + if (!settings.alt_endpoint_url) { | |
| 891 | - settings.source === 'koboldcpp' && !textgenerationwebui_settings.server_urls[textgen_types.KOBOLDCPP] || | |
| 891 | + throw new Error('Vectors: API URL missing', { cause: 'api_url_missing' }); | |
| 892 | - settings.source === 'llamacpp' && !textgenerationwebui_settings.server_urls[textgen_types.LLAMACPP]) { | |
| 892 | + } | |
| 893 | - throw new Error('Vectors: API URL missing', { cause: 'api_url_missing' }); | |
| 893 | + } | |
| 894 | + else { | |
| 895 | + if (settings.source === 'ollama' && !textgenerationwebui_settings.server_urls[textgen_types.OLLAMA] || | |
| 896 | + settings.source === 'vllm' && !textgenerationwebui_settings.server_urls[textgen_types.VLLM] || | |
| 897 | + settings.source === 'koboldcpp' && !textgenerationwebui_settings.server_urls[textgen_types.KOBOLDCPP] || | |
| 898 | + settings.source === 'llamacpp' && !textgenerationwebui_settings.server_urls[textgen_types.LLAMACPP]) { | |
| 899 | + throw new Error('Vectors: API URL missing', { cause: 'api_url_missing' }); | |
| 900 | + } | |
| 894 | 901 | } |
| 895 | 902 | |
| 896 | 903 | if (settings.source === 'ollama' && !settings.ollama_model || settings.source === 'vllm' && !settings.vllm_model) { |
| @@ -1090,7 +1097,7 @@ function toggleSettings() { | ||
| 1090 | 1097 | $('#webllm_vectorsModel').toggle(settings.source === 'webllm'); |
| 1091 | 1098 | $('#koboldcpp_vectorsModel').toggle(settings.source === 'koboldcpp'); |
| 1092 | 1099 | $('#google_vectorsModel').toggle(settings.source === 'palm'); |
| 1093 | 1100 | $('#altEndpointUrlvector_altEndpointUrl').toggle(vector_api_requires_urlvectorApiRequiresUrl.includes(settings.source)); |
| 1094 | 1101 | if (settings.source === 'webllm') { |
| 1095 | 1102 | loadWebLlmModels(); |
| 1096 | 1103 | } |
| @@ -1471,13 +1478,13 @@ jQuery(async () => { | ||
| 1471 | 1478 | saveSettingsDebounced(); |
| 1472 | 1479 | toggleSettings(); |
| 1473 | 1480 | }); |
| 1474 | 1481 | $('#altEndpointUrl_enabledvector_altEndpointUrl_enabled').prop('checked', settings.use_alt_endpoint).on('input', () => { |
| 1475 | 1482 | settings.use_alt_endpoint = $('#altEndpointUrl_enabledvector_altEndpointUrl_enabled').prop('checked'); |
| 1476 | 1483 | Object.assign(extension_settings.vectors, settings); |
| 1477 | 1484 | saveSettingsDebounced(); |
| 1478 | 1485 | }); |
| 1479 | 1486 | $('#altEndpoint_addressvector_altEndpoint_address').val(settings.alt_endpoint_url).on('change', () => { |
| 1480 | 1487 | settings.alt_endpoint_url = String($('#altEndpoint_addressvector_altEndpoint_address').val()); |
| 1481 | 1488 | Object.assign(extension_settings.vectors, settings); |
| 1482 | 1489 | saveSettingsDebounced(); |
| 1483 | 1490 | }); |
| @@ -25,15 +25,15 @@ | ||
| 25 | 25 | <option value="webllm" data-i18n="WebLLM Extension">WebLLM Extension</option> |
| 26 | 26 | </select> |
| 27 | 27 | </div> |
| 28 | 28 | <div class="flex-container flexFlowColumn" id="altEndpointUrlvector_altEndpointUrl"> |
| 29 | 29 | <label class="checkbox_label" for="altEndpointUrl_enabledvector_altEndpointUrl_enabled" title="Enable secondary endpoint URL usage, instead of the main one."> |
| 30 | 30 | <input id="altEndpointUrl_enabledvector_altEndpointUrl_enabled" type="checkbox" class="checkbox"> |
| 31 | 31 | <span data-i18n="Use secondary URL">Use secondary URL</span> |
| 32 | 32 | </label> |
| 33 | 33 | <label for="altEndpoint_addressvector_altEndpoint_address" data-i18n="Secondary Embedding endpoint URL"> |
| 34 | 34 | Secondary Embedding endpoint URL |
| 35 | 35 | </label> |
| 36 | 36 | <input id="altEndpoint_addressvector_altEndpoint_address" class="text_pole" type="text" placeholder="URL for secondary endpoint" /> |
| 37 | 37 | </div> |
| 38 | 38 | <div class="flex-container flexFlowColumn" id="webllm_vectorsModel"> |
| 39 | 39 | <label for="vectors_webllm_model" data-i18n="Vectorization Model"> |