Application Configuration: - FastAPI application factory pattern - CORS middleware for cross-origin support - Global exception handlers for consistent error responses - AppException handler for custom errors - RequestValidationError handler for Pydantic validation - General exception handler for unexpected errors - Lifespan management for startup/shutdown events - Router registration for all API endpoints - OpenAPI schema with interactive documentation Models Service: - Integration with ModelRegistry - List available models endpoint - Model capability discovery Test Infrastructure: - Pytest configuration with async support - Test client fixtures for sync and async testing - Comprehensive main application tests (14 tests): - App creation and metadata - Router registration verification - CORS middleware and functionality - Exception handler registration and behavior - Lifespan event handling - OpenAPI schema generation - Documentation accessibility - Validation error handling - Models API tests (2 tests) - Total: 95 tests, 78.95% coverage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
34 lines
812 B
Python
34 lines
812 B
Python
"""
|
|
Models service.
|
|
Returns available models from the model registry.
|
|
"""
|
|
|
|
from src.agents.registry import ModelRegistry
|
|
from src.models.schemas import Model, ModelsResponse
|
|
|
|
|
|
async def list_models() -> ModelsResponse:
|
|
"""
|
|
List available models from registry.
|
|
|
|
Returns models with their capabilities and metadata.
|
|
|
|
Returns:
|
|
ModelsResponse: List of available models
|
|
"""
|
|
# Get models from registry with capabilities
|
|
registry_models = await ModelRegistry.list_models()
|
|
|
|
# Convert to Model schema format
|
|
models = [
|
|
Model(
|
|
id=model["id"],
|
|
object="model",
|
|
created=model["created"],
|
|
owned_by=model["owned_by"],
|
|
)
|
|
for model in registry_models
|
|
]
|
|
|
|
return ModelsResponse(object="list", data=models)
|