20 lines
678 B
Python
20 lines
678 B
Python
"""
|
|
Gemini LLM Provider.
|
|
"""
|
|
|
|
from typing import Optional
|
|
from app.ai.providers.base import LLMProvider
|
|
from app.ai.gemini_client import GeminiClient
|
|
|
|
|
|
class GeminiProvider(LLMProvider):
|
|
def __init__(self, timeout_seconds: float = 4.0):
|
|
super().__init__(timeout_seconds=timeout_seconds)
|
|
self.client = GeminiClient()
|
|
|
|
async def _generate_internal(self, system_prompt: str, user_message: str) -> Optional[str]:
|
|
api_key = getattr(self.client, "api_key", None)
|
|
if not api_key or api_key in ["your_gemini_key", "your_gemini_api_key", ""]:
|
|
return None
|
|
return await self.client.generate_response(system_prompt, user_message)
|