Implement models listing domain
Add OpenAI-compatible models listing endpoint. Currently returns mock model (mistral-nemo:latest). Models Router (src/models/router.py): - GET /v1/models endpoint - OpenAI-compatible response format - Lists available models Models Schemas (src/models/schemas.py): - Model object with id, created, owned_by - ModelsListResponse with data array - Full OpenAI API compatibility Models Service (src/models/service.py): - list_models() function - Mock model listing (ready for Ollama integration) - Returns mistral-nemo:latest as default Following Best Practices: - Business logic in service layer - Router only handles HTTP concerns - Type hints throughout - Async/await pattern Model: mistral-nemo:latest Status: Mock implementation (ready for Ollama integration) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
"""
|
||||
Models router.
|
||||
OpenAI-compatible /v1/models endpoint.
|
||||
"""
|
||||
import logging
|
||||
|
||||
from fastapi import APIRouter
|
||||
|
||||
from src.models import service
|
||||
from src.models.schemas import ModelsResponse
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
router = APIRouter(prefix="/models", tags=["models"])
|
||||
|
||||
|
||||
@router.get("", response_model=ModelsResponse)
|
||||
async def list_models() -> ModelsResponse:
|
||||
"""
|
||||
List available models (OpenAI-compatible).
|
||||
|
||||
Currently returns mock model list.
|
||||
|
||||
Returns:
|
||||
List of available models
|
||||
"""
|
||||
logger.info("Listing available models")
|
||||
return await service.list_models()
|
||||
Reference in New Issue
Block a user