@@ -1140,3 +1140,6 @@ msgstr "При отправке письма произошла неизвест msgid "You cannot change the password of an unconfirmed e-mail user." msgstr "Вы не можете изменить пароль неподтвержденного по e-mail пользователя." + +msgid "Model version not found or does not exist. Available versions: %(available_versions)s" +msgstr "Версия модели не найдена или не существует. Доступные версии: %(available_versions)s" @@ -9,6 +9,7 @@ import requests from django.core.files import File from messages.models import Message +from ml_model.exceptions import InvalidVersionException from ml_model.models import ( ModelInput, NeuronModel, @@ -76,7 +77,9 @@ class Fluxproultra(SimpleService): def make(self, input_message: Message, save: bool = True) -> list[Message]: start_time = time.time() - version = input_message.info.get('version') + version = input_message.info.pop('version', 'flux-1.1-pro-ultra') + if version not in self.TOKENS_COST.keys(): + raise InvalidVersionException(available_versions=', '.join(self.TOKENS_COST.keys())) callback_data = dict( { 'prompt': self.translate_prompt(input_message.content), @@ -15,3 +15,13 @@ class LargeResourceConsumptionException(Exception): ... class DeploymentDisabled(Exception): def __str__(self): return _('The model is currently disabled. Please try again later.') + + +class InvalidVersionException(Exception): + def __init__(self, available_versions: str) -> None: + self.available_versions = available_versions + + def __str__(self) -> str: + return _( + 'Model version not found or does not exist. Available versions: %(available_versions)s' + ) % {'available_versions': self.available_versions}