diff --git a/src/bots/atlascloud/AtlasCloudAPIBot.js b/src/bots/atlascloud/AtlasCloudAPIBot.js
new file mode 100644
index 0000000000..7ca57e8eb3
--- /dev/null
+++ b/src/bots/atlascloud/AtlasCloudAPIBot.js
@@ -0,0 +1,41 @@
+import LangChainBot from "@/bots/LangChainBot";
+import store from "@/store";
+import { ChatOpenAI } from "@langchain/openai";
+
+export default class AtlasCloudAPIBot extends LangChainBot {
+ static _brandId = "atlasCloudApi";
+ static _className = "AtlasCloudAPIBot";
+ static _logoFilename = "default-logo.svg";
+
+ constructor() {
+ super();
+ }
+
+ async _checkAvailability() {
+ let available = false;
+
+ if (store.state.atlasCloudApi.apiKey) {
+ this.setupModel();
+ available = true;
+ }
+ return available;
+ }
+
+ _setupModel() {
+ const chatModel = new ChatOpenAI({
+ configuration: {
+ baseURL: "https://api.atlascloud.ai/v1",
+ },
+ openAIApiKey: store.state.atlasCloudApi.apiKey,
+ modelName: this.constructor._model ? this.constructor._model : "",
+ temperature: store.state.atlasCloudApi.temperature,
+ maxTokens: store.state.atlasCloudApi.maxTokens,
+ streaming: true,
+ });
+ return chatModel;
+ }
+
+ getPastRounds() {
+ return store.state.atlasCloudApi.pastRounds ?? 5;
+ }
+}
diff --git a/src/bots/atlascloud/AtlasCloudDeepSeekV4ProBot.js b/src/bots/atlascloud/AtlasCloudDeepSeekV4ProBot.js
new file mode 100644
index 0000000000..b81f4276a3
--- /dev/null
+++ b/src/bots/atlascloud/AtlasCloudDeepSeekV4ProBot.js
@@ -0,0 +1,10 @@
+import AtlasCloudAPIBot from "./AtlasCloudAPIBot";
+
+export default class AtlasCloudDeepSeekV4ProBot extends AtlasCloudAPIBot {
+ static _className = "AtlasCloudDeepSeekV4ProBot";
+ static _model = "deepseek-ai/deepseek-v4-pro";
+
+ constructor() {
+ super();
+ }
+}
diff --git a/src/bots/atlascloud/AtlasCloudQwen35FlashBot.js b/src/bots/atlascloud/AtlasCloudQwen35FlashBot.js
new file mode 100644
index 0000000000..1e2a12ac6f
--- /dev/null
+++ b/src/bots/atlascloud/AtlasCloudQwen35FlashBot.js
@@ -0,0 +1,10 @@
+import AtlasCloudAPIBot from "./AtlasCloudAPIBot";
+
+export default class AtlasCloudQwen35FlashBot extends AtlasCloudAPIBot {
+ static _className = "AtlasCloudQwen35FlashBot";
+ static _model = "qwen/qwen3.5-flash";
+
+ constructor() {
+ super();
+ }
+}
diff --git a/src/bots/index.js b/src/bots/index.js
index 3f989ff94c..a6420add1e 100644
--- a/src/bots/index.js
+++ b/src/bots/index.js
@@ -66,6 +66,8 @@ import ClaudeAPIHaikuBot from "./anthropic/ClaudeAPIHaikuBot";
import Grok2APIBot from "./xai/Grok2APIBot";
import Grok3APIBot from "./xai/Grok3APIBot";
import Grok3MiniAPIBot from "./xai/Grok3MiniAPIBot";
+import AtlasCloudQwen35FlashBot from "./atlascloud/AtlasCloudQwen35FlashBot";
+import AtlasCloudDeepSeekV4ProBot from "./atlascloud/AtlasCloudDeepSeekV4ProBot";
const all = [
Qihoo360AIBrainBot.getInstance(),
@@ -134,6 +136,8 @@ const all = [
Grok2APIBot.getInstance(),
Grok3APIBot.getInstance(),
Grok3MiniAPIBot.getInstance(),
+ AtlasCloudQwen35FlashBot.getInstance(),
+ AtlasCloudDeepSeekV4ProBot.getInstance(),
];
const disabled = ["HuggingChatBot"];
@@ -230,6 +234,8 @@ export const botTags = {
bots.getBotByClassName("Grok2APIBot"),
bots.getBotByClassName("Grok3APIBot"),
bots.getBotByClassName("Grok3MiniAPIBot"),
+ bots.getBotByClassName("AtlasCloudQwen35FlashBot"),
+ bots.getBotByClassName("AtlasCloudDeepSeekV4ProBot"),
],
madeInChina: [
bots.getBotByClassName("Qihoo360AIBrainBot"),
diff --git a/src/components/BotSettings/AtlasCloudAPIBotSettings.vue b/src/components/BotSettings/AtlasCloudAPIBotSettings.vue
new file mode 100644
index 0000000000..2fbadf4690
--- /dev/null
+++ b/src/components/BotSettings/AtlasCloudAPIBotSettings.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
diff --git a/src/components/SettingsModal.vue b/src/components/SettingsModal.vue
index b639dd4315..6b7c2d7a7e 100644
--- a/src/components/SettingsModal.vue
+++ b/src/components/SettingsModal.vue
@@ -128,6 +128,7 @@ import { resolveTheme, applyTheme, Mode } from "../theme";
import ClaudeAPIBotSettings from "./BotSettings/ClaudeAPIBotSettings.vue";
import GroqAPIBotSettings from "./BotSettings/GroqAPIBotSettings.vue";
import xAIAPIBotSettings from "./BotSettings/xAIAPIBotSettings.vue";
+import AtlasCloudAPIBotSettings from "./BotSettings/AtlasCloudAPIBotSettings.vue";
const { ipcRenderer } = window.require("electron");
const { t: $t, locale } = useI18n();
@@ -142,6 +143,7 @@ const tab = ref(null);
const botSettings = [
{ brand: "360AiBrain", component: Qihoo360AIBrainBotSettings },
{ brand: "azureOpenaiApi", component: AzureOpenAIAPIBotSettings },
+ { brand: "atlasCloudApi", component: AtlasCloudAPIBotSettings },
{ brand: "bard", component: BardBotSettings },
{ brand: "bingChat", component: BingChatBotSettings },
{ brand: "characterAI", component: CharacterAIBotSettings },
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json
index a2a895cfa3..3d1ca2a963 100644
--- a/src/i18n/locales/de.json
+++ b/src/i18n/locales/de.json
@@ -314,6 +314,11 @@
"gemma-7b-it": "Gemma 7b",
"gemma2-9b-it": "Gemma2 9b"
},
+ "atlasCloudApi": {
+ "name": "Atlas Cloud API",
+ "qwenqwen35-flash": "Qwen3.5 Flash",
+ "deepseek-aideepseek-v4-pro": "DeepSeek V4 Pro"
+ },
"xaiApi": {
"name": "xAI API",
"grok-2-latest": "Grok-2",
diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json
index b2483a03e6..14656d9f04 100644
--- a/src/i18n/locales/en.json
+++ b/src/i18n/locales/en.json
@@ -317,6 +317,11 @@
"gemma-7b-it": "Gemma 7b",
"gemma2-9b-it": "Gemma2 9b"
},
+ "atlasCloudApi": {
+ "name": "Atlas Cloud API",
+ "qwenqwen35-flash": "Qwen3.5 Flash",
+ "deepseek-aideepseek-v4-pro": "DeepSeek V4 Pro"
+ },
"xaiApi": {
"name": "xAI API",
"grok-2-latest": "Grok-2",
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index 2238dac17b..33914696b5 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -314,6 +314,11 @@
"gemma-7b-it": "Gemma 7b",
"gemma2-9b-it": "Gemma2 9b"
},
+ "atlasCloudApi": {
+ "name": "Atlas Cloud API",
+ "qwenqwen35-flash": "Qwen3.5 Flash",
+ "deepseek-aideepseek-v4-pro": "DeepSeek V4 Pro"
+ },
"xaiApi": {
"name": "xAI API",
"grok-2-latest": "Grok-2",
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json
index e3327bb793..49facd35c1 100644
--- a/src/i18n/locales/fr.json
+++ b/src/i18n/locales/fr.json
@@ -314,6 +314,11 @@
"gemma-7b-it": "Gemma 7b",
"gemma2-9b-it": "Gemma2 9b"
},
+ "atlasCloudApi": {
+ "name": "Atlas Cloud API",
+ "qwenqwen35-flash": "Qwen3.5 Flash",
+ "deepseek-aideepseek-v4-pro": "DeepSeek V4 Pro"
+ },
"xaiApi": {
"name": "xAI API",
"grok-2-latest": "Grok-2",
diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json
index ad0f563897..d2c1dc4051 100644
--- a/src/i18n/locales/it.json
+++ b/src/i18n/locales/it.json
@@ -316,6 +316,11 @@
"gemma-7b-it": "Gemma 7b",
"gemma2-9b-it": "Gemma2 9b"
},
+ "atlasCloudApi": {
+ "name": "Atlas Cloud API",
+ "qwenqwen35-flash": "Qwen3.5 Flash",
+ "deepseek-aideepseek-v4-pro": "DeepSeek V4 Pro"
+ },
"xaiApi": {
"name": "xAI API",
"grok-2-latest": "Grok-2",
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json
index dedb86e53d..7180be8c81 100644
--- a/src/i18n/locales/ja.json
+++ b/src/i18n/locales/ja.json
@@ -314,6 +314,11 @@
"gemma-7b-it": "Gemma 7b",
"gemma2-9b-it": "Gemma2 9b"
},
+ "atlasCloudApi": {
+ "name": "Atlas Cloud API",
+ "qwenqwen35-flash": "Qwen3.5 Flash",
+ "deepseek-aideepseek-v4-pro": "DeepSeek V4 Pro"
+ },
"xaiApi": {
"name": "xAI API",
"grok-2-latest": "Grok-2",
diff --git a/src/i18n/locales/ko.json b/src/i18n/locales/ko.json
index a92bf0a5aa..561009a75c 100644
--- a/src/i18n/locales/ko.json
+++ b/src/i18n/locales/ko.json
@@ -317,6 +317,11 @@
"gemma-7b-it": "Gemma 7b",
"gemma2-9b-it": "Gemma2 9b"
},
+ "atlasCloudApi": {
+ "name": "Atlas Cloud API",
+ "qwenqwen35-flash": "Qwen3.5 Flash",
+ "deepseek-aideepseek-v4-pro": "DeepSeek V4 Pro"
+ },
"xaiApi": {
"name": "xAI API",
"grok-2-latest": "Grok-2",
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json
index 0f1e4adb0e..41731d2451 100644
--- a/src/i18n/locales/ru.json
+++ b/src/i18n/locales/ru.json
@@ -314,6 +314,11 @@
"gemma-7b-it": "Gemma 7b",
"gemma2-9b-it": "Gemma2 9b"
},
+ "atlasCloudApi": {
+ "name": "Atlas Cloud API",
+ "qwenqwen35-flash": "Qwen3.5 Flash",
+ "deepseek-aideepseek-v4-pro": "DeepSeek V4 Pro"
+ },
"xaiApi": {
"name": "xAI API",
"grok-2-latest": "Grok-2",
diff --git a/src/i18n/locales/vi.json b/src/i18n/locales/vi.json
index a68bbca440..4d30d606df 100644
--- a/src/i18n/locales/vi.json
+++ b/src/i18n/locales/vi.json
@@ -293,6 +293,11 @@
"gemma-7b-it": "Gemma 7b",
"gemma2-9b-it": "Gemma2 9b"
},
+ "atlasCloudApi": {
+ "name": "Atlas Cloud API",
+ "qwenqwen35-flash": "Qwen3.5 Flash",
+ "deepseek-aideepseek-v4-pro": "DeepSeek V4 Pro"
+ },
"xaiApi": {
"name": "xAI API",
"grok-2-latest": "Grok-2",
diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json
index e7f3ddf1bf..cba3486a2b 100644
--- a/src/i18n/locales/zh.json
+++ b/src/i18n/locales/zh.json
@@ -314,6 +314,11 @@
"gemma-7b-it": "Gemma 7b",
"gemma2-9b-it": "Gemma2 9b"
},
+ "atlasCloudApi": {
+ "name": "Atlas Cloud API",
+ "qwenqwen35-flash": "Qwen3.5 Flash",
+ "deepseek-aideepseek-v4-pro": "DeepSeek V4 Pro"
+ },
"xaiApi": {
"name": "xAI API",
"grok-2-latest": "Grok-2",
diff --git a/src/i18n/locales/zhtw.json b/src/i18n/locales/zhtw.json
index d727742046..c644087521 100644
--- a/src/i18n/locales/zhtw.json
+++ b/src/i18n/locales/zhtw.json
@@ -314,6 +314,11 @@
"gemma-7b-it": "Gemma 7b",
"gemma2-9b-it": "Gemma2 9b"
},
+ "atlasCloudApi": {
+ "name": "Atlas Cloud API",
+ "qwenqwen35-flash": "Qwen3.5 Flash",
+ "deepseek-aideepseek-v4-pro": "DeepSeek V4 Pro"
+ },
"xaiApi": {
"name": "xAI API",
"grok-2-latest": "Grok-2",
diff --git a/src/store/chats.js b/src/store/chats.js
index 9ab4fe8276..d14b165544 100644
--- a/src/store/chats.js
+++ b/src/store/chats.js
@@ -27,6 +27,8 @@ class Chats {
{ classname: "Grok3MiniAPIBot", selected: false },
{ classname: "Llama4ScoutGroqAPIBot", selected: false },
{ classname: "Llama4MaverickGroqAPIBot", selected: false },
+ { classname: "AtlasCloudQwen35FlashBot", selected: false },
+ { classname: "AtlasCloudDeepSeekV4ProBot", selected: false },
{ classname: "OpenAIAPI41Bot", selected: false },
{ classname: "OpenAIAPI41MiniBot", selected: false },
{ classname: "OpenAIAPI41NanoBot", selected: false },
diff --git a/src/store/index.js b/src/store/index.js
index c48e1b5b1f..643521bda0 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -126,6 +126,12 @@ export default createStore({
apiKey: "",
pastRounds: 5,
},
+ atlasCloudApi: {
+ apiKey: "",
+ temperature: 0.7,
+ maxTokens: 1024,
+ pastRounds: 5,
+ },
currentChatIndex: 0,
updateCounter: 0,
theme: undefined,
@@ -277,6 +283,9 @@ export default createStore({
setXaiApi(state, values) {
state.xaiApi = { ...state.xaiApi, ...values };
},
+ setAtlasCloudApi(state, values) {
+ state.atlasCloudApi = { ...state.atlasCloudApi, ...values };
+ },
setLatestPromptIndex(state, promptIndex) {
Chats.table.update(state.currentChatIndex, {
latestPromptIndex: promptIndex,