Skip to content

Commit

Permalink
Merge c54298c into a4d2b85
Browse files Browse the repository at this point in the history
  • Loading branch information
dyohan9 committed Nov 7, 2019
2 parents a4d2b85 + c54298c commit a612065
Showing 1 changed file with 41 additions and 16 deletions.
57 changes: 41 additions & 16 deletions bothub/api/v2/nlp/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from django.core.validators import URLValidator
from django.core.exceptions import ValidationError

from rest_framework import mixins
from rest_framework import mixins, pagination
from rest_framework import exceptions
from rest_framework.decorators import action
from rest_framework.response import Response
Expand Down Expand Up @@ -40,12 +40,17 @@ def check_auth(request):
raise exceptions.AuthenticationFailed(msg)


class NLPPagination(pagination.PageNumberPagination):
page_size = 2


class RepositoryAuthorizationTrainViewSet(
mixins.RetrieveModelMixin, mixins.CreateModelMixin, GenericViewSet
):
queryset = RepositoryAuthorization.objects
serializer_class = NLPSerializer
permission_classes = [AllowAny]
pagination_class = NLPPagination

def retrieve(self, request, *args, **kwargs):
check_auth(request)
Expand All @@ -63,39 +68,59 @@ def retrieve(self, request, *args, **kwargs):
}
)

@action(detail=True, methods=["POST"], url_name="start_training", lookup_field=[])
def start_training(self, request, **kwargs):
@action(detail=True, methods=["GET"], url_name="get_examples", lookup_field=[])
def get_examples(self, request, **kwargs):
check_auth(request)

repository = get_object_or_404(
RepositoryUpdate, pk=request.data.get("update_id")
queryset = get_object_or_404(
RepositoryUpdate, pk=request.query_params.get("update_id")
)

page = self.paginate_queryset(queryset.examples)

examples = [
{"example_id": example.id, "example_intent": example.intent}
for example in repository.examples
for example in page
]
return self.get_paginated_response(examples)

repository.start_training(
get_object_or_404(User, pk=request.data.get("by_user"))
@action(
detail=True, methods=["GET"], url_name="get_examples_labels", lookup_field=[]
)
def get_examples_labels(self, request, **kwargs):
check_auth(request)
queryset = get_object_or_404(
RepositoryUpdate, pk=request.query_params.get("update_id")
)

label_examples_query = []

for label_examples in (
repository.examples.filter(entities__entity__label__isnull=False)
page = self.paginate_queryset(
queryset.examples.filter(entities__entity__label__isnull=False)
.annotate(entities_count=models.Count("entities"))
.filter(entities_count__gt=0)
):
)

label_examples_query = []

for label_examples in page:
label_examples_query.append({"example_id": label_examples.id})
return self.get_paginated_response(label_examples_query)

@action(detail=True, methods=["POST"], url_name="start_training", lookup_field=[])
def start_training(self, request, **kwargs):
check_auth(request)

repository = get_object_or_404(
RepositoryUpdate, pk=request.data.get("update_id")
)

repository.start_training(
get_object_or_404(User, pk=request.data.get("by_user"))
)

return Response(
{
"language": repository.language,
"update_id": repository.id,
"repository_uuid": str(repository.repository.uuid),
"examples": examples,
"label_examples_query": label_examples_query,
"intent": repository.intents,
"algorithm": repository.algorithm,
"use_name_entities": repository.use_name_entities,
Expand Down

0 comments on commit a612065

Please sign in to comment.