Repository: ai-shifu/ChatALL (language: javascript)

Issue:
Add Meta's Llama-4 from Groq cloud
We can add llama4 Scout & Maverick via Groq cloud now

https://www.llama.com/llama4/

https://console.groq.com/docs/models:
- meta-llama/llama-4-scout-17b-16e-instruct
- meta-llama/llama-4-maverick-17b-128e-instruct


Discussion / hints:
@sunner please help make its icon, thanks 😃 
![Image](https://github.com/user-attachments/assets/23da193d-5cf8-4c2d-bd3e-7231eaeb9ebc)
![Image](https://github.com/user-attachments/assets/74ffe7cd-6439-4c8b-bd09-97a153c64b49)
@PeterDaveHello Here they are!
@sunner I think one pic was missing 😅 
Oh? Which one? I think there should be two pics. One for Llama 4 Scout, one for Llama 4 Maverick.
Looks like one of them didn't display properly earlier, looks good now, thanks!

Fix patch:
diff --git a/public/bots/llama-4-maverick-groq-logo.png b/public/bots/llama-4-maverick-groq-logo.png
new file mode 100644
index 000000000..15c6c7f29
Binary files /dev/null and b/public/bots/llama-4-maverick-groq-logo.png differ
diff --git a/public/bots/llama-4-scout-groq-logo.png b/public/bots/llama-4-scout-groq-logo.png
new file mode 100644
index 000000000..37017d040
Binary files /dev/null and b/public/bots/llama-4-scout-groq-logo.png differ
diff --git a/src/bots/groq/Llama4MaverickGroqAPIBot.js b/src/bots/groq/Llama4MaverickGroqAPIBot.js
new file mode 100644
index 000000000..02bd44140
--- /dev/null
+++ b/src/bots/groq/Llama4MaverickGroqAPIBot.js
@@ -0,0 +1,10 @@
+import GroqAPIBot from "./GroqAPIBot";
+
+export default class Llama4MaverickGroqAPIBot extends GroqAPIBot {
+  static _className = "Llama4MaverickGroqAPIBot";
+  static _logoFilename = "llama-4-maverick-groq-logo.png";
+  static _model = "meta-llama/llama-4-maverick-17b-128e-instruct";
+  constructor() {
+    super();
+  }
+}
diff --git a/src/bots/groq/Llama4ScoutGroqAPIBot.js b/src/bots/groq/Llama4ScoutGroqAPIBot.js
new file mode 100644
index 000000000..6437d03db
--- /dev/null
+++ b/src/bots/groq/Llama4ScoutGroqAPIBot.js
@@ -0,0 +1,10 @@
+import GroqAPIBot from "./GroqAPIBot";
+
+export default class Llama4ScoutGroqAPIBot extends GroqAPIBot {
+  static _className = "Llama4ScoutGroqAPIBot";
+  static _logoFilename = "llama-4-scout-groq-logo.png";
+  static _model = "meta-llama/llama-4-scout-17b-16e-instruct";
+  constructor() {
+    super();
+  }
+}
diff --git a/src/bots/index.js b/src/bots/index.js
index c3780b5e3..1ce6ea8f3 100644
--- a/src/bots/index.js
+++ b/src/bots/index.js
@@ -34,6 +34,8 @@ import Gemma7bGroqAPIBot from "@/bots/groq/Gemma7bGroqAPIBot";
 import Gemma29bGroqAPIBot from "@/bots/groq/Gemma29bGroqAPIBot";
 import Llama38bGroqAPIBot from "@/bots/groq/Llama38bGroqAPIBot";
 import Llama370bGroqAPIBot from "@/bots/groq/Llama370bGroqAPIBot";
+import Llama4ScoutGroqAPIBot from "@/bots/groq/Llama4ScoutGroqAPIBot";
+import Llama4MaverickGroqAPIBot from "@/bots/groq/Llama4MaverickGroqAPIBot";
 import Mixtral8x7bGroqAPIBot from "@/bots/groq/Mixtral8x7bGroqAPIBot";
 import HuggingChatBot from "@/bots/huggingface/HuggingChatBot";
 import QianWenBot from "./QianWenBot";
@@ -108,6 +110,8 @@ const all = [
   Gemma29bGroqAPIBot.getInstance(),
   Llama38bGroqAPIBot.getInstance(),
   Llama370bGroqAPIBot.getInstance(),
+  Llama4ScoutGroqAPIBot.getInstance(),
+  Llama4MaverickGroqAPIBot.getInstance(),
   Mixtral8x7bGroqAPIBot.getInstance(),
   KimiBot.getInstance(),
   MistralBot.getInstance(),
@@ -210,6 +214,8 @@ export const botTags = {
     bots.getBotByClassName("Gemma29bGroqAPIBot"),
     bots.getBotByClassName("Llama38bGroqAPIBot"),
     bots.getBotByClassName("Llama370bGroqAPIBot"),
+    bots.getBotByClassName("Llama4ScoutGroqAPIBot"),
+    bots.getBotByClassName("Llama4MaverickGroqAPIBot"),
     bots.getBotByClassName("Mixtral8x7bGroqAPIBot"),
     bots.getBotByClassName("GrokBetaAPIBot"),
     bots.getBotByClassName("Grok2APIBot"),
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json
index 550cf5686..1a563c5ba 100644
--- a/src/i18n/locales/de.json
+++ b/src/i18n/locales/de.json
@@ -304,6 +304,8 @@
     "name": "Groq API",
     "llama3-8b-8192": "Llama 3 8b",
     "llama3-70b-8192": "Llama 3 70b",
+    "meta-llamallama-4-maverick-17b-128e-instruct": "Llama 4 Maverick",
+    "meta-llamallama-4-scout-17b-16e-instruct": "Llama 4 Scout",
     "mixtral-8x7b-32768": "Mixtral 8x7b",
     "gemma-7b-it": "Gemma 7b",
     "gemma2-9b-it": "Gemma2 9b"
diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json
index c84e3396f..a5e7be57b 100644
--- a/src/i18n/locales/en.json
+++ b/src/i18n/locales/en.json
@@ -307,6 +307,8 @@
     "name": "Groq API",
     "llama3-8b-8192": "Llama 3 8b",
     "llama3-70b-8192": "Llama 3 70b",
+    "meta-llamallama-4-maverick-17b-128e-instruct": "Llama 4 Maverick",
+    "meta-llamallama-4-scout-17b-16e-instruct": "Llama 4 Scout",
     "mixtral-8x7b-32768": "Mixtral 8x7b",
     "gemma-7b-it": "Gemma 7b",
     "gemma2-9b-it": "Gemma2 9b"
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index 2a0166e2b..c612f8fde 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -304,6 +304,8 @@
     "name": "Groq API",
     "llama3-8b-8192": "Llama 3 8b",
     "llama3-70b-8192": "Llama 3 70b",
+    "meta-llamallama-4-maverick-17b-128e-instruct": "Llama 4 Maverick",
+    "meta-llamallama-4-scout-17b-16e-instruct": "Llama 4 Scout",
     "mixtral-8x7b-32768": "Mixtral 8x7b",
     "gemma-7b-it": "Gemma 7b",
     "gemma2-9b-it": "Gemma2 9b"
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json
index 2a80a71ee..73feb6e56 100644
--- a/src/i18n/locales/fr.json
+++ b/src/i18n/locales/fr.json
@@ -304,6 +304,8 @@
     "name": "Groq API",
     "llama3-8b-8192": "Llama 3 8b",
     "llama3-70b-8192": "Llama 3 70b",
+    "meta-llamallama-4-maverick-17b-128e-instruct": "Llama 4 Maverick",
+    "meta-llamallama-4-scout-17b-16e-instruct": "Llama 4 Scout",
     "mixtral-8x7b-32768": "Mixtral 8x7b",
     "gemma-7b-it": "Gemma 7b",
     "gemma2-9b-it": "Gemma2 9b"
diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json
index e8c7d8e5a..b19d9b48e 100644
--- a/src/i18n/locales/it.json
+++ b/src/i18n/locales/it.json
@@ -306,6 +306,8 @@
     "name": "Groq API",
     "llama3-8b-8192": "Llama 3 8b",
     "llama3-70b-8192": "Llama 3 70b",
+    "meta-llamallama-4-maverick-17b-128e-instruct": "Llama 4 Maverick",
+    "meta-llamallama-4-scout-17b-16e-instruct": "Llama 4 Scout",
     "mixtral-8x7b-32768": "Mixtral 8x7b",
     "gemma-7b-it": "Gemma 7b",
     "gemma2-9b-it": "Gemma2 9b"
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json
index 19ef1f5d2..84a37b04d 100644
--- a/src/i18n/locales/ja.json
+++ b/src/i18n/locales/ja.json
@@ -304,6 +304,8 @@
     "name": "Groq API",
     "llama3-8b-8192": "Llama 3 8b",
     "llama3-70b-8192": "Llama 3 70b",
+    "meta-llamallama-4-maverick-17b-128e-instruct": "Llama 4 Maverick",
+    "meta-llamallama-4-scout-17b-16e-instruct": "Llama 4 Scout",
     "mixtral-8x7b-32768": "Mixtral 8x7b",
     "gemma-7b-it": "Gemma 7b",
     "gemma2-9b-it": "Gemma2 9b"
diff --git a/src/i18n/locales/ko.json b/src/i18n/locales/ko.json
index 583ce3919..212ed6f9b 100644
--- a/src/i18n/locales/ko.json
+++ b/src/i18n/locales/ko.json
@@ -307,6 +307,8 @@
     "name": "Groq API",
     "llama3-8b-8192": "Llama 3 8b",
     "llama3-70b-8192": "Llama 3 70b",
+    "meta-llamallama-4-maverick-17b-128e-instruct": "Llama 4 Maverick",
+    "meta-llamallama-4-scout-17b-16e-instruct": "Llama 4 Scout",
     "mixtral-8x7b-32768": "Mixtral 8x7b",
     "gemma-7b-it": "Gemma 7b",
     "gemma2-9b-it": "Gemma2 9b"
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json
index 79ca19797..205103c8f 100644
--- a/src/i18n/locales/ru.json
+++ b/src/i18n/locales/ru.json
@@ -304,6 +304,8 @@
     "name": "Groq API",
     "llama3-8b-8192": "Llama 3 8b",
     "llama3-70b-8192": "Llama 3 70b",
+    "meta-llamallama-4-maverick-17b-128e-instruct": "Llama 4 Maverick",
+    "meta-llamallama-4-scout-17b-16e-instruct": "Llama 4 Scout",
     "mixtral-8x7b-32768": "Mixtral 8x7b",
     "gemma-7b-it": "Gemma 7b",
     "gemma2-9b-it": "Gemma2 9b"
diff --git a/src/i18n/locales/vi.json b/src/i18n/locales/vi.json
index fb9f9515d..a789fc311 100644
--- a/src/i18n/locales/vi.json
+++ b/src/i18n/locales/vi.json
@@ -283,6 +283,8 @@
     "name": "Groq API",
     "llama3-8b-8192": "Llama 3 8b",
     "llama3-70b-8192": "Llama 3 70b",
+    "meta-llamallama-4-maverick-17b-128e-instruct": "Llama 4 Maverick",
+    "meta-llamallama-4-scout-17b-16e-instruct": "Llama 4 Scout",
     "mixtral-8x7b-32768": "Mixtral 8x7b",
     "gemma-7b-it": "Gemma 7b",
     "gemma2-9b-it": "Gemma2 9b"
diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json
index 7473ee59b..a2a5b237d 100644
--- a/src/i18n/locales/zh.json
+++ b/src/i18n/locales/zh.json
@@ -304,6 +304,8 @@
     "name": "Groq API",
     "llama3-8b-8192": "Llama 3 8b",
     "llama3-70b-8192": "Llama 3 70b",
+    "meta-llamallama-4-maverick-17b-128e-instruct": "Llama 4 Maverick",
+    "meta-llamallama-4-scout-17b-16e-instruct": "Llama 4 Scout",
     "mixtral-8x7b-32768": "Mixtral 8x7b",
     "gemma-7b-it": "Gemma 7b",
     "gemma2-9b-it": "Gemma2 9b"
diff --git a/src/i18n/locales/zhtw.json b/src/i18n/locales/zhtw.json
index 678ec4008..fa5aebb17 100644
--- a/src/i18n/locales/zhtw.json
+++ b/src/i18n/locales/zhtw.json
@@ -304,6 +304,8 @@
     "name": "Groq API",
     "llama3-8b-8192": "Llama 3 8b",
     "llama3-70b-8192": "Llama 3 70b",
+    "meta-llamallama-4-maverick-17b-128e-instruct": "Llama 4 Maverick",
+    "meta-llamallama-4-scout-17b-16e-instruct": "Llama 4 Scout",
     "mixtral-8x7b-32768": "Mixtral 8x7b",
     "gemma-7b-it": "Gemma 7b",
     "gemma2-9b-it": "Gemma2 9b"


Test patch: