Skip to content

Commit

Permalink
Merge branch 'develop' into feature/add_router_compare_results
Browse files Browse the repository at this point in the history
  • Loading branch information
mldzs committed Mar 1, 2021
2 parents 623a27f + 9d33685 commit 88c95af
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 57 deletions.
7 changes: 3 additions & 4 deletions bothub/api/v2/nlp/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
RepositoryNLPLog,
RepositoryExample,
RepositoryEvaluate,
RepositoryQueueTask,
)
from bothub.common.models import RepositoryEntity
from bothub.common.models import RepositoryEvaluateResult
Expand Down Expand Up @@ -136,10 +135,10 @@ def save_queue_id(self, request, **kwargs):

id_queue = request.data.get("task_id")
from_queue = request.data.get("from_queue")
type_processing = request.data.get("type_processing")

repository.create_task(
id_queue=id_queue,
from_queue=from_queue,
type_processing=RepositoryQueueTask.TYPE_PROCESSING_TRAINING,
id_queue=id_queue, from_queue=from_queue, type_processing=type_processing
)
return Response({})

Expand Down
42 changes: 13 additions & 29 deletions bothub/common/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -456,36 +456,18 @@ def request_nlp_train(self, user_authorization, data):

def request_nlp_analyze(self, user_authorization, data):
try: # pragma: no cover
if data.get("repository_version"):
r = requests.post( # pragma: no cover
"{}parse/".format(
self.nlp_server
if self.nlp_server
else settings.BOTHUB_NLP_BASE_URL
),
data={
"text": data.get("text"),
"language": data.get("language"),
"repository_version": data.get("repository_version"),
"from_backend": True,
},
headers={
"Authorization": "Bearer {}".format(user_authorization.uuid)
},
)
else:
r = requests.post( # pragma: no cover
"{}parse/".format(
self.nlp_server
if self.nlp_server
else settings.BOTHUB_NLP_BASE_URL
),
data={"text": data.get("text"), "language": data.get("language")},
headers={
"Authorization": "Bearer {}".format(user_authorization.uuid)
},
)
url = f"{self.nlp_server if self.nlp_server else settings.BOTHUB_NLP_BASE_URL}parse/"
data = {
"text": data.get("text"),
"language": data.get("language"),
"repository_version": data.get("repository_version"),
"from_backend": True,
}
headers = {"Authorization": f"Bearer {user_authorization.uuid}"}
r = requests.post(url, data=json.dumps(data), headers=headers)

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 Expand Up @@ -1255,9 +1237,11 @@ class Meta:
]
TYPE_PROCESSING_TRAINING = 0
TYPE_PROCESSING_AUTO_TRANSLATE = 1
TYPE_PROCESSING_EVALUATE_CROSS_VALIDATION = 2
TYPE_PROCESSING_CHOICES = [
(TYPE_PROCESSING_TRAINING, _("NLP Tranining")),
(TYPE_PROCESSING_AUTO_TRANSLATE, _("Repository Auto Translation")),
(TYPE_PROCESSING_EVALUATE_CROSS_VALIDATION, _("Evaluate Cross Validation")),
]

repositoryversionlanguage = models.ForeignKey(
Expand Down
47 changes: 23 additions & 24 deletions bothub/common/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,30 +42,29 @@ def trainings_check_task():
| Q(status=RepositoryQueueTask.STATUS_PROCESSING)
)
for train in trainers:
if train.type_processing == RepositoryQueueTask.TYPE_PROCESSING_TRAINING:
services = {
RepositoryQueueTask.QUEUE_AIPLATFORM: "ai-platform",
RepositoryQueueTask.QUEUE_CELERY: "celery",
}
result = requests.get(
url=f"{settings.BOTHUB_NLP_BASE_URL}v2/task-queue/",
params=urlencode(
{
"id_task": train.id_queue,
"from_queue": services.get(train.from_queue),
}
),
).json()

if int(result.get("status")) != train.status:
fields = ["status", "ml_units"]
train.status = result.get("status")
if train.status == RepositoryQueueTask.STATUS_SUCCESS:
train.end_training = timezone.now()
fields.append("end_training")
train.ml_units = result.get("ml_units")
train.save(update_fields=fields)
continue
services = {
RepositoryQueueTask.QUEUE_AIPLATFORM: "ai-platform",
RepositoryQueueTask.QUEUE_CELERY: "celery",
}
result = requests.get(
url=f"{settings.BOTHUB_NLP_BASE_URL}v2/task-queue/",
params=urlencode(
{
"id_task": train.id_queue,
"from_queue": services.get(train.from_queue),
}
),
).json()

if int(result.get("status")) != train.status:
fields = ["status", "ml_units"]
train.status = result.get("status")
if train.status == RepositoryQueueTask.STATUS_SUCCESS:
train.end_training = timezone.now()
fields.append("end_training")
train.ml_units = result.get("ml_units")
train.save(update_fields=fields)
continue

# Verifica o treinamento que esta em execução, caso o tempo de criação seja maior que 2 horas
# ele torna a task como falha
Expand Down

0 comments on commit 88c95af

Please sign in to comment.