🌐 chore: Update tool type from web_search_preview to web_search for OpenAI (#10379)
Some checks are pending
Docker Dev Branch Images Build / build (Dockerfile, lc-dev, node) (push) Waiting to run
Docker Dev Branch Images Build / build (Dockerfile.multi, lc-dev-api, api-build) (push) Waiting to run
Docker Dev Images Build / build (Dockerfile, librechat-dev, node) (push) Waiting to run
Docker Dev Images Build / build (Dockerfile.multi, librechat-dev-api, api-build) (push) Waiting to run
Sync Locize Translations & Create Translation PR / Sync Translation Keys with Locize (push) Waiting to run
Sync Locize Translations & Create Translation PR / Create Translation PR on Version Published (push) Blocked by required conditions

This commit is contained in:
Danny Avila 2025-11-05 21:24:16 -05:00 committed by GitHub
parent 667e78c51e
commit 8124344c51
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 7 additions and 7 deletions

View file

@ -48,7 +48,7 @@ describe('getOpenAIConfig - Backward Compatibility', () => {
configOptions: {},
tools: [
{
type: 'web_search_preview',
type: 'web_search',
},
],
});

View file

@ -230,7 +230,7 @@ describe('getOpenAIConfig', () => {
const result = getOpenAIConfig(mockApiKey, { modelOptions });
expect(result.llmConfig.useResponsesApi).toBe(true);
expect(result.tools).toEqual([{ type: 'web_search_preview' }]);
expect(result.tools).toEqual([{ type: 'web_search' }]);
});
it('should handle web_search from addParams overriding modelOptions', () => {
@ -247,7 +247,7 @@ describe('getOpenAIConfig', () => {
const result = getOpenAIConfig(mockApiKey, { modelOptions, addParams });
expect(result.llmConfig.useResponsesApi).toBe(true);
expect(result.tools).toEqual([{ type: 'web_search_preview' }]);
expect(result.tools).toEqual([{ type: 'web_search' }]);
// web_search should not be in modelKwargs or llmConfig
expect((result.llmConfig as Record<string, unknown>).web_search).toBeUndefined();
expect(result.llmConfig.modelKwargs).toEqual({ customParam: 'value' });
@ -299,7 +299,7 @@ describe('getOpenAIConfig', () => {
// Should keep the original web_search from modelOptions since addParams value is not boolean
expect(result.llmConfig.useResponsesApi).toBe(true);
expect(result.tools).toEqual([{ type: 'web_search_preview' }]);
expect(result.tools).toEqual([{ type: 'web_search' }]);
expect(result.llmConfig.temperature).toBe(0.7);
// web_search should not be added to modelKwargs
expect(result.llmConfig.modelKwargs).toBeUndefined();
@ -335,7 +335,7 @@ describe('getOpenAIConfig', () => {
// web_search should trigger the tool but not appear in config
expect(result.llmConfig.useResponsesApi).toBe(true);
expect(result.tools).toEqual([{ type: 'web_search_preview' }]);
expect(result.tools).toEqual([{ type: 'web_search' }]);
expect((result.llmConfig as Record<string, unknown>).web_search).toBeUndefined();
expect(result.llmConfig.temperature).toBe(0.5);
expect(result.llmConfig.modelKwargs).toEqual({ customParam1: 'value1' });
@ -1164,7 +1164,7 @@ describe('getOpenAIConfig', () => {
text: { verbosity: Verbosity.medium },
customParam: 'custom-value',
});
expect(result.tools).toEqual([{ type: 'web_search_preview' }]);
expect(result.tools).toEqual([{ type: 'web_search' }]);
expect(result.configOptions).toMatchObject({
baseURL: 'https://api.custom.com',
defaultHeaders: { 'X-Custom': 'value' },

View file

@ -190,7 +190,7 @@ export function getOpenAILLMConfig({
} else if (enableWebSearch) {
/** Standard OpenAI web search uses tools API */
llmConfig.useResponsesApi = true;
tools.push({ type: 'web_search_preview' });
tools.push({ type: 'web_search' });
}
/**