From c55ef33fcee104401053098f463d4adf1dddd8d5 Mon Sep 17 00:00:00 2001
From: RahSwe <163884933+RahSwe@users.noreply.github.com>
Date: Fri, 2 Aug 2024 19:24:31 +0200
Subject: [PATCH] Gemini Pro 1.5, API support for 2M context and new
 experimental model (#2031)

---
 .../src/components/LLMSelection/GeminiLLMOptions/index.jsx   | 1 +
 frontend/src/hooks/useGetProvidersModels.js                  | 1 +
 server/utils/AiProviders/gemini/index.js                     | 5 ++++-
 server/utils/helpers/updateENV.js                            | 1 +
 4 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx b/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx
index 5a2affb4f..e7a873b9d 100644
--- a/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx
@@ -35,6 +35,7 @@ export default function GeminiLLMOptions({ settings }) {
                   "gemini-1.0-pro",
                   "gemini-1.5-pro-latest",
                   "gemini-1.5-flash-latest",
+                  "gemini-1.5-pro-exp-0801",
                 ].map((model) => {
                   return (
                     <option key={model} value={model}>
diff --git a/frontend/src/hooks/useGetProvidersModels.js b/frontend/src/hooks/useGetProvidersModels.js
index c56f42fdc..fc0311a59 100644
--- a/frontend/src/hooks/useGetProvidersModels.js
+++ b/frontend/src/hooks/useGetProvidersModels.js
@@ -16,6 +16,7 @@ const PROVIDER_DEFAULT_MODELS = {
     "gemini-1.0-pro",
     "gemini-1.5-pro-latest",
     "gemini-1.5-flash-latest",
+    "gemini-1.5-pro-exp-0801",
   ],
   anthropic: [
     "claude-instant-1.2",
diff --git a/server/utils/AiProviders/gemini/index.js b/server/utils/AiProviders/gemini/index.js
index f2a948428..b78c8db6e 100644
--- a/server/utils/AiProviders/gemini/index.js
+++ b/server/utils/AiProviders/gemini/index.js
@@ -96,7 +96,9 @@ class GeminiLLM {
       case "gemini-1.5-flash-latest":
         return 1_048_576;
       case "gemini-1.5-pro-latest":
-        return 1_048_576;
+        return 2_097_152;
+      case "gemini-1.5-pro-exp-0801":
+        return 2_097_152;
       default:
         return 30_720; // assume a gemini-pro model
     }
@@ -108,6 +110,7 @@ class GeminiLLM {
       "gemini-1.0-pro",
       "gemini-1.5-pro-latest",
       "gemini-1.5-flash-latest",
+      "gemini-1.5-pro-exp-0801",
     ];
     return validModels.includes(modelName);
   }
diff --git a/server/utils/helpers/updateENV.js b/server/utils/helpers/updateENV.js
index afacb7279..f1cedb707 100644
--- a/server/utils/helpers/updateENV.js
+++ b/server/utils/helpers/updateENV.js
@@ -585,6 +585,7 @@ function validGeminiModel(input = "") {
     "gemini-1.0-pro",
     "gemini-1.5-pro-latest",
     "gemini-1.5-flash-latest",
+    "gemini-1.5-pro-exp-0801",
   ];
   return validModels.includes(input)
     ? null
-- 
GitLab