Spaces:
Sleeping
Sleeping
File size: 4,294 Bytes
3cc1b9e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
import time
from fastapi import APIRouter, Depends
# from typing import List, Dict, Any # Removed as unused
from auth import get_api_key # Changed from relative
router = APIRouter()
@router.get("/v1/models")
async def list_models(api_key: str = Depends(get_api_key)):
# This model list should ideally be dynamic or configurable
models_data = [
{"id": "gemini-2.5-pro-exp-03-25", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-pro-exp-03-25-search", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-pro-exp-03-25-encrypt", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-pro-exp-03-25-encrypt-full", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-pro-exp-03-25-auto", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-pro-preview-03-25", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-pro-preview-03-25-search", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-pro-preview-03-25-encrypt", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-pro-preview-03-25-encrypt-full", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-pro-preview-03-25-auto", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-pro-preview-05-06", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-pro-preview-05-06-search", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-pro-preview-05-06-encrypt", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-pro-preview-05-06-encrypt-full", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-pro-preview-05-06-auto", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.0-flash", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.0-flash-search", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.0-flash-lite", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.0-flash-lite-search", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.0-pro-exp-02-05", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-1.5-flash", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-flash-preview-04-17", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-flash-preview-04-17-encrypt", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-flash-preview-04-17-nothinking", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-2.5-flash-preview-04-17-max", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-1.5-flash-8b", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-1.5-pro", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-1.0-pro-002", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-1.0-pro-vision-001", "object": "model", "created": int(time.time()), "owned_by": "google"},
{"id": "gemini-embedding-exp", "object": "model", "created": int(time.time()), "owned_by": "google"}
]
# Add root and parent for consistency with OpenAI-like response
for model_info in models_data:
model_info.setdefault("permission", [])
model_info.setdefault("root", model_info["id"]) # Typically the model ID itself
model_info.setdefault("parent", None) # Typically None for base models
return {"object": "list", "data": models_data} |