Spaces:
Runtime error
Runtime error
| import pytest | |
| import markdown | |
| from bs4 import BeautifulSoup | |
| from compliance_checks.intended_purpose import ( | |
| IntendedPurposeCheck, IntendedPurposeResult, | |
| ) | |
| empty_template = """\ | |
| ## Uses | |
| <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. --> | |
| [More Information Needed] | |
| ### Direct Use | |
| [More Information Needed] | |
| <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. --> | |
| ### Downstream Use [optional] | |
| <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app --> | |
| [More Information Needed] | |
| ### Out-of-Scope Use | |
| <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. --> | |
| [More Information Needed] | |
| """ | |
| model_card_template = """\ | |
| ## Uses | |
| Some info... | |
| ### Direct Use | |
| Some more info. | |
| ### Downstream Use [optional] | |
| [More Information Needed] | |
| ### Out-of-Scope Use | |
| Here is some info about out-of-scope uses... | |
| """ | |
| albert_base_v2 = """\ | |
| # ALBERT Base v2 | |
| ## Intended uses & limitations | |
| Here is some info about direct uses... | |
| """ | |
| distilbert_base_cased_distilled_squad = """\ | |
| # DistilBERT base cased distilled SQuAD | |
| ## Uses | |
| This model can be used for question answering. | |
| """ | |
| distilroberta_base = """\ | |
| # Model Card for DistilRoBERTa base | |
| # Uses | |
| You can use the raw model for masked language modeling, but it's mostly intended to be fine-tuned on a downstream task. | |
| """ | |
| clip = """\ | |
| # Model Card: CLIP | |
| ## Model Use | |
| Stuff. | |
| ### Intended Use | |
| Stuff. | |
| #### Primary intended uses | |
| Stuff. | |
| ### Out-of-Scope Use Cases | |
| Stuff. | |
| """ | |
| sentence_transformers = """\ | |
| # all-MiniLM-L6-v2 | |
| ## Intended uses | |
| Our model is intented to be used as a sentence and short paragraph encoder. | |
| """ | |
| bloom = """\ | |
| # BLOOM | |
| ## Intended Use | |
| This model is being created in order to enable public research on large language models (LLMs). | |
| """ | |
| bleed_over = """\ | |
| ## Uses | |
| """ | |
| success_result = IntendedPurposeResult( | |
| status=True | |
| ) | |
| def test_run_checks(card): | |
| model_card_html = markdown.markdown(card) | |
| card_soup = BeautifulSoup(model_card_html, features="html.parser") | |
| results = IntendedPurposeCheck().run_check(card_soup) | |
| assert results == success_result | |
| def test_fail_on_empty_template(): | |
| model_card_html = markdown.markdown(empty_template) | |
| card_soup = BeautifulSoup(model_card_html, features="html.parser") | |
| results = IntendedPurposeCheck().run_check(card_soup) | |
| assert results == IntendedPurposeResult() | |
| def test_fail_on_bleed_over(): | |
| model_card_html = markdown.markdown(bleed_over) | |
| card_soup = BeautifulSoup(model_card_html, features="html.parser") | |
| results = IntendedPurposeCheck().run_check(card_soup) | |
| assert results == IntendedPurposeResult() | |