diff --git a/docker/.env.example b/docker/.env.example
index 3f99e52d436bb781ec9532160f94b637c8c2552d..8cfa2aea8723ecce749453ca2556f4ab7504109f 100644
--- a/docker/.env.example
+++ b/docker/.env.example
@@ -9,7 +9,7 @@ GID='1000'
 ###########################################
 # LLM_PROVIDER='openai'
 # OPEN_AI_KEY=
-# OPEN_MODEL_PREF='gpt-3.5-turbo'
+# OPEN_MODEL_PREF='gpt-4o'
 
 # LLM_PROVIDER='gemini'
 # GEMINI_API_KEY=
diff --git a/server/.env.example b/server/.env.example
index 8f424d82a6eba6688d926f46744e6cb83999db79..290a07096fcf5fd1cad7390fffb895eb7df1d8f3 100644
--- a/server/.env.example
+++ b/server/.env.example
@@ -6,7 +6,7 @@ JWT_SECRET="my-random-string-for-seeding" # Please generate random string at lea
 ###########################################
 # LLM_PROVIDER='openai'
 # OPEN_AI_KEY=
-# OPEN_MODEL_PREF='gpt-3.5-turbo'
+# OPEN_MODEL_PREF='gpt-4o'
 
 # LLM_PROVIDER='gemini'
 # GEMINI_API_KEY=
