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:
2025-12-06 10:38:21 +01:00
co-authored by Claude
parent cf6aa9a5e7
commit cffb498886
4 changed files with 80 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
"""
Models service.
Currently returns mock model list.
TODO: Fetch from Ollama in future.
"""
import time
from src.models.schemas import Model, ModelsResponse
# Mock models (will be replaced with Ollama models later)
MOCK_MODELS = [
{"id": "mistral-nemo:latest", "created": int(time.time())},
]
async def list_models() -> ModelsResponse:
"""
List available models (mock implementation).
Returns:
Mock list of models
"""
models = [
Model(
id=model["id"],
object="model",
created=model["created"],
owned_by="system",
)
for model in MOCK_MODELS
]
return ModelsResponse(object="list", data=models)