diff --git a/hub_module/modules/text/text_generation/ernie_gen_acrostic_poetry/README.md b/hub_module/modules/text/text_generation/ernie_gen_acrostic_poetry/README.md index a2595805a5788f585ae6eb57147c8e404faf120b..c0db0a490df1099c44c6e77e09391ab9d199e6a5 100644 --- a/hub_module/modules/text/text_generation/ernie_gen_acrostic_poetry/README.md +++ b/hub_module/modules/text/text_generation/ernie_gen_acrostic_poetry/README.md @@ -17,7 +17,7 @@ $ hub run ernie_gen_acrostic_poetry --input_text="我喜欢你" --use_gpu True - **参数** -* input_text: 诗歌的藏头,长度不超过line值; +* input_text: 诗歌的藏头,长度不应超过4,否则将被截断; * use\_gpu: 是否使用 GPU;**若使用GPU,请先设置CUDA\_VISIBLE\_DEVICES环境变量**; * beam\_width: beam search宽度,决定每个藏头输出的下文数目。 @@ -109,3 +109,7 @@ paddlehub >= 1.7.0 * 1.0.0 初始发布 + +* 1.0.1 + + 完善API的输入文本检查 diff --git a/hub_module/modules/text/text_generation/ernie_gen_acrostic_poetry/module.py b/hub_module/modules/text/text_generation/ernie_gen_acrostic_poetry/module.py index 7c561402a7c21af9ccffc29b34403be68bbf9225..1a92996d5e0358ee289eed673a29389fd43bd1e0 100644 --- a/hub_module/modules/text/text_generation/ernie_gen_acrostic_poetry/module.py +++ b/hub_module/modules/text/text_generation/ernie_gen_acrostic_poetry/module.py @@ -35,7 +35,7 @@ from ernie_gen_acrostic_poetry.model.modeling_ernie_gen import ErnieModelForGene @moduleinfo( name="ernie_gen_acrostic_poetry", - version="1.0.0", + version="1.0.1", summary= "ERNIE-GEN is a multi-flow language generation framework for both pre-training and fine-tuning. This module has fine-tuned for poetry generation task.", author="adaxiadaxi", @@ -52,6 +52,7 @@ class ErnieGen(hub.NLPPredictionModule): if word not in [5, 7]: raise ValueError("The word could only be 5 or 7.") + self.line = line assets_path = os.path.join(self.directory, "assets") gen_checkpoint_path = os.path.join( assets_path, "ernie_gen_acrostic_poetry_L%sW%s" % (line, word)) @@ -90,6 +91,27 @@ class ErnieGen(hub.NLPPredictionModule): Returns: results(list): the poetry continuations. """ + if texts and isinstance(texts, list) and all(texts) and all( + [isinstance(text, str) for text in texts]): + predicted_data = texts + else: + raise ValueError( + "The input texts should be a list with nonempty string elements." + ) + for i, text in enumerate(texts): + if len(text) > self.line: + logger.warning( + 'The input text: %s, contains more than %i characters, which will be cut off' + % (text, self.line)) + texts[i] = text[:self.line] + + for char in text: + if not '\u4e00' <= char <= '\u9fff': + logger.warning( + 'The input text: %s, contains non-Chinese characters, which may result in magic output' + % text) + break + if use_gpu and "CUDA_VISIBLE_DEVICES" not in os.environ: use_gpu = False logger.warning( @@ -100,12 +122,6 @@ class ErnieGen(hub.NLPPredictionModule): else: place = fluid.CPUPlace() - if texts and isinstance(texts, list): - predicted_data = texts - else: - raise ValueError( - "The input data is inconsistent with expectations.") - with fluid.dygraph.guard(place): self.model.eval() results = [] diff --git a/hub_module/modules/text/text_generation/ernie_gen_couplet/README.md b/hub_module/modules/text/text_generation/ernie_gen_couplet/README.md index 74d4f01d2438d97175fe313b80dfb96858bfcae0..33c164a84fb44f02546db9542508df2276f4c572 100644 --- a/hub_module/modules/text/text_generation/ernie_gen_couplet/README.md +++ b/hub_module/modules/text/text_generation/ernie_gen_couplet/README.md @@ -101,3 +101,7 @@ paddlehub >= 1.7.0 * 1.0.1 修复windows中的编码问题 + +* 1.0.2 + + 完善API的输入文本检查 diff --git a/hub_module/modules/text/text_generation/ernie_gen_couplet/module.py b/hub_module/modules/text/text_generation/ernie_gen_couplet/module.py index 341c44c4e7d086a4d6ee11acd3c27f5e8091ca3e..14a6c18e12198f4c4287b8f0638b0aabe5063da2 100644 --- a/hub_module/modules/text/text_generation/ernie_gen_couplet/module.py +++ b/hub_module/modules/text/text_generation/ernie_gen_couplet/module.py @@ -35,7 +35,7 @@ from ernie_gen_couplet.model.modeling_ernie_gen import ErnieModelForGeneration @moduleinfo( name="ernie_gen_couplet", - version="1.0.1", + version="1.0.2", summary= "ERNIE-GEN is a multi-flow language generation framework for both pre-training and fine-tuning. This module has fine-tuned for couplet generation task.", author="baidu-nlp", @@ -84,6 +84,21 @@ class ErnieGen(hub.NLPPredictionModule): Returns: results(list): the right rolls. """ + if texts and isinstance(texts, list) and all(texts) and all( + [isinstance(text, str) for text in texts]): + predicted_data = texts + else: + raise ValueError( + "The input texts should be a list with nonempty string elements." + ) + for i, text in enumerate(texts): + for char in text: + if not '\u4e00' <= char <= '\u9fff': + logger.warning( + 'The input text: %s, contains non-Chinese characters, which may result in magic output' + % text) + break + if use_gpu and "CUDA_VISIBLE_DEVICES" not in os.environ: use_gpu = False logger.warning( @@ -94,12 +109,6 @@ class ErnieGen(hub.NLPPredictionModule): else: place = fluid.CPUPlace() - if texts and isinstance(texts, list): - predicted_data = texts - else: - raise ValueError( - "The input data is inconsistent with expectations.") - with fluid.dygraph.guard(place): self.model.eval() results = [] diff --git a/hub_module/modules/text/text_generation/ernie_gen_lover_words/README.md b/hub_module/modules/text/text_generation/ernie_gen_lover_words/README.md index 091cbb17541654a278028d725c0c503e6c75d840..afa89ca6949f8e34ce8be941ce47718cab7c70f3 100644 --- a/hub_module/modules/text/text_generation/ernie_gen_lover_words/README.md +++ b/hub_module/modules/text/text_generation/ernie_gen_lover_words/README.md @@ -97,3 +97,7 @@ paddlehub >= 1.7.0 * 1.0.0 初始发布 + +* 1.0.1 + + 完善API的输入文本检查 diff --git a/hub_module/modules/text/text_generation/ernie_gen_lover_words/module.py b/hub_module/modules/text/text_generation/ernie_gen_lover_words/module.py index c4be03c260f58b5263c988f93dd077e382f1b5b0..7df7b1726350a516dba5e93741e8ec547bc6e774 100644 --- a/hub_module/modules/text/text_generation/ernie_gen_lover_words/module.py +++ b/hub_module/modules/text/text_generation/ernie_gen_lover_words/module.py @@ -35,7 +35,7 @@ from ernie_gen_lover_words.model.modeling_ernie_gen import ErnieModelForGenerati @moduleinfo( name="ernie_gen_lover_words", - version="1.0.0", + version="1.0.1", summary= "ERNIE-GEN is a multi-flow language generation framework for both pre-training and fine-tuning. This module has fine-tuned for lover's words generation task.", author="adaxiadaxi", @@ -84,6 +84,14 @@ class ErnieGen(hub.NLPPredictionModule): Returns: results(list): the poetry continuations. """ + if texts and isinstance(texts, list) and all(texts) and all( + [isinstance(text, str) for text in texts]): + predicted_data = texts + else: + raise ValueError( + "The input texts should be a list with nonempty string elements." + ) + if use_gpu and "CUDA_VISIBLE_DEVICES" not in os.environ: use_gpu = False logger.warning( @@ -94,12 +102,6 @@ class ErnieGen(hub.NLPPredictionModule): else: place = fluid.CPUPlace() - if texts and isinstance(texts, list): - predicted_data = texts - else: - raise ValueError( - "The input data is inconsistent with expectations.") - with fluid.dygraph.guard(place): self.model.eval() results = [] diff --git a/hub_module/modules/text/text_generation/ernie_gen_poetry/README.md b/hub_module/modules/text/text_generation/ernie_gen_poetry/README.md index bb0b29c8198f2667ba5740c1472eed70f31845d7..3be94e7919ecdda0c49d188a7be6d89ea165fbf1 100644 --- a/hub_module/modules/text/text_generation/ernie_gen_poetry/README.md +++ b/hub_module/modules/text/text_generation/ernie_gen_poetry/README.md @@ -101,3 +101,7 @@ paddlehub >= 1.7.0 * 1.0.1 修复windows中的编码问题 + +* 1.0.2 + + 完善API的输入文本检查 diff --git a/hub_module/modules/text/text_generation/ernie_gen_poetry/module.py b/hub_module/modules/text/text_generation/ernie_gen_poetry/module.py index 04e84853dde63aa04680d47e4b1c384290f11754..e7d3914c5bbe8336839075ba91b11d558c0a84f9 100644 --- a/hub_module/modules/text/text_generation/ernie_gen_poetry/module.py +++ b/hub_module/modules/text/text_generation/ernie_gen_poetry/module.py @@ -35,7 +35,7 @@ from ernie_gen_poetry.model.modeling_ernie_gen import ErnieModelForGeneration @moduleinfo( name="ernie_gen_poetry", - version="1.0.1", + version="1.0.2", summary= "ERNIE-GEN is a multi-flow language generation framework for both pre-training and fine-tuning. This module has fine-tuned for poetry generation task.", author="baidu-nlp", @@ -84,6 +84,32 @@ class ErnieGen(hub.NLPPredictionModule): Returns: results(list): the poetry continuations. """ + if texts and isinstance(texts, list) and all(texts) and all( + [isinstance(text, str) for text in texts]): + predicted_data = texts + else: + raise ValueError( + "The input texts should be a list with nonempty string elements." + ) + for i, text in enumerate(texts): + if ',' not in text or '。' not in text: + logger.warning( + "The input text: %s, does not contain ',' or '。', which is not a complete verse and may result in magic output" + % text) + else: + front, rear = text[:-1].split(',') + if len(front) != len(rear): + logger.warning( + "The input text: %s, is no antithetical parallelism, which may result in magic output" + % text) + + for char in text: + if not '\u4e00' <= char <= '\u9fff' and char not in [',', '。']: + logger.warning( + "The input text: %s, contains characters not Chinese or ‘,’ '。', which may result in magic output" + % text) + break + if use_gpu and "CUDA_VISIBLE_DEVICES" not in os.environ: use_gpu = False logger.warning( @@ -94,12 +120,6 @@ class ErnieGen(hub.NLPPredictionModule): else: place = fluid.CPUPlace() - if texts and isinstance(texts, list): - predicted_data = texts - else: - raise ValueError( - "The input data is inconsistent with expectations.") - with fluid.dygraph.guard(place): self.model.eval() results = []