diff --git a/server/models/systemSettings.js b/server/models/systemSettings.js
index 3c23a7d3925cfc64afbcfe2379a254238af34f4e..904c448d55bd7492dec3b91974f5b63b60f3c074 100644
--- a/server/models/systemSettings.js
+++ b/server/models/systemSettings.js
@@ -297,7 +297,7 @@ const SystemSettings = {
     return {
       // OpenAI Keys
       OpenAiKey: !!process.env.OPEN_AI_KEY,
-      OpenAiModelPref: process.env.OPEN_MODEL_PREF || "gpt-3.5-turbo",
+      OpenAiModelPref: process.env.OPEN_MODEL_PREF || "gpt-4o",
 
       // Azure + OpenAI Keys
       AzureOpenAiEndpoint: process.env.AZURE_OPENAI_ENDPOINT,
diff --git a/server/utils/AiProviders/openAi/index.js b/server/utils/AiProviders/openAi/index.js
index 3a4d997ce282b639a59c71c6d1c9583331316094..43d7c287406149221e7f7a3dfdbd4554a7449aa0 100644
--- a/server/utils/AiProviders/openAi/index.js
+++ b/server/utils/AiProviders/openAi/index.js
@@ -11,8 +11,7 @@ class OpenAiLLM {
     this.openai = new OpenAIApi({
       apiKey: process.env.OPEN_AI_KEY,
     });
-    this.model =
-      modelPreference || process.env.OPEN_MODEL_PREF || "gpt-3.5-turbo";
+    this.model = modelPreference || process.env.OPEN_MODEL_PREF || "gpt-4o";
     this.limits = {
       history: this.promptWindowLimit() * 0.15,
       system: this.promptWindowLimit() * 0.15,
@@ -48,6 +47,7 @@ class OpenAiLLM {
       case "gpt-3.5-turbo":
       case "gpt-3.5-turbo-1106":
         return 16_385;
+      case "gpt-4o":
       case "gpt-4-turbo":
       case "gpt-4-1106-preview":
       case "gpt-4-turbo-preview":
diff --git a/server/utils/agents/aibitat/example/beginner-chat.js b/server/utils/agents/aibitat/example/beginner-chat.js
index 865a8c2a643e02b55c1a2a34fa371f776f9faa69..d81c2b710f289271fa1d0a1f6cd813838ec114d3 100644
--- a/server/utils/agents/aibitat/example/beginner-chat.js
+++ b/server/utils/agents/aibitat/example/beginner-chat.js
@@ -11,7 +11,7 @@ const Agent = {
 
 const aibitat = new AIbitat({
   provider: "openai",
-  model: "gpt-3.5-turbo",
+  model: "gpt-4o",
 })
   .use(cli.plugin())
   .function({
diff --git a/server/utils/agents/aibitat/example/blog-post-coding.js b/server/utils/agents/aibitat/example/blog-post-coding.js
index 50f8d179ab929b4bbbc97ca4e70eb7b88ab4ee75..76846a2a33933acda85f87650a9076d8c4cda511 100644
--- a/server/utils/agents/aibitat/example/blog-post-coding.js
+++ b/server/utils/agents/aibitat/example/blog-post-coding.js
@@ -8,7 +8,7 @@ const {
 require("dotenv").config({ path: `../../../../.env.development` });
 
 const aibitat = new AIbitat({
-  model: "gpt-3.5-turbo",
+  model: "gpt-4o",
 })
   .use(cli.plugin())
   .use(fileHistory.plugin())
diff --git a/server/utils/agents/aibitat/example/websocket/websock-multi-turn-chat.js b/server/utils/agents/aibitat/example/websocket/websock-multi-turn-chat.js
index 3407ef32e86ac693ddc306d4c244a1deaf5ee0d2..6277978cc784f60331692d69ff232d17fba7c021 100644
--- a/server/utils/agents/aibitat/example/websocket/websock-multi-turn-chat.js
+++ b/server/utils/agents/aibitat/example/websocket/websock-multi-turn-chat.js
@@ -69,7 +69,7 @@ async function runAIbitat(socket) {
   console.log(chalk.blue("Booting AIbitat class & starting agent(s)"));
   const aibitat = new AIbitat({
     provider: "openai",
-    model: "gpt-3.5-turbo",
+    model: "gpt-4o",
   })
     .use(websocket.plugin({ socket }))
     .use(webBrowsing.plugin())
diff --git a/server/utils/agents/aibitat/providers/openai.js b/server/utils/agents/aibitat/providers/openai.js
index 5daa738eacf56e7da8e9dccdde5b39f6aaa35d88..3fcc46ca5b824131ac15e60896805f13ded70727 100644
--- a/server/utils/agents/aibitat/providers/openai.js
+++ b/server/utils/agents/aibitat/providers/openai.js
@@ -13,6 +13,10 @@ class OpenAIProvider extends Provider {
       input: 0.03,
       output: 0.06,
     },
+    "gpt-4o": {
+      input: 0.005,
+      output: 0.015,
+    },
     "gpt-4-32k": {
       input: 0.06,
       output: 0.12,
@@ -33,7 +37,7 @@ class OpenAIProvider extends Provider {
         apiKey: process.env.OPEN_AI_KEY,
         maxRetries: 3,
       },
-      model = "gpt-3.5-turbo",
+      model = "gpt-4o",
     } = config;
 
     const client = new OpenAI(options);
diff --git a/server/utils/agents/aibitat/utils/summarize.js b/server/utils/agents/aibitat/utils/summarize.js
index 65297dc439a5342e611606915a7fc6259fec39c0..7f1852c023514f6ab2275f7c287aa5d197317ade 100644
--- a/server/utils/agents/aibitat/utils/summarize.js
+++ b/server/utils/agents/aibitat/utils/summarize.js
@@ -12,7 +12,7 @@ const Provider = require("../providers/ai-provider");
 
 const SUMMARY_MODEL = {
   anthropic: "claude-3-opus-20240229", // 200,000 tokens
-  openai: "gpt-3.5-turbo-1106", // 16,385 tokens
+  openai: "gpt-4o", // 128,000 tokens
 };
 
 async function summarizeContent(
diff --git a/server/utils/agents/index.js b/server/utils/agents/index.js
index 3352718bed614f00b3eb3e7f98c09f3c37d25ea3..08ce5558ec044a10c33baaa1ffa803b08b5054c7 100644
--- a/server/utils/agents/index.js
+++ b/server/utils/agents/index.js
@@ -146,7 +146,7 @@ class AgentHandler {
   #providerDefault() {
     switch (this.provider) {
       case "openai":
-        return "gpt-3.5-turbo";
+        return "gpt-4o";
       case "anthropic":
         return "claude-3-sonnet-20240229";
       case "lmstudio":
@@ -258,7 +258,7 @@ class AgentHandler {
   ) {
     this.aibitat = new AIbitat({
       provider: this.provider ?? "openai",
-      model: this.model ?? "gpt-3.5-turbo",
+      model: this.model ?? "gpt-4o",
       chats: await this.#chatHistory(20),
       handlerProps: {
         invocation: this.invocation,
diff --git a/server/utils/helpers/customModels.js b/server/utils/helpers/customModels.js
index 3743ffad73d2af8bb06086461e6a5171f2198386..b7aae93bef517e39ec509fcc12d6827474c947d1 100644
--- a/server/utils/helpers/customModels.js
+++ b/server/utils/helpers/customModels.js
@@ -66,6 +66,14 @@ async function openAiModels(apiKey = null) {
           owned_by: "openai",
           organization: "OpenAi",
         },
+        {
+          name: "gpt-4o",
+          id: "gpt-4o",
+          object: "model",
+          created: 1677610602,
+          owned_by: "openai",
+          organization: "OpenAi",
+        },
         {
           name: "gpt-4",
           id: "gpt-4",