mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 08:50:15 +01:00
* 🔧 fix: enhance client options handling in AgentClient and set default recursion limit
- Updated the recursion limit to default to 25 if not specified in agentsEConfig.
- Enhanced client options in AgentClient to include model parameters such as apiKey and anthropicApiUrl from agentModelParams.
- Updated requestOptions in the anthropic endpoint to use reverseProxyUrl as anthropicApiUrl.
* Enhance LLM configuration tests with edge case handling
* chore add return type annotation for getCustomEndpointConfig function
* fix: update modelOptions handling to use optional chaining and default to empty object in multiple endpoint initializations
* chore: update @librechat/agents to version 2.4.42
* refactor: streamline agent endpoint configuration and enhance client options handling for title generations
- Introduced a new `getProviderConfig` function to centralize provider configuration logic.
- Updated `AgentClient` to utilize the new provider configuration, improving clarity and maintainability.
- Removed redundant code related to endpoint initialization and model parameter handling.
- Enhanced error logging for missing endpoint configurations.
* fix: add abort handling for image generation and editing in OpenAIImageTools
* ci: enhance getLLMConfig tests to verify fetchOptions and dispatcher properties
* fix: use optional chaining for endpointOption properties in getOptions
* fix: increase title generation timeout from 25s to 45s, pass `endpointOption` to `getOptions`
* fix: update file filtering logic in getToolFilesByIds to ensure text field is properly checked
* fix: add error handling for empty OCR results in uploadMistralOCR and uploadAzureMistralOCR
* fix: enhance error handling in file upload to include 'No OCR result' message
* chore: update error messages in uploadMistralOCR and uploadAzureMistralOCR
* fix: enhance filtering logic in getToolFilesByIds to include context checks for OCR resources to only include files directly attached to agent
---------
Co-authored-by: Matt Burnett <matt.burnett@shopify.com>
58 lines
1.9 KiB
JavaScript
58 lines
1.9 KiB
JavaScript
const { Providers } = require('@librechat/agents');
|
|
const { EModelEndpoint } = require('librechat-data-provider');
|
|
const initAnthropic = require('~/server/services/Endpoints/anthropic/initialize');
|
|
const getBedrockOptions = require('~/server/services/Endpoints/bedrock/options');
|
|
const initOpenAI = require('~/server/services/Endpoints/openAI/initialize');
|
|
const initCustom = require('~/server/services/Endpoints/custom/initialize');
|
|
const initGoogle = require('~/server/services/Endpoints/google/initialize');
|
|
const { getCustomEndpointConfig } = require('~/server/services/Config');
|
|
|
|
const providerConfigMap = {
|
|
[Providers.XAI]: initCustom,
|
|
[Providers.OLLAMA]: initCustom,
|
|
[Providers.DEEPSEEK]: initCustom,
|
|
[Providers.OPENROUTER]: initCustom,
|
|
[EModelEndpoint.openAI]: initOpenAI,
|
|
[EModelEndpoint.google]: initGoogle,
|
|
[EModelEndpoint.azureOpenAI]: initOpenAI,
|
|
[EModelEndpoint.anthropic]: initAnthropic,
|
|
[EModelEndpoint.bedrock]: getBedrockOptions,
|
|
};
|
|
|
|
/**
|
|
* Get the provider configuration and override endpoint based on the provider string
|
|
* @param {string} provider - The provider string
|
|
* @returns {Promise<{
|
|
* getOptions: Function,
|
|
* overrideProvider?: string,
|
|
* customEndpointConfig?: TEndpoint
|
|
* }>}
|
|
*/
|
|
async function getProviderConfig(provider) {
|
|
let getOptions = providerConfigMap[provider];
|
|
let overrideProvider;
|
|
/** @type {TEndpoint | undefined} */
|
|
let customEndpointConfig;
|
|
|
|
if (!getOptions && providerConfigMap[provider.toLowerCase()] != null) {
|
|
overrideProvider = provider.toLowerCase();
|
|
getOptions = providerConfigMap[overrideProvider];
|
|
} else if (!getOptions) {
|
|
customEndpointConfig = await getCustomEndpointConfig(provider);
|
|
if (!customEndpointConfig) {
|
|
throw new Error(`Provider ${provider} not supported`);
|
|
}
|
|
getOptions = initCustom;
|
|
overrideProvider = Providers.OPENAI;
|
|
}
|
|
|
|
return {
|
|
getOptions,
|
|
overrideProvider,
|
|
customEndpointConfig,
|
|
};
|
|
}
|
|
|
|
module.exports = {
|
|
getProviderConfig,
|
|
};
|