diff --git a/server/endpoints/utils.js b/server/endpoints/utils.js index e971290755d..0bb51b83052 100644 --- a/server/endpoints/utils.js +++ b/server/endpoints/utils.js @@ -166,8 +166,18 @@ function getDeploymentVersion() { return null; } +/** + * Returns the user agent for the AnythingLLM deployment. + * @returns {string} The user agent. + */ +function getAnythingLLMUserAgent() { + const version = getDeploymentVersion() || "unknown"; + return `AnythingLLM/${version}`; +} + module.exports = { utilEndpoints, getGitVersion, getModelTag, + getAnythingLLMUserAgent, }; diff --git a/server/utils/AiProviders/genericOpenAi/index.js b/server/utils/AiProviders/genericOpenAi/index.js index e7b35c74f93..3b4c179d1ed 100644 --- a/server/utils/AiProviders/genericOpenAi/index.js +++ b/server/utils/AiProviders/genericOpenAi/index.js @@ -8,6 +8,7 @@ const { clientAbortedHandler, } = require("../../helpers/chat/responses"); const { toValidNumber } = require("../../http"); +const { getAnythingLLMUserAgent } = require("../../../endpoints/utils"); class GenericOpenAiLLM { constructor(embedder = null, modelPreference = null) { @@ -21,6 +22,9 @@ class GenericOpenAiLLM { this.openai = new OpenAIApi({ baseURL: this.basePath, apiKey: process.env.GENERIC_OPEN_AI_API_KEY ?? null, + defaultHeaders: { + "User-Agent": getAnythingLLMUserAgent(), + }, }); this.model = modelPreference ?? process.env.GENERIC_OPEN_AI_MODEL_PREF ?? null; diff --git a/server/utils/agents/aibitat/providers/genericOpenAi.js b/server/utils/agents/aibitat/providers/genericOpenAi.js index c902dcb79ef..c067584994f 100644 --- a/server/utils/agents/aibitat/providers/genericOpenAi.js +++ b/server/utils/agents/aibitat/providers/genericOpenAi.js @@ -3,6 +3,7 @@ const Provider = require("./ai-provider.js"); const InheritMultiple = require("./helpers/classes.js"); const UnTooled = require("./helpers/untooled.js"); const { toValidNumber } = require("../../../http/index.js"); +const { getAnythingLLMUserAgent } = require("../../../../endpoints/utils"); /** * The agent provider for the Generic OpenAI provider. @@ -20,6 +21,9 @@ class GenericOpenAiProvider extends InheritMultiple([Provider, UnTooled]) { baseURL: process.env.GENERIC_OPEN_AI_BASE_PATH, apiKey: process.env.GENERIC_OPEN_AI_API_KEY ?? null, maxRetries: 3, + defaultHeaders: { + "User-Agent": getAnythingLLMUserAgent(), + }, }); this._client = client;