fix: update deprecated gemini-1.5-flash fallback models to gemini-flash-latest and gemini-flash-lite-latest to resolve 404 API errors during rate limit fallback
Browse files- src/config.py +1 -1
- src/services/gemini_service.py +4 -4
src/config.py
CHANGED
|
@@ -38,7 +38,7 @@ class Settings(BaseSettings):
|
|
| 38 |
gemini_api_key: str = ""
|
| 39 |
use_gemini: bool = True # Feature flag: True = Gemini primary, False = Groq
|
| 40 |
gemini_primary_model: str = "gemini-2.0-flash"
|
| 41 |
-
gemini_fallback_model: str = "gemini-
|
| 42 |
gemini_vision_model: str = "gemini-2.0-flash"
|
| 43 |
gemini_temperature: float = 0.1
|
| 44 |
gemini_max_tokens: int = 2048
|
|
|
|
| 38 |
gemini_api_key: str = ""
|
| 39 |
use_gemini: bool = True # Feature flag: True = Gemini primary, False = Groq
|
| 40 |
gemini_primary_model: str = "gemini-2.0-flash"
|
| 41 |
+
gemini_fallback_model: str = "gemini-flash-latest"
|
| 42 |
gemini_vision_model: str = "gemini-2.0-flash"
|
| 43 |
gemini_temperature: float = 0.1
|
| 44 |
gemini_max_tokens: int = 2048
|
src/services/gemini_service.py
CHANGED
|
@@ -176,10 +176,10 @@ class GeminiService:
|
|
| 176 |
yield chunk.text
|
| 177 |
except Exception as e2:
|
| 178 |
logger.error(f"Fallback model {self.fallback_model} streaming also failed: {e2}")
|
| 179 |
-
logger.info("Falling back to gemini-
|
| 180 |
try:
|
| 181 |
response_stream = client.models.generate_content_stream(
|
| 182 |
-
model="gemini-
|
| 183 |
contents=prompt,
|
| 184 |
config=config
|
| 185 |
)
|
|
@@ -251,10 +251,10 @@ class GeminiVisionService:
|
|
| 251 |
)
|
| 252 |
except Exception as e:
|
| 253 |
logger.error(f"Primary vision model failed: {e}")
|
| 254 |
-
logger.info("Falling back to gemini-
|
| 255 |
try:
|
| 256 |
response = client.models.generate_content(
|
| 257 |
-
model="gemini-
|
| 258 |
contents=[prompt, types.Part.from_bytes(data=image_bytes, mime_type=mime_type)],
|
| 259 |
config=config
|
| 260 |
)
|
|
|
|
| 176 |
yield chunk.text
|
| 177 |
except Exception as e2:
|
| 178 |
logger.error(f"Fallback model {self.fallback_model} streaming also failed: {e2}")
|
| 179 |
+
logger.info("Falling back to gemini-flash-lite-latest...")
|
| 180 |
try:
|
| 181 |
response_stream = client.models.generate_content_stream(
|
| 182 |
+
model="gemini-flash-lite-latest",
|
| 183 |
contents=prompt,
|
| 184 |
config=config
|
| 185 |
)
|
|
|
|
| 251 |
)
|
| 252 |
except Exception as e:
|
| 253 |
logger.error(f"Primary vision model failed: {e}")
|
| 254 |
+
logger.info("Falling back to gemini-flash-lite-latest for vision...")
|
| 255 |
try:
|
| 256 |
response = client.models.generate_content(
|
| 257 |
+
model="gemini-flash-lite-latest",
|
| 258 |
contents=[prompt, types.Part.from_bytes(data=image_bytes, mime_type=mime_type)],
|
| 259 |
config=config
|
| 260 |
)
|