diff --git a/public/index.html b/public/index.html index c6117f665..b10a66d46 100644 --- a/public/index.html +++ b/public/index.html @@ -2954,16 +2954,31 @@

Groq Model

diff --git a/public/scripts/extensions/caption/index.js b/public/scripts/extensions/caption/index.js index 0f740cc9a..04812cead 100644 --- a/public/scripts/extensions/caption/index.js +++ b/public/scripts/extensions/caption/index.js @@ -403,6 +403,7 @@ jQuery(async function () { (extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'openai' && (secret_state[SECRET_KEYS.OPENAI] || extension_settings.caption.allow_reverse_proxy)) || (extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'openrouter' && secret_state[SECRET_KEYS.OPENROUTER]) || (extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'zerooneai' && secret_state[SECRET_KEYS.ZEROONEAI]) || + (extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'groq' && secret_state[SECRET_KEYS.GROQ]) || (extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'mistral' && (secret_state[SECRET_KEYS.MISTRALAI] || extension_settings.caption.allow_reverse_proxy)) || (extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'google' && (secret_state[SECRET_KEYS.MAKERSUITE] || extension_settings.caption.allow_reverse_proxy)) || (extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'anthropic' && (secret_state[SECRET_KEYS.CLAUDE] || extension_settings.caption.allow_reverse_proxy)) || diff --git a/public/scripts/extensions/caption/settings.html b/public/scripts/extensions/caption/settings.html index 318577277..f6a6fc7a3 100644 --- a/public/scripts/extensions/caption/settings.html +++ b/public/scripts/extensions/caption/settings.html @@ -21,6 +21,7 @@ + @@ -60,6 +61,9 @@ + + + diff --git a/public/scripts/extensions/shared.js b/public/scripts/extensions/shared.js index 950105ce1..444231527 100644 --- a/public/scripts/extensions/shared.js +++ b/public/scripts/extensions/shared.js @@ -36,7 +36,7 @@ export async function getMultimodalCaption(base64Img, prompt) { const isVllm = extension_settings.caption.multimodal_api === 'vllm'; const base64Bytes = base64Img.length * 0.75; const compressionLimit = 2 * 1024 * 1024; - if ((['google', 'openrouter', 'mistral'].includes(extension_settings.caption.multimodal_api) && base64Bytes > compressionLimit) || isOoba || isKoboldCpp) { + if ((['google', 'openrouter', 'mistral', 'groq'].includes(extension_settings.caption.multimodal_api) && base64Bytes > compressionLimit) || isOoba || isKoboldCpp) { const maxSide = 1024; base64Img = await createThumbnail(base64Img, maxSide, maxSide, 'image/jpeg'); } @@ -135,6 +135,10 @@ function throwIfInvalidModel(useReverseProxy) { throw new Error('01.AI API key is not set.'); } + if (extension_settings.caption.multimodal_api === 'groq' && !secret_state[SECRET_KEYS.GROQ]) { + throw new Error('Groq API key is not set.'); + } + if (extension_settings.caption.multimodal_api === 'google' && !secret_state[SECRET_KEYS.MAKERSUITE] && !useReverseProxy) { throw new Error('Google AI Studio API key is not set.'); } diff --git a/public/scripts/openai.js b/public/scripts/openai.js index 20c141316..670fd2968 100644 --- a/public/scripts/openai.js +++ b/public/scripts/openai.js @@ -4196,7 +4196,10 @@ async function onModelChange() { if (oai_settings.max_context_unlocked) { $('#openai_max_context').attr('max', unlocked_max); } - else if (oai_settings.groq_model.includes('llama-3.1')) { + else if (oai_settings.groq_model.includes('llama-3.2') && oai_settings.groq_model.includes('-preview')) { + $('#openai_max_context').attr('max', max_8k); + } + else if (oai_settings.groq_model.includes('llama-3.2') || oai_settings.groq_model.includes('llama-3.1')) { $('#openai_max_context').attr('max', max_128k); } else if (oai_settings.groq_model.includes('llama3-groq')) { diff --git a/src/endpoints/openai.js b/src/endpoints/openai.js index af1f107e2..e7760a8fb 100644 --- a/src/endpoints/openai.js +++ b/src/endpoints/openai.js @@ -55,6 +55,10 @@ router.post('/caption-image', jsonParser, async (request, response) => { key = readSecret(request.user.directories, SECRET_KEYS.MISTRALAI); } + if (request.body.api === 'groq') { + key = readSecret(request.user.directories, SECRET_KEYS.GROQ); + } + if (!key && !request.body.reverse_proxy && ['custom', 'ooba', 'koboldcpp', 'vllm'].includes(request.body.api) === false) { console.log('No key found for API', request.body.api); return response.sendStatus(400); @@ -111,6 +115,10 @@ router.post('/caption-image', jsonParser, async (request, response) => { apiUrl = 'https://api.01.ai/v1/chat/completions'; } + if (request.body.api === 'groq') { + apiUrl = 'https://api.groq.com/openai/v1/chat/completions'; + } + if (request.body.api === 'mistral') { apiUrl = 'https://api.mistral.ai/v1/chat/completions'; }