Add Gemini embedding model for vector storage
| @@ -63,6 +63,7 @@ const settings = { | |||
| 63 | ollama_keep: false, | 63 | ollama_keep: false, |
| 64 | vllm_model: '', | 64 | vllm_model: '', |
| 65 | webllm_model: '', | 65 | webllm_model: '', |
| 66 | google_model: 'text-embedding-004', | ||
| 66 | summarize: false, | 67 | summarize: false, |
| 67 | summarize_sent: false, | 68 | summarize_sent: false, |
| 68 | summary_source: 'main', | 69 | summary_source: 'main', |
| @@ -789,6 +790,9 @@ function getVectorsRequestBody(args = {}) { | |||
| 789 | case 'webllm': | 790 | case 'webllm': |
| 790 | body.model = extension_settings.vectors.webllm_model; | 791 | body.model = extension_settings.vectors.webllm_model; |
| 791 | break; | 792 | break; |
| 793 | case 'palm': | ||
| 794 | body.model = extension_settings.vectors.google_model; | ||
| 795 | break; | ||
| 792 | default: | 796 | default: |
| 793 | break; | 797 | break; |
| 794 | } | 798 | } |
| @@ -1082,6 +1086,7 @@ function toggleSettings() { | |||
| 1082 | $('#nomicai_apiKey').toggle(settings.source === 'nomicai'); | 1086 | $('#nomicai_apiKey').toggle(settings.source === 'nomicai'); |
| 1083 | $('#webllm_vectorsModel').toggle(settings.source === 'webllm'); | 1087 | $('#webllm_vectorsModel').toggle(settings.source === 'webllm'); |
| 1084 | $('#koboldcpp_vectorsModel').toggle(settings.source === 'koboldcpp'); | 1088 | $('#koboldcpp_vectorsModel').toggle(settings.source === 'koboldcpp'); |
| 1089 | $('#google_vectorsModel').toggle(settings.source === 'palm'); | ||
| 1085 | if (settings.source === 'webllm') { | 1090 | if (settings.source === 'webllm') { |
| 1086 | loadWebLlmModels(); | 1091 | loadWebLlmModels(); |
| 1087 | } | 1092 | } |
| @@ -1738,6 +1743,12 @@ jQuery(async () => { | |||
| 1738 | toastr.success('WebLLM model loaded'); | 1743 | toastr.success('WebLLM model loaded'); |
| 1739 | }); | 1744 | }); |
| 1740 | 1745 | ||
| 1746 | $('#vectors_google_model').val(settings.google_model).on('input', () => { | ||
| 1747 | settings.google_model = String($('#vectors_google_model').val()); | ||
| 1748 | Object.assign(extension_settings.vectors, settings); | ||
| 1749 | saveSettingsDebounced(); | ||
| 1750 | }); | ||
| 1751 | |||
| 1741 | $('#api_key_nomicai').toggleClass('success', !!secret_state[SECRET_KEYS.NOMICAI]); | 1752 | $('#api_key_nomicai').toggleClass('success', !!secret_state[SECRET_KEYS.NOMICAI]); |
| 1742 | 1753 | ||
| 1743 | toggleSettings(); | 1754 | toggleSettings(); |
| @@ -120,7 +120,16 @@ | |||
| 120 | Hint: Set the URL in the API connection settings. | 120 | Hint: Set the URL in the API connection settings. |
| 121 | </i> | 121 | </i> |
| 122 | </div> | 122 | </div> |
| 123 | 123 | <div class="flex-container flexFlowColumn" id="google_vectorsModel"> | |
| 124 | <label for="vectors_google_model" data-i18n="Vectorization Model"> | ||
| 125 | Vectorization Model | ||
| 126 | </label> | ||
| 127 | <select id="vectors_google_model" class="text_pole"> | ||
| 128 | <option value="gemini-embedding-exp-03-07">gemini-embedding-exp-03-07</option> | ||
| 129 | <option value="text-embedding-004">text-embedding-004</option> | ||
| 130 | <option value="embedding-001">embedding-001</option> | ||
| 131 | </select> | ||
| 132 | </div> | ||
| 124 | <div class="flex-container alignItemsCenter" id="nomicai_apiKey"> | 133 | <div class="flex-container alignItemsCenter" id="nomicai_apiKey"> |
| 125 | <label for="api_key_nomicai" class="flex1"> | 134 | <label for="api_key_nomicai" class="flex1"> |
| 126 | <span data-i18n="NomicAI API Key">NomicAI API Key</span> | 135 | <span data-i18n="NomicAI API Key">NomicAI API Key</span> |
| @@ -179,8 +179,7 @@ function getSourceSettings(source, request) { | |||
| 179 | }; | 179 | }; |
| 180 | case 'palm': | 180 | case 'palm': |
| 181 | return { | 181 | return { |
| 182 | // TODO: Add support for multiple models | 182 | model: String(request.body.model || 'text-embedding-004'), |
| 183 | model: 'text-embedding-004', | ||
| 184 | }; | 183 | }; |
| 185 | case 'mistral': | 184 | case 'mistral': |
| 186 | return { | 185 | return { |