mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 00:40:14 +01:00
🧠 feat: claude-3-5-sonnet (#3135)
* 🧠 feat: claude-3-5-sonnet
* chore: bump data-provider
This commit is contained in:
parent
0cd3c83328
commit
54db67449a
7 changed files with 32 additions and 5 deletions
|
|
@ -17,6 +17,7 @@ const tokenValues = {
|
||||||
'gpt-3.5-turbo-0125': { prompt: 0.5, completion: 1.5 },
|
'gpt-3.5-turbo-0125': { prompt: 0.5, completion: 1.5 },
|
||||||
'claude-3-opus': { prompt: 15, completion: 75 },
|
'claude-3-opus': { prompt: 15, completion: 75 },
|
||||||
'claude-3-sonnet': { prompt: 3, completion: 15 },
|
'claude-3-sonnet': { prompt: 3, completion: 15 },
|
||||||
|
'claude-3-5-sonnet': { prompt: 3, completion: 15 },
|
||||||
'claude-3-haiku': { prompt: 0.25, completion: 1.25 },
|
'claude-3-haiku': { prompt: 0.25, completion: 1.25 },
|
||||||
'claude-2.1': { prompt: 8, completion: 24 },
|
'claude-2.1': { prompt: 8, completion: 24 },
|
||||||
'claude-2': { prompt: 8, completion: 24 },
|
'claude-2': { prompt: 8, completion: 24 },
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,13 @@ describe('getValueKey', () => {
|
||||||
expect(getValueKey('gpt-4o-turbo')).toBe('gpt-4o');
|
expect(getValueKey('gpt-4o-turbo')).toBe('gpt-4o');
|
||||||
expect(getValueKey('gpt-4o-0125')).toBe('gpt-4o');
|
expect(getValueKey('gpt-4o-0125')).toBe('gpt-4o');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should return "claude-3-5-sonnet" for model type of "claude-3-5-sonnet-"', () => {
|
||||||
|
expect(getValueKey('claude-3-5-sonnet-20240620')).toBe('claude-3-5-sonnet');
|
||||||
|
expect(getValueKey('anthropic/claude-3-5-sonnet')).toBe('claude-3-5-sonnet');
|
||||||
|
expect(getValueKey('claude-3-5-sonnet-turbo')).toBe('claude-3-5-sonnet');
|
||||||
|
expect(getValueKey('claude-3-5-sonnet-0125')).toBe('claude-3-5-sonnet');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('getMultiplier', () => {
|
describe('getMultiplier', () => {
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,7 @@ const anthropicModels = {
|
||||||
'claude-3-haiku': 200000,
|
'claude-3-haiku': 200000,
|
||||||
'claude-3-sonnet': 200000,
|
'claude-3-sonnet': 200000,
|
||||||
'claude-3-opus': 200000,
|
'claude-3-opus': 200000,
|
||||||
|
'claude-3-5-sonnet': 200000,
|
||||||
};
|
};
|
||||||
|
|
||||||
const aggregateModels = { ...openAIModels, ...googleModels, ...anthropicModels, ...cohereModels };
|
const aggregateModels = { ...openAIModels, ...googleModels, ...anthropicModels, ...cohereModels };
|
||||||
|
|
|
||||||
|
|
@ -124,12 +124,29 @@ describe('getModelMaxTokens', () => {
|
||||||
'claude-1-100k',
|
'claude-1-100k',
|
||||||
'claude-instant-1',
|
'claude-instant-1',
|
||||||
'claude-instant-1-100k',
|
'claude-instant-1-100k',
|
||||||
|
'claude-3-haiku',
|
||||||
|
'claude-3-sonnet',
|
||||||
|
'claude-3-opus',
|
||||||
|
'claude-3-5-sonnet',
|
||||||
];
|
];
|
||||||
|
|
||||||
const claudeMaxTokens = maxTokensMap[EModelEndpoint.anthropic]['claude-'];
|
const maxTokens = {
|
||||||
const claude21MaxTokens = maxTokensMap[EModelEndpoint.anthropic]['claude-2.1'];
|
'claude-': maxTokensMap[EModelEndpoint.anthropic]['claude-'],
|
||||||
|
'claude-2.1': maxTokensMap[EModelEndpoint.anthropic]['claude-2.1'],
|
||||||
|
'claude-3': maxTokensMap[EModelEndpoint.anthropic]['claude-3-sonnet'],
|
||||||
|
};
|
||||||
|
|
||||||
models.forEach((model) => {
|
models.forEach((model) => {
|
||||||
const expectedTokens = model === 'claude-2.1' ? claude21MaxTokens : claudeMaxTokens;
|
let expectedTokens;
|
||||||
|
|
||||||
|
if (model === 'claude-2.1') {
|
||||||
|
expectedTokens = maxTokens['claude-2.1'];
|
||||||
|
} else if (model.startsWith('claude-3')) {
|
||||||
|
expectedTokens = maxTokens['claude-3'];
|
||||||
|
} else {
|
||||||
|
expectedTokens = maxTokens['claude-'];
|
||||||
|
}
|
||||||
|
|
||||||
expect(getModelMaxTokens(model, EModelEndpoint.anthropic)).toEqual(expectedTokens);
|
expect(getModelMaxTokens(model, EModelEndpoint.anthropic)).toEqual(expectedTokens);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
2
package-lock.json
generated
2
package-lock.json
generated
|
|
@ -29348,7 +29348,7 @@
|
||||||
},
|
},
|
||||||
"packages/data-provider": {
|
"packages/data-provider": {
|
||||||
"name": "librechat-data-provider",
|
"name": "librechat-data-provider",
|
||||||
"version": "0.6.9",
|
"version": "0.7.0",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/js-yaml": "^4.0.9",
|
"@types/js-yaml": "^4.0.9",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "librechat-data-provider",
|
"name": "librechat-data-provider",
|
||||||
"version": "0.6.9",
|
"version": "0.7.0",
|
||||||
"description": "data services for librechat apps",
|
"description": "data services for librechat apps",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"module": "dist/index.es.js",
|
"module": "dist/index.es.js",
|
||||||
|
|
|
||||||
|
|
@ -473,6 +473,7 @@ export const defaultModels = {
|
||||||
'code-bison-32k',
|
'code-bison-32k',
|
||||||
],
|
],
|
||||||
[EModelEndpoint.anthropic]: [
|
[EModelEndpoint.anthropic]: [
|
||||||
|
'claude-3-5-sonnet-20240620',
|
||||||
'claude-3-opus-20240229',
|
'claude-3-opus-20240229',
|
||||||
'claude-3-sonnet-20240229',
|
'claude-3-sonnet-20240229',
|
||||||
'claude-3-haiku-20240307',
|
'claude-3-haiku-20240307',
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue