diff --git a/frontend/src/components/LLMSelection/GenericOpenAiOptions/index.jsx b/frontend/src/components/LLMSelection/GenericOpenAiOptions/index.jsx index 8f5a00b660e..ac143e94a9e 100644 --- a/frontend/src/components/LLMSelection/GenericOpenAiOptions/index.jsx +++ b/frontend/src/components/LLMSelection/GenericOpenAiOptions/index.jsx @@ -61,6 +61,21 @@ export default function GenericOpenAiOptions({ settings }) { autoComplete="off" /> +
+ + +
); } diff --git a/server/models/systemSettings.js b/server/models/systemSettings.js index 9ac41db0c14..21d7af21797 100644 --- a/server/models/systemSettings.js +++ b/server/models/systemSettings.js @@ -373,6 +373,7 @@ const SystemSettings = { GenericOpenAiModelPref: process.env.GENERIC_OPEN_AI_MODEL_PREF, GenericOpenAiTokenLimit: process.env.GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT, GenericOpenAiKey: !!process.env.GENERIC_OPEN_AI_API_KEY, + GenericOpenAiMaxTokens: process.env.GENERIC_OPEN_AI_MAX_TOKENS, // Cohere API Keys CohereApiKey: !!process.env.COHERE_API_KEY, diff --git a/server/utils/AiProviders/genericOpenAi/index.js b/server/utils/AiProviders/genericOpenAi/index.js index 8c171b67918..686d4c67775 100644 --- a/server/utils/AiProviders/genericOpenAi/index.js +++ b/server/utils/AiProviders/genericOpenAi/index.js @@ -18,6 +18,7 @@ class GenericOpenAiLLM { }); this.model = modelPreference ?? process.env.GENERIC_OPEN_AI_MODEL_PREF ?? null; + this.maxTokens = process.env.GENERIC_OPEN_AI_MAX_TOKENS ?? 1024; if (!this.model) throw new Error("GenericOpenAI must have a valid model set."); this.limits = { @@ -94,6 +95,7 @@ class GenericOpenAiLLM { model: this.model, messages, temperature, + max_tokens: this.maxTokens, }) .catch((e) => { throw new Error(e.response.data.error.message); @@ -110,6 +112,7 @@ class GenericOpenAiLLM { stream: true, messages, temperature, + max_tokens: this.maxTokens, }); return streamRequest; } diff --git a/server/utils/agents/aibitat/providers/genericOpenAi.js b/server/utils/agents/aibitat/providers/genericOpenAi.js index 3521bc7d0f1..e41476d2a66 100644 --- a/server/utils/agents/aibitat/providers/genericOpenAi.js +++ b/server/utils/agents/aibitat/providers/genericOpenAi.js @@ -24,6 +24,7 @@ class GenericOpenAiProvider extends InheritMultiple([Provider, UnTooled]) { this._client = client; this.model = model; this.verbose = true; + this.maxTokens = process.env.GENERIC_OPEN_AI_MAX_TOKENS ?? 1024; } get client() { @@ -36,6 +37,7 @@ class GenericOpenAiProvider extends InheritMultiple([Provider, UnTooled]) { model: this.model, temperature: 0, messages, + max_tokens: this.maxTokens, }) .then((result) => { if (!result.hasOwnProperty("choices")) diff --git a/server/utils/helpers/updateENV.js b/server/utils/helpers/updateENV.js index 11be3db807a..39223c3343e 100644 --- a/server/utils/helpers/updateENV.js +++ b/server/utils/helpers/updateENV.js @@ -173,6 +173,10 @@ const KEY_MAPPING = { envKey: "GENERIC_OPEN_AI_API_KEY", checks: [], }, + GenericOpenAiMaxTokens: { + envKey: "GENERIC_OPEN_AI_MAX_TOKENS", + checks: [nonZero], + }, EmbeddingEngine: { envKey: "EMBEDDING_ENGINE",