Files
tatlock/src/models/service.py
T
jpmschweitzerandClaude 8b6cff2920 Add application setup and test infrastructure
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>
2025-12-06 19:39:02 +01:00

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)