28 lines
860 B
Python
28 lines
860 B
Python
from django.conf import settings
|
|
from health_check.backends import BaseHealthCheckBackend
|
|
from yandex_cloud_ml_sdk import YCloudML
|
|
from yandex_cloud_ml_sdk.exceptions import YCloudMLError
|
|
|
|
|
|
class YandexAIHealthCheck(BaseHealthCheckBackend):
|
|
critical_service = False
|
|
|
|
def check_status(self) -> None:
|
|
try:
|
|
sdk = YCloudML(
|
|
folder_id=settings.YANDEX_CLOUD_FOLDER_ID,
|
|
auth=settings.YANDEX_CLOUD_API_KEY,
|
|
)
|
|
result = sdk.models.completions(
|
|
"yandexgpt-lite", model_version="latest"
|
|
).tokenize("ping")
|
|
|
|
if not result:
|
|
self.add_error("YandexAI API is unaccessible")
|
|
|
|
except YCloudMLError:
|
|
self.add_error("YandexAI API is unaccessible")
|
|
|
|
def identifier(self) -> str:
|
|
return self.__class__.__name__
|