mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 00:40:14 +01:00
🤖 feat: GPT-4.1 (#6880)
* fix: Agent Builder setting not applying in useSideNavLinks * fix: Remove unused type imports in useSideNavLinks * feat: gpt-4.1 * fix: Update getCacheMultiplier and getMultiplier tests to use dynamic token values * feat: Add gpt-4.1 to the list of vision models * chore: Bump version of librechat-data-provider to 0.7.792
This commit is contained in:
parent
64bd373bc8
commit
52b3ed54ca
9 changed files with 224 additions and 48 deletions
|
|
@ -14,6 +14,9 @@ const openAIModels = {
|
|||
'gpt-4-1106': 127500, // -500 from max
|
||||
'gpt-4-0125': 127500, // -500 from max
|
||||
'gpt-4.5': 127500, // -500 from max
|
||||
'gpt-4.1': 1047576,
|
||||
'gpt-4.1-mini': 1047576,
|
||||
'gpt-4.1-nano': 1047576,
|
||||
'gpt-4o': 127500, // -500 from max
|
||||
'gpt-4o-mini': 127500, // -500 from max
|
||||
'gpt-4o-2024-05-13': 127500, // -500 from max
|
||||
|
|
|
|||
|
|
@ -113,6 +113,43 @@ describe('getModelMaxTokens', () => {
|
|||
);
|
||||
});
|
||||
|
||||
test('should return correct tokens for gpt-4.1 matches', () => {
|
||||
expect(getModelMaxTokens('gpt-4.1')).toBe(maxTokensMap[EModelEndpoint.openAI]['gpt-4.1']);
|
||||
expect(getModelMaxTokens('gpt-4.1-preview')).toBe(
|
||||
maxTokensMap[EModelEndpoint.openAI]['gpt-4.1'],
|
||||
);
|
||||
expect(getModelMaxTokens('openai/gpt-4.1')).toBe(
|
||||
maxTokensMap[EModelEndpoint.openAI]['gpt-4.1'],
|
||||
);
|
||||
expect(getModelMaxTokens('gpt-4.1-2024-08-06')).toBe(
|
||||
maxTokensMap[EModelEndpoint.openAI]['gpt-4.1'],
|
||||
);
|
||||
});
|
||||
|
||||
test('should return correct tokens for gpt-4.1-mini matches', () => {
|
||||
expect(getModelMaxTokens('gpt-4.1-mini')).toBe(
|
||||
maxTokensMap[EModelEndpoint.openAI]['gpt-4.1-mini'],
|
||||
);
|
||||
expect(getModelMaxTokens('gpt-4.1-mini-preview')).toBe(
|
||||
maxTokensMap[EModelEndpoint.openAI]['gpt-4.1-mini'],
|
||||
);
|
||||
expect(getModelMaxTokens('openai/gpt-4.1-mini')).toBe(
|
||||
maxTokensMap[EModelEndpoint.openAI]['gpt-4.1-mini'],
|
||||
);
|
||||
});
|
||||
|
||||
test('should return correct tokens for gpt-4.1-nano matches', () => {
|
||||
expect(getModelMaxTokens('gpt-4.1-nano')).toBe(
|
||||
maxTokensMap[EModelEndpoint.openAI]['gpt-4.1-nano'],
|
||||
);
|
||||
expect(getModelMaxTokens('gpt-4.1-nano-preview')).toBe(
|
||||
maxTokensMap[EModelEndpoint.openAI]['gpt-4.1-nano'],
|
||||
);
|
||||
expect(getModelMaxTokens('openai/gpt-4.1-nano')).toBe(
|
||||
maxTokensMap[EModelEndpoint.openAI]['gpt-4.1-nano'],
|
||||
);
|
||||
});
|
||||
|
||||
test('should return correct tokens for Anthropic models', () => {
|
||||
const models = [
|
||||
'claude-2.1',
|
||||
|
|
@ -355,6 +392,25 @@ describe('matchModelName', () => {
|
|||
expect(matchModelName('gpt-4-0125-vision-preview')).toBe('gpt-4-0125');
|
||||
});
|
||||
|
||||
it('should return the closest matching key for gpt-4.1 matches', () => {
|
||||
expect(matchModelName('openai/gpt-4.1')).toBe('gpt-4.1');
|
||||
expect(matchModelName('gpt-4.1-preview')).toBe('gpt-4.1');
|
||||
expect(matchModelName('gpt-4.1-2024-08-06')).toBe('gpt-4.1');
|
||||
expect(matchModelName('gpt-4.1-2024-08-06-0718')).toBe('gpt-4.1');
|
||||
});
|
||||
|
||||
it('should return the closest matching key for gpt-4.1-mini matches', () => {
|
||||
expect(matchModelName('openai/gpt-4.1-mini')).toBe('gpt-4.1-mini');
|
||||
expect(matchModelName('gpt-4.1-mini-preview')).toBe('gpt-4.1-mini');
|
||||
expect(matchModelName('gpt-4.1-mini-2024-08-06')).toBe('gpt-4.1-mini');
|
||||
});
|
||||
|
||||
it('should return the closest matching key for gpt-4.1-nano matches', () => {
|
||||
expect(matchModelName('openai/gpt-4.1-nano')).toBe('gpt-4.1-nano');
|
||||
expect(matchModelName('gpt-4.1-nano-preview')).toBe('gpt-4.1-nano');
|
||||
expect(matchModelName('gpt-4.1-nano-2024-08-06')).toBe('gpt-4.1-nano');
|
||||
});
|
||||
|
||||
// Tests for Google models
|
||||
it('should return the exact model name if it exists in maxTokensMap - Google models', () => {
|
||||
expect(matchModelName('text-bison-32k', EModelEndpoint.google)).toBe('text-bison-32k');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue