diff --git a/package.json b/package.json index cb7f02e..ac59abf 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "speakeasy": "^2.0.0" }, "optionalDependencies": { + "@aws-sdk/client-bedrock": "^3.700.0", "@aws-sdk/client-bedrock-runtime": "^3.700.0", "@aws-sdk/client-transcribe-streaming": "^3.1017.0", "@aws-sdk/client-s3": "^3.700.0", diff --git a/public/components/admin.html b/public/components/admin.html index 9edf3e8..01d2aff 100644 --- a/public/components/admin.html +++ b/public/components/admin.html @@ -263,6 +263,110 @@ + +
+
+

Text-to-Speech (TTS)

+ Loading... +
+
+
Loading...
+ + +
+ +
+ + +
+
+

Click Search to query available voices from your configured TTS provider.

+
+ + +
+ +
+ + +
+ +
+ + +
+

+
+
+
+ + +
+
+

Speech-to-Text (STT)

+ Loading... +
+
+
Loading...
+ + +
+ +
+ + +
+
+

Click Search to query available STT models from your configured provider.

+
+ + +
+ +
+ + +
+ +
+
+
+ + +
+
+

Embedding Models

+ Loading... +
+
+
Loading...
+ + +
+ +
+ + +
+
+

Click Search to query available embedding models from your configured provider.

+
+ + +
+ +
+ + +
+
+
+
+
+

Reset Settings

diff --git a/public/js/admin.js b/public/js/admin.js index a73332c..96a8ecd 100644 --- a/public/js/admin.js +++ b/public/js/admin.js @@ -590,6 +590,10 @@ if (e.target.closest('#btn-add-custom-model')) addCustomModel(); if (e.target.closest('#btn-save-default-model')) saveDefaultModel(); if (e.target.closest('#btn-clear-all-models')) clearAllModels(); + if (e.target.closest('.admin-model-test-btn')) { + var btn = e.target.closest('.admin-model-test-btn'); + testModel(btn.dataset.mid, btn); + } }); // Allow Enter key to trigger search @@ -649,12 +653,15 @@ } else { container.innerHTML = data.models.map(function(m) { var checked = m.enabled !== false ? 'checked' : ''; - return '