mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-16 16:30:15 +01:00
❇️ feat: Add Gemini 2.5 Default Models & Pricing (#9892)
* feat: Add Gemini 2.5 models support * feat: Remove deprecated Gemini models
This commit is contained in:
parent
c19b8755a7
commit
0b2fde73e3
6 changed files with 25 additions and 12 deletions
|
|
@ -163,10 +163,10 @@ GOOGLE_KEY=user_provided
|
||||||
# GOOGLE_AUTH_HEADER=true
|
# GOOGLE_AUTH_HEADER=true
|
||||||
|
|
||||||
# Gemini API (AI Studio)
|
# Gemini API (AI Studio)
|
||||||
# GOOGLE_MODELS=gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite-preview-06-17,gemini-2.0-flash,gemini-2.0-flash-lite
|
# GOOGLE_MODELS=gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash,gemini-2.0-flash-lite
|
||||||
|
|
||||||
# Vertex AI
|
# Vertex AI
|
||||||
# GOOGLE_MODELS=gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite-preview-06-17,gemini-2.0-flash-001,gemini-2.0-flash-lite-001
|
# GOOGLE_MODELS=gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash-001,gemini-2.0-flash-lite-001
|
||||||
|
|
||||||
# GOOGLE_TITLE_MODEL=gemini-2.0-flash-lite-001
|
# GOOGLE_TITLE_MODEL=gemini-2.0-flash-lite-001
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,8 @@ const tokenValues = Object.assign(
|
||||||
'gemini-2.0-flash': { prompt: 0.1, completion: 0.4 },
|
'gemini-2.0-flash': { prompt: 0.1, completion: 0.4 },
|
||||||
'gemini-2.0': { prompt: 0, completion: 0 }, // https://ai.google.dev/pricing
|
'gemini-2.0': { prompt: 0, completion: 0 }, // https://ai.google.dev/pricing
|
||||||
'gemini-2.5-pro': { prompt: 1.25, completion: 10 },
|
'gemini-2.5-pro': { prompt: 1.25, completion: 10 },
|
||||||
'gemini-2.5-flash': { prompt: 0.15, completion: 3.5 },
|
'gemini-2.5-flash': { prompt: 0.3, completion: 2.5 },
|
||||||
|
'gemini-2.5-flash-lite': { prompt: 0.075, completion: 0.4 },
|
||||||
'gemini-2.5': { prompt: 0, completion: 0 }, // Free for a period of time
|
'gemini-2.5': { prompt: 0, completion: 0 }, // Free for a period of time
|
||||||
'gemini-1.5-flash-8b': { prompt: 0.075, completion: 0.3 },
|
'gemini-1.5-flash-8b': { prompt: 0.075, completion: 0.3 },
|
||||||
'gemini-1.5-flash': { prompt: 0.15, completion: 0.6 },
|
'gemini-1.5-flash': { prompt: 0.15, completion: 0.6 },
|
||||||
|
|
|
||||||
|
|
@ -571,6 +571,9 @@ describe('getCacheMultiplier', () => {
|
||||||
|
|
||||||
describe('Google Model Tests', () => {
|
describe('Google Model Tests', () => {
|
||||||
const googleModels = [
|
const googleModels = [
|
||||||
|
'gemini-2.5-pro',
|
||||||
|
'gemini-2.5-flash',
|
||||||
|
'gemini-2.5-flash-lite',
|
||||||
'gemini-2.5-pro-preview-05-06',
|
'gemini-2.5-pro-preview-05-06',
|
||||||
'gemini-2.5-flash-preview-04-17',
|
'gemini-2.5-flash-preview-04-17',
|
||||||
'gemini-2.5-exp',
|
'gemini-2.5-exp',
|
||||||
|
|
@ -611,6 +614,9 @@ describe('Google Model Tests', () => {
|
||||||
|
|
||||||
it('should map to the correct model keys', () => {
|
it('should map to the correct model keys', () => {
|
||||||
const expected = {
|
const expected = {
|
||||||
|
'gemini-2.5-pro': 'gemini-2.5-pro',
|
||||||
|
'gemini-2.5-flash': 'gemini-2.5-flash',
|
||||||
|
'gemini-2.5-flash-lite': 'gemini-2.5-flash-lite',
|
||||||
'gemini-2.5-pro-preview-05-06': 'gemini-2.5-pro',
|
'gemini-2.5-pro-preview-05-06': 'gemini-2.5-pro',
|
||||||
'gemini-2.5-flash-preview-04-17': 'gemini-2.5-flash',
|
'gemini-2.5-flash-preview-04-17': 'gemini-2.5-flash',
|
||||||
'gemini-2.5-exp': 'gemini-2.5',
|
'gemini-2.5-exp': 'gemini-2.5',
|
||||||
|
|
|
||||||
|
|
@ -262,6 +262,15 @@ describe('getModelMaxTokens', () => {
|
||||||
expect(getModelMaxTokens('gemini-1.5-pro-preview-0409', EModelEndpoint.google)).toBe(
|
expect(getModelMaxTokens('gemini-1.5-pro-preview-0409', EModelEndpoint.google)).toBe(
|
||||||
maxTokensMap[EModelEndpoint.google]['gemini-1.5'],
|
maxTokensMap[EModelEndpoint.google]['gemini-1.5'],
|
||||||
);
|
);
|
||||||
|
expect(getModelMaxTokens('gemini-2.5-pro', EModelEndpoint.google)).toBe(
|
||||||
|
maxTokensMap[EModelEndpoint.google]['gemini-2.5-pro'],
|
||||||
|
);
|
||||||
|
expect(getModelMaxTokens('gemini-2.5-flash', EModelEndpoint.google)).toBe(
|
||||||
|
maxTokensMap[EModelEndpoint.google]['gemini-2.5-flash'],
|
||||||
|
);
|
||||||
|
expect(getModelMaxTokens('gemini-2.5-flash-lite', EModelEndpoint.google)).toBe(
|
||||||
|
maxTokensMap[EModelEndpoint.google]['gemini-2.5-flash-lite'],
|
||||||
|
);
|
||||||
expect(getModelMaxTokens('gemini-pro-vision', EModelEndpoint.google)).toBe(
|
expect(getModelMaxTokens('gemini-pro-vision', EModelEndpoint.google)).toBe(
|
||||||
maxTokensMap[EModelEndpoint.google]['gemini-pro-vision'],
|
maxTokensMap[EModelEndpoint.google]['gemini-pro-vision'],
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -91,6 +91,7 @@ const googleModels = {
|
||||||
'gemini-2.5': 1000000, // 1M input tokens, 64k output tokens
|
'gemini-2.5': 1000000, // 1M input tokens, 64k output tokens
|
||||||
'gemini-2.5-pro': 1000000,
|
'gemini-2.5-pro': 1000000,
|
||||||
'gemini-2.5-flash': 1000000,
|
'gemini-2.5-flash': 1000000,
|
||||||
|
'gemini-2.5-flash-lite': 1000000,
|
||||||
'gemini-2.0': 2000000,
|
'gemini-2.0': 2000000,
|
||||||
'gemini-2.0-flash': 1000000,
|
'gemini-2.0-flash': 1000000,
|
||||||
'gemini-2.0-flash-lite': 1000000,
|
'gemini-2.0-flash-lite': 1000000,
|
||||||
|
|
|
||||||
|
|
@ -1017,18 +1017,13 @@ export const defaultModels = {
|
||||||
[EModelEndpoint.assistants]: [...sharedOpenAIModels, 'chatgpt-4o-latest'],
|
[EModelEndpoint.assistants]: [...sharedOpenAIModels, 'chatgpt-4o-latest'],
|
||||||
[EModelEndpoint.agents]: sharedOpenAIModels, // TODO: Add agent models (agentsModels)
|
[EModelEndpoint.agents]: sharedOpenAIModels, // TODO: Add agent models (agentsModels)
|
||||||
[EModelEndpoint.google]: [
|
[EModelEndpoint.google]: [
|
||||||
|
// Gemini 2.5 Models
|
||||||
|
'gemini-2.5-pro',
|
||||||
|
'gemini-2.5-flash',
|
||||||
|
'gemini-2.5-flash-lite',
|
||||||
// Gemini 2.0 Models
|
// Gemini 2.0 Models
|
||||||
'gemini-2.0-flash-001',
|
'gemini-2.0-flash-001',
|
||||||
'gemini-2.0-flash-exp',
|
|
||||||
'gemini-2.0-flash-lite',
|
'gemini-2.0-flash-lite',
|
||||||
'gemini-2.0-pro-exp-02-05',
|
|
||||||
// Gemini 1.5 Models
|
|
||||||
'gemini-1.5-flash-001',
|
|
||||||
'gemini-1.5-flash-002',
|
|
||||||
'gemini-1.5-pro-001',
|
|
||||||
'gemini-1.5-pro-002',
|
|
||||||
// Gemini 1.0 Models
|
|
||||||
'gemini-1.0-pro-001',
|
|
||||||
],
|
],
|
||||||
[EModelEndpoint.anthropic]: sharedAnthropicModels,
|
[EModelEndpoint.anthropic]: sharedAnthropicModels,
|
||||||
[EModelEndpoint.openAI]: [
|
[EModelEndpoint.openAI]: [
|
||||||
|
|
@ -1111,6 +1106,7 @@ export const visionModels = [
|
||||||
'gemini-exp',
|
'gemini-exp',
|
||||||
'gemini-1.5',
|
'gemini-1.5',
|
||||||
'gemini-2',
|
'gemini-2',
|
||||||
|
'gemini-2.5',
|
||||||
'gemini-3',
|
'gemini-3',
|
||||||
'moondream',
|
'moondream',
|
||||||
'llama3.2-vision',
|
'llama3.2-vision',
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue