Skip to content

Commit

Permalink
Merge pull request #547 from Ilhasoft/feature/change_requirements_to_…
Browse files Browse the repository at this point in the history
…run_automatic_evaluate

change requirements to run automatic evaluate. Change 3 to 20 train phrases and remove minimal 15 totaly train phrases
  • Loading branch information
mldzs committed Mar 1, 2021
2 parents aaf41fa + d5623de commit 8a901a5
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 39 deletions.
16 changes: 4 additions & 12 deletions bothub/common/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -383,13 +383,10 @@ def have_at_least_one_test_phrase_registered(self, language: str) -> bool:
def have_at_least_two_intents_registered(self) -> bool:
return len(self.intents()) >= 2

def have_at_least_fifteen_examples_registered(self, language: str) -> bool:
return self.examples(language=language).count() >= 15

def have_at_least_three_examples_for_each_intent(self, language: str) -> bool:
def have_at_least_twenty_examples_for_each_intent(self, language: str) -> bool:
return all(
[
self.examples(language=language).filter(intent__text=intent).count() > 3
self.examples(language=language).filter(intent__text=intent).count() >= 20
for intent in self.intents()
]
)
Expand All @@ -411,14 +408,9 @@ def validate_if_can_run_automatic_evaluate(self, language: str) -> None:
_("You need to have at least " + "two registered intents")
)

if not self.have_at_least_fifteen_examples_registered(language=language):
raise ValidationError(
_("You need to have at least " + "fifteen registered train phrases")
)

if not self.have_at_least_three_examples_for_each_intent(language=language):
if not self.have_at_least_twenty_examples_for_each_intent(language=language):
raise ValidationError(
_("You need to have at least " + "three train phrases for each intent")
_("You need to have at least " + "twenty train phrases for each intent")
)

def request_nlp_train(self, user_authorization, data):
Expand Down
33 changes: 6 additions & 27 deletions bothub/common/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -368,13 +368,13 @@ def test_have_at_least_two_intents_registered(self):
)
self.assertTrue(self.repository.have_at_least_two_intents_registered())

def test_have_at_least_fifteen_examples_registered(self):
def test_have_at_least_twenty_examples_for_each_intent(self):
self.assertFalse(
self.repository.have_at_least_fifteen_examples_registered(
self.repository.have_at_least_twenty_examples_for_each_intent(
language=languages.LANGUAGE_EN
)
)
for i in range(0, 15):
for i in range(0, 20):
RepositoryExample.objects.create(
repository_version_language=self.repository.current_version(
languages.LANGUAGE_EN
Expand All @@ -383,27 +383,7 @@ def test_have_at_least_fifteen_examples_registered(self):
intent=self.example_intent_1,
)
self.assertTrue(
self.repository.have_at_least_fifteen_examples_registered(
language=languages.LANGUAGE_EN
)
)

def test_have_at_least_three_examples_for_each_intent(self):
self.assertFalse(
self.repository.have_at_least_three_examples_for_each_intent(
language=languages.LANGUAGE_EN
)
)
for i in range(0, 3):
RepositoryExample.objects.create(
repository_version_language=self.repository.current_version(
languages.LANGUAGE_EN
),
text=f"test{i}",
intent=self.example_intent_1,
)
self.assertTrue(
self.repository.have_at_least_three_examples_for_each_intent(
self.repository.have_at_least_twenty_examples_for_each_intent(
language=languages.LANGUAGE_EN
)
)
Expand Down Expand Up @@ -459,23 +439,22 @@ def test_request_nlp_automatic_evaluate(self, request_mock):
intent_test = RepositoryIntent.objects.create(
text="farewall", repository_version=self.repository_version
)
for i in range(0, 8):
for i in range(0, 20):
RepositoryExample.objects.create(
repository_version_language=self.repository.current_version(
languages.LANGUAGE_EN
),
text=f"test{i}",
intent=intent_test,
)
for i in range(0, 8):
for i in range(0, 20):
RepositoryExample.objects.create(
repository_version_language=self.repository.current_version(
languages.LANGUAGE_EN
),
text=f"test{i}",
intent=self.example_intent_1,
)

url = f"{self.repository.nlp_server if self.repository.nlp_server else settings.BOTHUB_NLP_BASE_URL}"
url = f"{url}evaluate/"
json = {
Expand Down

0 comments on commit 8a901a5

Please sign in to comment.