mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-03-11 02:22:37 +01:00
🤖 feat: gemini-3.1-flash-lite-preview Window & Pricing (#12043)
* 🤖 feat: `gemini-3.1-flash-lite-preview` Window & Pricing
- Updated `.env.example` to include `gemini-3.1-flash-lite-preview` in the list of available models.
- Enhanced `tx.js` to define token values for `gemini-3.1-flash-lite`.
- Adjusted `tokens.ts` to allocate input tokens for `gemini-3.1-flash-lite`.
- Modified `config.ts` to include `gemini-3.1-flash-lite-preview` in the default models list.
* chore: testing for `gemini-3.1-flash-lite` model, comments
- Updated `tx.js` to include cache token values for `gemini-3.1-flash-lite` with specific write and read rates.
- Enhanced `tx.spec.js` to include tests for the new `gemini-3.1-flash-lite-preview` model, ensuring correct rate retrieval for both prompt and completion token types.
This commit is contained in:
parent
3e487df193
commit
a2a09b556a
5 changed files with 26 additions and 3 deletions
|
|
@ -196,10 +196,10 @@ GOOGLE_KEY=user_provided
|
||||||
# GOOGLE_AUTH_HEADER=true
|
# GOOGLE_AUTH_HEADER=true
|
||||||
|
|
||||||
# Gemini API (AI Studio)
|
# Gemini API (AI Studio)
|
||||||
# GOOGLE_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash,gemini-2.0-flash-lite
|
# GOOGLE_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-3.1-flash-lite-preview,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-3.1-pro-preview,gemini-3.1-pro-preview-customtools,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_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-3.1-flash-lite-preview,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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -201,6 +201,7 @@ const tokenValues = Object.assign(
|
||||||
'gemini-3': { prompt: 2, completion: 12 },
|
'gemini-3': { prompt: 2, completion: 12 },
|
||||||
'gemini-3-pro-image': { prompt: 2, completion: 120 },
|
'gemini-3-pro-image': { prompt: 2, completion: 120 },
|
||||||
'gemini-3.1': { prompt: 2, completion: 12 },
|
'gemini-3.1': { prompt: 2, completion: 12 },
|
||||||
|
'gemini-3.1-flash-lite': { prompt: 0.25, completion: 1.5 },
|
||||||
'gemini-pro-vision': { prompt: 0.5, completion: 1.5 },
|
'gemini-pro-vision': { prompt: 0.5, completion: 1.5 },
|
||||||
grok: { prompt: 2.0, completion: 10.0 }, // Base pattern defaults to grok-2
|
grok: { prompt: 2.0, completion: 10.0 }, // Base pattern defaults to grok-2
|
||||||
'grok-beta': { prompt: 5.0, completion: 15.0 },
|
'grok-beta': { prompt: 5.0, completion: 15.0 },
|
||||||
|
|
@ -331,8 +332,10 @@ const cacheTokenValues = {
|
||||||
'kimi-k2-0711-preview': { write: 0.6, read: 0.15 },
|
'kimi-k2-0711-preview': { write: 0.6, read: 0.15 },
|
||||||
'kimi-k2-thinking': { write: 0.6, read: 0.15 },
|
'kimi-k2-thinking': { write: 0.6, read: 0.15 },
|
||||||
'kimi-k2-thinking-turbo': { write: 1.15, read: 0.15 },
|
'kimi-k2-thinking-turbo': { write: 1.15, read: 0.15 },
|
||||||
// Gemini 3.1 models - cache read: $0.20/1M (<=200k), cache write: standard input price
|
// Gemini 3.1 Pro - cache write: $2.00/1M, cache read: $0.20/1M
|
||||||
'gemini-3.1': { write: 2, read: 0.2 },
|
'gemini-3.1': { write: 2, read: 0.2 },
|
||||||
|
// Gemini 3.1 Flash-Lite - cache write: $0.25/1M, cache read: $0.025/1M
|
||||||
|
'gemini-3.1-flash-lite': { write: 0.25, read: 0.025 },
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1347,6 +1347,7 @@ describe('Google Model Tests', () => {
|
||||||
'gemini-3',
|
'gemini-3',
|
||||||
'gemini-3.1-pro-preview',
|
'gemini-3.1-pro-preview',
|
||||||
'gemini-3.1-pro-preview-customtools',
|
'gemini-3.1-pro-preview-customtools',
|
||||||
|
'gemini-3.1-flash-lite-preview',
|
||||||
'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',
|
||||||
|
|
@ -1393,6 +1394,7 @@ describe('Google Model Tests', () => {
|
||||||
'gemini-3': 'gemini-3',
|
'gemini-3': 'gemini-3',
|
||||||
'gemini-3.1-pro-preview': 'gemini-3.1',
|
'gemini-3.1-pro-preview': 'gemini-3.1',
|
||||||
'gemini-3.1-pro-preview-customtools': 'gemini-3.1',
|
'gemini-3.1-pro-preview-customtools': 'gemini-3.1',
|
||||||
|
'gemini-3.1-flash-lite-preview': 'gemini-3.1-flash-lite',
|
||||||
'gemini-2.5-pro': 'gemini-2.5-pro',
|
'gemini-2.5-pro': 'gemini-2.5-pro',
|
||||||
'gemini-2.5-flash': 'gemini-2.5-flash',
|
'gemini-2.5-flash': 'gemini-2.5-flash',
|
||||||
'gemini-2.5-flash-lite': 'gemini-2.5-flash-lite',
|
'gemini-2.5-flash-lite': 'gemini-2.5-flash-lite',
|
||||||
|
|
@ -1478,6 +1480,22 @@ describe('Google Model Tests', () => {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should return correct rates for Gemini 3.1 Flash-Lite', () => {
|
||||||
|
const model = 'gemini-3.1-flash-lite-preview';
|
||||||
|
expect(getMultiplier({ model, tokenType: 'prompt', endpoint: EModelEndpoint.google })).toBe(
|
||||||
|
tokenValues['gemini-3.1-flash-lite'].prompt,
|
||||||
|
);
|
||||||
|
expect(getMultiplier({ model, tokenType: 'completion', endpoint: EModelEndpoint.google })).toBe(
|
||||||
|
tokenValues['gemini-3.1-flash-lite'].completion,
|
||||||
|
);
|
||||||
|
expect(getCacheMultiplier({ model, cacheType: 'write' })).toBe(
|
||||||
|
cacheTokenValues['gemini-3.1-flash-lite'].write,
|
||||||
|
);
|
||||||
|
expect(getCacheMultiplier({ model, cacheType: 'read' })).toBe(
|
||||||
|
cacheTokenValues['gemini-3.1-flash-lite'].read,
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Gemini 3.1 Premium Token Pricing', () => {
|
describe('Gemini 3.1 Premium Token Pricing', () => {
|
||||||
|
|
|
||||||
|
|
@ -107,6 +107,7 @@ const googleModels = {
|
||||||
'gemini-3': 1000000, // 1M input tokens, 64k output tokens
|
'gemini-3': 1000000, // 1M input tokens, 64k output tokens
|
||||||
'gemini-3-pro-image': 1000000,
|
'gemini-3-pro-image': 1000000,
|
||||||
'gemini-3.1': 1000000, // 1M input tokens, 64k output tokens
|
'gemini-3.1': 1000000, // 1M input tokens, 64k output tokens
|
||||||
|
'gemini-3.1-flash-lite': 1000000, // 1M input tokens, 64k output tokens
|
||||||
'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,
|
||||||
|
|
|
||||||
|
|
@ -1196,6 +1196,7 @@ export const defaultModels = {
|
||||||
// Gemini 3.1 Models
|
// Gemini 3.1 Models
|
||||||
'gemini-3.1-pro-preview',
|
'gemini-3.1-pro-preview',
|
||||||
'gemini-3.1-pro-preview-customtools',
|
'gemini-3.1-pro-preview-customtools',
|
||||||
|
'gemini-3.1-flash-lite-preview',
|
||||||
// Gemini 3 Models
|
// Gemini 3 Models
|
||||||
'gemini-3-pro-preview',
|
'gemini-3-pro-preview',
|
||||||
'gemini-3-flash-preview',
|
'gemini-3-flash-preview',
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue