myrmidon / python /src /server /services /discovery /providers /google_handler.py
tek Atrust
chore(deploy): build monolithic server for Hugging Face
d5ef46f
Raw
History Blame Contribute Delete
3.26 kB
import aiohttp
from ...config.logfire_config import get_logger
from ..models import ModelSpec
logger = get_logger(__name__)
async def discover_google_models(api_key: str, session: aiohttp.ClientSession) -> list[ModelSpec]:
"""1:1 Physical Parity Implementation from ProviderDiscoveryService."""
models = []
try:
model_specs = [
ModelSpec(
"gemini-1.5-pro",
"google",
2097152,
True,
True,
False,
None,
1.25,
5.00,
"Advanced reasoning and multimodal capabilities",
),
ModelSpec(
"gemini-1.5-flash",
"google",
1048576,
True,
True,
False,
None,
0.075,
0.30,
"Fast and versatile performance",
),
ModelSpec(
"gemini-3.1-pro",
"google",
2097152,
True,
True,
False,
None,
1.25,
5.00,
"Latest advanced reasoning model",
),
ModelSpec(
"gemini-3.1-flash",
"google",
1048576,
True,
True,
False,
None,
0.10,
0.40,
"Latest high-performance flash model",
),
ModelSpec(
"gemini-3.1-flash-lite", "google", 1048576, True, True, False, None, 0.05, 0.20, "Ultra-fast lite model"
),
ModelSpec(
"gemini-2.0-flash-lite-preview-02-05",
"google",
1048576,
True,
True,
False,
None,
0.05,
0.20,
"Next-gen ultra-fast preview model",
),
ModelSpec(
"gemini-1.0-pro",
"google",
30720,
True,
False,
False,
None,
0.50,
1.50,
"Efficient model for text tasks",
),
ModelSpec(
"text-embedding-004",
"google",
2048,
False,
False,
True,
768,
0.00,
0,
"Google's latest embedding model",
),
]
base_url = "https://generativelanguage.googleapis.com/v1beta/models"
headers = {"x-goog-api-key": api_key}
async with session.get(base_url, headers=headers) as response:
if response.status == 200:
models = model_specs
logger.info(f"Discovered {len(models)} Google models")
else:
logger.warning(f"Google API returned status {response.status}")
except Exception as e:
logger.error(f"Error discovering Google models: {e}")
return models