Spaces:
Running
Running
unknown
Claude Opus 5.5
Proofread: basic check instead of an error when no language model is reachable
a130a73 Download tests/test_proofread_fallback.py from Rasheed/Test_AI_writing: direct link, hf CLI and curl.
- Browser
- Download file 2.31 kB
-
https://huggingface.co/spaces/Rasheed/Test_AI_writing/resolve/main/tests/test_proofread_fallback.py
- Command line
-
hf download hf://spaces/Rasheed/Test_AI_writing/tests/test_proofread_fallback.py
-
curl -L -o test_proofread_fallback.py https://huggingface.co/spaces/Rasheed/Test_AI_writing/resolve/main/tests/test_proofread_fallback.py
2.31 kB
| """When no language model can be reached (usage limits on every key and model), the proofread still delivers the | |
| basic corrections and says the full check is still to be done; it does not fail. Models are replaced by fakes.""" | |
| import time | |
| import pytest | |
| from docx import Document | |
| import detector as D | |
| import fluency as FL | |
| import groqai as G | |
| import humanizer as H | |
| import meaning as MEANING | |
| import proofread as PR | |
| TEXT = ("The model was trained on the the full dataset of 12,500 images and it reached an accuracy of 96.3% [4]. " | |
| "The results was compared with a baseline that used the same data and the same split of the samples.") | |
| def no_llm(monkeypatch, tmp_path): | |
| monkeypatch.setattr(G, "KEYS", ["k1"]) | |
| monkeypatch.setattr(G, "_KEY_STATE", [dict(until=0.0, calls=0, err="", tok_left=None, tok_reset=0.0, | |
| tok_limit=None, inflight=0, tokens=0)]) | |
| monkeypatch.setattr(G, "ENABLED", True) | |
| monkeypatch.setattr(G, "OPENAI_KEY", "") | |
| monkeypatch.setattr(G, "_down_until", time.time() + 9999) # every key and model at its limit | |
| monkeypatch.setattr(D, "score_texts", lambda texts: [0.0] * len(texts)) | |
| monkeypatch.setattr(H, "_detector_scores", lambda texts: [0.0] * len(texts)) | |
| monkeypatch.setattr(FL, "scores", lambda texts: [0.9] * len(texts)) | |
| monkeypatch.setattr(MEANING, "similarities", lambda pairs: [0.95] * len(pairs)) | |
| monkeypatch.setattr(PR, "MODE", "batched") | |
| import lt_grammar as LT | |
| monkeypatch.setattr(LT, "MODE", "off") | |
| d = Document() | |
| d.add_paragraph(TEXT) | |
| path = tmp_path / "paper_humanized.docx" | |
| d.save(str(path)) | |
| return str(path) | |
| def test_basic_proofread_instead_of_an_error(no_llm): | |
| res = PR.proofread_docx(no_llm) | |
| assert res["limited"] is True | |
| assert "Basic proofread only" in res["note"] and "NOT been done yet" in res["note"] | |
| out = Document(res["path"]).paragraphs[0].text | |
| assert "the the" not in out # the rule-based correction was still made | |
| assert "12,500" in out and "96.3%" in out and "[4]" in out | |
| def test_the_error_can_be_restored(no_llm, monkeypatch): | |
| monkeypatch.setattr(PR, "BASIC_FALLBACK", False) | |
| with pytest.raises(G.Unavailable): | |
| PR.proofread_docx(no_llm) | |