opex792 commited on
Commit
244353a
·
verified ·
1 Parent(s): 69c22a9

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +41 -4
server.js CHANGED
@@ -78,13 +78,50 @@ const ServiceKey = sequelize.define('ServiceKey', {
78
  GeminiKey.hasMany(RequestLog, { foreignKey: 'gemini_key_id' });
79
  RequestLog.belongsTo(GeminiKey, { foreignKey: 'gemini_key_id' });
80
 
 
81
  const GEMINI_DEFAULT_LIMITS = {
82
- 'gemini-1.5-flash-latest': { rpm: 15, rpd: 500, tpm: 250000, tpd: 500000 },
83
- 'gemini-1.5-pro-latest': { rpm: 5, rpd: 25, tpm: 250000, tpd: 1000000 },
84
- 'gemini-1.0-pro': { rpm: 15, rpd: 1500, tpm: 1000000, tpd: 2000000 },
85
- 'default': { rpm: 15, rpd: 1500, tpm: 1000000, tpd: 2000000 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  };
87
 
 
 
88
  // ... (Функции getModelLimits, safeParseInt, selectBestGeminiKey остаются без изменений)
89
  function getModelLimits(model) {
90
  const foundModel = Object.keys(GEMINI_DEFAULT_LIMITS).find(k => model.startsWith(k));
 
78
  GeminiKey.hasMany(RequestLog, { foreignKey: 'gemini_key_id' });
79
  RequestLog.belongsTo(GeminiKey, { foreignKey: 'gemini_key_id' });
80
 
81
+
82
  const GEMINI_DEFAULT_LIMITS = {
83
+ // Models from the "Текущие ограничения по ставкам" (Current rate limits) table
84
+ 'gemini-2.5-flash-preview-05-20': { rpm: 10, tpm: 250000, rpd: 500 },
85
+ 'gemini-2.5-flash-preview-tts': { rpm: 3, tpm: 10000, rpd: 15 },
86
+ // Mapped from "Gemini 2.5 Pro Экспериментальный 03-25"
87
+ 'gemini-2.5-pro-preview-03-25': { rpm: 5, tpm: 250000, tpd: 1000000, rpd: 25 },
88
+ 'gemini-2.0-flash': { rpm: 15, tpm: 1000000, rpd: 1500 },
89
+ // Mapped from "Генерация изображений предварительного просмотра Flash Gemini 2.0"
90
+ 'gemini-2.0-flash-preview-image-generation': { rpm: 10, tpm: 200000, rpd: 100 },
91
+ // Mapped from "Gemini 2.0 Flash Экспериментальный"
92
+ 'gemini-2.0-flash-exp': { rpm: 10, tpm: 250000, rpd: 1000 },
93
+ 'gemini-2.0-flash-lite': { rpm: 30, tpm: 1000000, rpd: 1500 },
94
+ 'gemini-1.5-flash': { rpm: 15, tpm: 250000, rpd: 500 },
95
+ 'gemini-1.5-flash-8b': { rpm: 15, tpm: 250000, rpd: 500 },
96
+ // "latest" aliases pointing to the same limits
97
+ 'gemini-1.5-flash-latest': { rpm: 15, tpm: 250000, rpd: 500 },
98
+ 'gemini-1.5-flash-8b-latest': { rpm: 15, tpm: 250000, rpd: 500 },
99
+ // Gemma models
100
+ 'gemma-3': { rpm: 30, tpm: 15000, rpd: 14400 },
101
+ 'gemma-3n': { rpm: 30, tpm: 15000, rpd: 14400 },
102
+ // Embedding model
103
+ 'gemini-embedding-exp-03-07': { rpm: 5, rpd: 100 }, // TPM is not specified in the docs
104
+
105
+ // Models from "Ограничения скорости АРІ в реальном времени" (Real-time API rate limits) table
106
+ // Mapped from "Gemini 2.5 Flash Preview Собственный аудиодиалог"
107
+ 'gemini-2.5-flash-preview-native-audio-dialog': { concurrentSessions: 1, tpm: 25000, rpd: 5 },
108
+ // Mapped from "Gemini 2.5 Flash Experimental Native Audio Thinking Dialog"
109
+ 'gemini-2.5-flash-exp-native-audio-thinking-dialog': { concurrentSessions: 1, tpm: 10000, rpd: 5 },
110
+
111
+ // Models with no specified limits in the provided "Free tier" table
112
+ 'gemini-1.5-pro': null,
113
+ 'gemini-1.5-pro-latest': null,
114
+ 'gemini-2.5-pro': null,
115
+ 'gemini-2.5-pro-preview-06-05': null,
116
+ 'imagen-3.0-generate-002': null,
117
+ 'veo-2.0-generate-001': null,
118
+
119
+ // Default as a fallback, based on a common powerful model like gemini-2.0-flash
120
+ 'default': { rpm: 15, rpd: 1500, tpm: 1000000 }
121
  };
122
 
123
+
124
+
125
  // ... (Функции getModelLimits, safeParseInt, selectBestGeminiKey остаются без изменений)
126
  function getModelLimits(model) {
127
  const foundModel = Object.keys(GEMINI_DEFAULT_LIMITS).find(k => model.startsWith(k));