From 6357ba0886647e82d71f05b12bda637ac1e3714c Mon Sep 17 00:00:00 2001 From: Sandro-Meireles Date: Fri, 30 Apr 2021 16:09:28 -0300 Subject: [PATCH 1/3] feat: Reposutory train languages API --- .flake8 | 1 + bothub/api/v2/nlp/views.py | 55 ++++++++++++++++++++++++++++++++++++-- bothub/api/v2/routers.py | 9 ++++++- 3 files changed, 62 insertions(+), 3 deletions(-) diff --git a/.flake8 b/.flake8 index 0c6e3cbe5..54c855e02 100644 --- a/.flake8 +++ b/.flake8 @@ -6,3 +6,4 @@ exclude = ./bothub/common/migrations ./manage.py ./bothub/common/languages.py + ./bothub/protos/ diff --git a/bothub/api/v2/nlp/views.py b/bothub/api/v2/nlp/views.py index faf9f26e6..0d751e5ae 100644 --- a/bothub/api/v2/nlp/views.py +++ b/bothub/api/v2/nlp/views.py @@ -65,8 +65,10 @@ def retrieve(self, request, *args, **kwargs): repository_version = request.query_params.get("repository_version") if repository_version: - current_version = repository_authorization.repository.get_specific_version_id( - repository_version, str(request.query_params.get("language")) + current_version = ( + repository_authorization.repository.get_specific_version_id( + repository_version, str(request.query_params.get("language")) + ) ) else: current_version = repository_authorization.repository.current_version( @@ -193,6 +195,55 @@ def training_log(self, request, **kwargs): return Response({}) +class RepositoryAuthorizationTrainLanguagesViewSet( + mixins.RetrieveModelMixin, GenericViewSet +): + queryset = RepositoryAuthorization.objects + serializer_class = NLPSerializer + permission_classes = [AllowAny] + pagination_class = NLPPagination + authentication_classes = [NLPAuthentication] + + def retrieve(self, request, *args, **kwargs): + check_auth(request) + repository_authorization = self.get_object() + + if not repository_authorization.can_contribute: + raise PermissionDenied() + + repository_version = request.query_params.get("repository_version") + + response = [] + + for language in settings.SUPPORTED_LANGUAGES: + + if repository_version: + current_version = ( + repository_authorization.repository.get_specific_version_id( + repository_version, language + ) + ) + else: + current_version = repository_authorization.repository.current_version( + language + ) + + if not current_version.ready_for_train: + response.append( + { + "current_version_id": current_version.id, + "repository_authorization_user_id": repository_authorization.user.id, + "language": current_version.language, + "algorithm": current_version.repository_version.repository.algorithm, + "use_name_entities": current_version.repository_version.repository.use_name_entities, + "use_competing_intents": current_version.repository_version.repository.use_competing_intents, + "use_analyze_char": current_version.repository_version.repository.use_analyze_char, + } + ) + + return Response(response) + + class RepositoryAuthorizationParseViewSet(mixins.RetrieveModelMixin, GenericViewSet): queryset = RepositoryAuthorization.objects serializer_class = NLPSerializer diff --git a/bothub/api/v2/routers.py b/bothub/api/v2/routers.py index a0fcf3e0b..33b00b463 100644 --- a/bothub/api/v2/routers.py +++ b/bothub/api/v2/routers.py @@ -30,7 +30,11 @@ from .repository.views import RepositoryAuthorizationViewSet from .repository.views import RepositoryAuthorizationRequestsViewSet from .repository.views import RepositoryExampleViewSet -from .nlp.views import RepositoryAuthorizationTrainViewSet, RepositoryNLPLogsViewSet +from .nlp.views import ( + RepositoryAuthorizationTrainViewSet, + RepositoryNLPLogsViewSet, + RepositoryAuthorizationTrainLanguagesViewSet, +) from .nlp.views import RepositoryAuthorizationParseViewSet from .nlp.views import RepositoryAuthorizationInfoViewSet from .nlp.views import RepositoryAuthorizationEvaluateViewSet @@ -170,6 +174,9 @@ def get_lookup_regex(self, viewset, lookup_prefix=""): router.register( "repository/nlp/authorization/train", RepositoryAuthorizationTrainViewSet ) +router.register( + "repository/nlp/authorization/train-languages", RepositoryAuthorizationTrainLanguagesViewSet +) router.register( "repository/nlp/authorization/parse", RepositoryAuthorizationParseViewSet ) From 7f71739c383797bd58ef39c714c897f0b45d7b2a Mon Sep 17 00:00:00 2001 From: Sandro-Meireles Date: Fri, 30 Apr 2021 16:36:17 -0300 Subject: [PATCH 2/3] fix: Adjusted condition --- bothub/api/v2/nlp/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bothub/api/v2/nlp/views.py b/bothub/api/v2/nlp/views.py index 0d751e5ae..b434340f0 100644 --- a/bothub/api/v2/nlp/views.py +++ b/bothub/api/v2/nlp/views.py @@ -228,7 +228,7 @@ def retrieve(self, request, *args, **kwargs): language ) - if not current_version.ready_for_train: + if current_version.ready_for_train: response.append( { "current_version_id": current_version.id, From 208c979eb0b174a9f604704705c4c56e22e60841 Mon Sep 17 00:00:00 2001 From: Sandro-Meireles Date: Fri, 30 Apr 2021 16:39:44 -0300 Subject: [PATCH 3/3] fix: Default version --- bothub/urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bothub/urls.py b/bothub/urls.py index 135680c90..8aa408aba 100644 --- a/bothub/urls.py +++ b/bothub/urls.py @@ -16,7 +16,7 @@ schema_view = get_schema_view( openapi.Info( title="API Documentation", - default_version="v2.1.18", + default_version="v2.1.22", description="Documentation", terms_of_service="https://bothub.it/terms", contact=openapi.Contact(email="bothub@ilhasoft.com.br"),