Skip to content

Commit

Permalink
Merge pull request #585 from Ilhasoft/staging
Browse files Browse the repository at this point in the history
Staging
  • Loading branch information
Sandro-Meireles committed Apr 30, 2021
2 parents a04570b + 0aa9c52 commit 0d1e7a8
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 12 deletions.
1 change: 1 addition & 0 deletions .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ exclude =
./bothub/common/migrations
./manage.py
./bothub/common/languages.py
./bothub/protos/
55 changes: 53 additions & 2 deletions bothub/api/v2/nlp/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -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 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
Expand Down
9 changes: 8 additions & 1 deletion bothub/api/v2/routers.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
)
Expand Down
32 changes: 24 additions & 8 deletions bothub/common/models.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import json
import uuid
from functools import reduce

Expand Down Expand Up @@ -379,14 +378,31 @@ def save(

def request_nlp_train(self, user_authorization, data):
try: # pragma: no cover
url = f"{self.nlp_server if self.nlp_server else settings.BOTHUB_NLP_BASE_URL}train/"
data = {"repository_version": data.get("repository_version")}
headers = {"Authorization": f"Bearer {user_authorization.uuid}"}

r = requests.post(url, data=json.dumps(data), headers=headers)

if data.get("repository_version"):
r = requests.post( # pragma: no cover
"{}train/".format(
self.nlp_server
if self.nlp_server
else settings.BOTHUB_NLP_BASE_URL
),
data={"repository_version": data.get("repository_version")},
headers={
"Authorization": "Bearer {}".format(user_authorization.uuid)
},
)
else:
r = requests.post( # pragma: no cover
"{}train/".format(
self.nlp_server
if self.nlp_server
else settings.BOTHUB_NLP_BASE_URL
),
data={},
headers={
"Authorization": "Bearer {}".format(user_authorization.uuid)
},
)
return r # pragma: no cover

except requests.exceptions.ConnectionError: # pragma: no cover
raise APIException( # pragma: no cover
{"status_code": status.HTTP_503_SERVICE_UNAVAILABLE},
Expand Down
2 changes: 1 addition & 1 deletion bothub/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
schema_view = get_schema_view(
openapi.Info(
title="API Documentation",
default_version="v2.1.21",
default_version="v2.1.22",
description="Documentation",
terms_of_service="https://bothub.it/terms",
contact=openapi.Contact(email="bothub@ilhasoft.com.br"),
Expand Down

0 comments on commit 0d1e7a8

Please sign in to comment.