47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
"""
|
|
Health check router module.
|
|
"""
|
|
|
|
from datetime import datetime
|
|
from fastapi import APIRouter, Depends
|
|
from typing import Dict, Any
|
|
|
|
from ..models import HealthResponse, ServerInfoResponse
|
|
from ..state import get_server_state, ServerState
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/", response_model=ServerInfoResponse)
|
|
async def root():
|
|
"""Server root path information."""
|
|
return ServerInfoResponse(
|
|
name="CADDesigner API Server",
|
|
version="1.0.0",
|
|
description="OpenAI-compatible API for CADDesigner",
|
|
api_version="v1",
|
|
supported_models=["cadagent"],
|
|
capabilities=[
|
|
"chat.completions",
|
|
"streaming",
|
|
"tool_calling",
|
|
"conversation_history",
|
|
"sketch_pad_storage",
|
|
],
|
|
)
|
|
|
|
|
|
@router.get("/health", response_model=HealthResponse)
|
|
async def health_check(state: ServerState = Depends(get_server_state)):
|
|
"""Health check endpoint."""
|
|
default_agent = (
|
|
state.agent_registry.get_agent("cadagent") if state.agent_registry else None
|
|
)
|
|
|
|
return HealthResponse(
|
|
status="ok",
|
|
timestamp=datetime.now().isoformat(),
|
|
version="1.0.0",
|
|
agent_name=default_agent.name if default_agent else "Not initialized",
|
|
)
|