myrmidon / python /src /server /services /llm /validation.py
tek Atrust
chore(deploy): build monolithic server for Hugging Face
d5ef46f
Raw
History Blame Contribute Delete
2.06 kB
import time
from typing import Any
from ...config.logfire_config import get_logger
logger = get_logger(__name__)
async def validate_provider_instance(provider: str, instance_url: str | None = None) -> dict[str, Any]:
"""Validate a provider instance and return health information."""
# Late import to avoid circular dependency and match test patch points
from ..llm_provider_service import get_llm_client
try:
if provider == "ollama":
from ..ollama.model_discovery_service import model_discovery_service
health = await model_discovery_service.check_instance_health(
instance_url or "http://host.docker.internal:11434"
)
return {
"provider": provider,
"instance_url": instance_url,
"is_available": health.is_healthy,
"response_time_ms": health.response_time_ms,
"models_available": health.models_available,
"validation_timestamp": time.time(),
}
async with get_llm_client(provider=provider) as client:
start = time.time()
models_count = 0
if provider == "openai":
models = await client.models.list()
models_count = len(models.data)
elif provider == "anthropic":
# Anthropic validation restored from original logic
models_count = 1
else:
models_count = 1
return {
"provider": provider,
"is_available": True,
"response_time_ms": (time.time() - start) * 1000,
"models_available": models_count,
"validation_timestamp": time.time(),
}
except Exception as e:
logger.error(f"Error validating provider {provider}: {e}")
return {
"provider": provider,
"is_available": False,
"error_message": str(e),
"validation_timestamp": time.time(),
}