diff --git a/public/scripts/extensions/expressions/index.js b/public/scripts/extensions/expressions/index.js
index c36c7f5e3..3d9395774 100644
--- a/public/scripts/extensions/expressions/index.js
+++ b/public/scripts/extensions/expressions/index.js
@@ -83,6 +83,7 @@ const EXPRESSION_API = {
extras: 1,
llm: 2,
webllm: 3,
+ none: 99,
};
let expressionsList = null;
@@ -692,6 +693,11 @@ async function classifyCallback(/** @type {{api: string?, filter: string?, promp
const expressionApi = EXPRESSION_API[api] || extension_settings.expressions.api;
const filterAvailable = !isFalseBoolean(filter);
+ if (expressionApi === EXPRESSION_API.none) {
+ toastr.warning('No classifier API selected');
+ return '';
+ }
+
if (!modules.includes('classify') && expressionApi == EXPRESSION_API.extras) {
toastr.warning('Text classification is disabled or not available');
return '';
@@ -1061,7 +1067,7 @@ export async function getExpressionLabel(text, expressionsApi = extension_settin
return parseLlmResponse(emotionResponse, expressionsList);
}
// Extras
- default: {
+ case EXPRESSION_API.extras: {
const url = new URL(getApiUrl());
url.pathname = '/api/classify';
@@ -1079,6 +1085,15 @@ export async function getExpressionLabel(text, expressionsApi = extension_settin
return data.classification[0].label;
}
} break;
+ // None
+ case EXPRESSION_API.none: {
+ // Return empty, the fallback expression will be used
+ return '';
+ }
+ default: {
+ toastr.error('Invalid API selected');
+ return '';
+ }
}
} catch (error) {
toastr.error('Could not classify expression. Check the console or your backend for more information.');
@@ -2060,7 +2075,7 @@ async function fetchImagesNoCache() {
function migrateSettings() {
if (extension_settings.expressions.api === undefined) {
- extension_settings.expressions.api = EXPRESSION_API.local;
+ extension_settings.expressions.api = EXPRESSION_API.none;
saveSettingsDebounced();
}
@@ -2142,7 +2157,7 @@ function migrateSettings() {
$('#open_chat_expressions').hide();
await renderAdditionalExpressionSettings();
- $('#expression_api').val(extension_settings.expressions.api ?? EXPRESSION_API.extras);
+ $('#expression_api').val(extension_settings.expressions.api ?? EXPRESSION_API.none);
$('.expression_llm_prompt_block').toggle([EXPRESSION_API.llm, EXPRESSION_API.webllm].includes(extension_settings.expressions.api));
$('#expression_llm_prompt').val(extension_settings.expressions.llmPrompt ?? '');
$('#expression_llm_prompt').on('input', function () {
diff --git a/public/scripts/extensions/expressions/settings.html b/public/scripts/extensions/expressions/settings.html
index 98938cf4d..36d725ba2 100644
--- a/public/scripts/extensions/expressions/settings.html
+++ b/public/scripts/extensions/expressions/settings.html
@@ -22,6 +22,7 @@
Select the API for classifying expressions.