streamlit / example-app-document-anonymizer

Apache License 2.0
2 stars 7 forks source link

ValueError: Unpack failed: incomplete input #29

Closed vipulswarup closed 1 year ago

vipulswarup commented 1 year ago

When I load app.py either using streamlit in the commandline, or via streamlit cloud, I get the below error:

ValueError: Unpack failed: incomplete input

Traceback:
File "/Users/vipulswarup/anaconda3/lib/python3.11/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 552, in _run_script
    exec(code, module.__dict__)
File "/Users/vipulswarup/Coding/learning/udemy/langchain/streamlit/example-app-document-streamlit-anonymizer/app.py", line 84, in <module>
    models = load_models()
             ^^^^^^^^^^^^^
File "/Users/vipulswarup/anaconda3/lib/python3.11/site-packages/streamlit/runtime/legacy_caching/caching.py", line 717, in wrapped_func
    return get_or_create_cached_value()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/vipulswarup/anaconda3/lib/python3.11/site-packages/streamlit/runtime/legacy_caching/caching.py", line 694, in get_or_create_cached_value
    return_value = non_optional_func(*args, **kwargs)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/vipulswarup/Coding/learning/udemy/langchain/streamlit/example-app-document-streamlit-anonymizer/app.py", line 30, in load_models
    english_model = spacy.load("./models/en/")
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/vipulswarup/anaconda3/lib/python3.11/site-packages/spacy/__init__.py", line 51, in load
    return util.load_model(
           ^^^^^^^^^^^^^^^^
File "/Users/vipulswarup/anaconda3/lib/python3.11/site-packages/spacy/util.py", line 467, in load_model
    return load_model_from_path(Path(name), **kwargs)  # type: ignore[arg-type]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/vipulswarup/anaconda3/lib/python3.11/site-packages/spacy/util.py", line 547, in load_model_from_path
    return nlp.from_disk(model_path, exclude=exclude, overrides=overrides)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/vipulswarup/anaconda3/lib/python3.11/site-packages/spacy/language.py", line 2155, in from_disk
    util.from_disk(path, deserializers, exclude)  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/vipulswarup/anaconda3/lib/python3.11/site-packages/spacy/util.py", line 1392, in from_disk
    reader(path / key)
File "/Users/vipulswarup/anaconda3/lib/python3.11/site-packages/spacy/language.py", line 2149, in <lambda>
    deserializers[name] = lambda p, proc=proc: proc.from_disk(  # type: ignore[misc]
                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "spacy/pipeline/transition_parser.pyx", line 617, in spacy.pipeline.transition_parser.Parser.from_disk
File "/Users/vipulswarup/anaconda3/lib/python3.11/site-packages/spacy/util.py", line 1392, in from_disk
    reader(path / key)
File "spacy/pipeline/transition_parser.pyx", line 613, in spacy.pipeline.transition_parser.Parser.from_disk.lambda7
File "spacy/pipeline/_parser_internals/transition_system.pyx", line 228, in spacy.pipeline._parser_internals.transition_system.TransitionSystem.from_disk
File "spacy/pipeline/_parser_internals/transition_system.pyx", line 242, in spacy.pipeline._parser_internals.transition_system.TransitionSystem.from_bytes
File "/Users/vipulswarup/anaconda3/lib/python3.11/site-packages/srsly/_msgpack_api.py", line 27, in msgpack_loads
    msg = msgpack.loads(data, raw=False, use_list=use_list)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/vipulswarup/anaconda3/lib/python3.11/site-packages/srsly/msgpack/__init__.py", line 79, in unpackb
    return _unpackb(packed, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
File "srsly/msgpack/_unpacker.pyx", line 203, in srsly.msgpack._unpacker.unpackb

Any idea what this may be about? I am having a tough time debugging this.

vipulswarup commented 1 year ago

Fixed it.

Had to install some Spacy packages:

python -m spacy download fr
python -m spacy download en

And I had to update the load_models() function:

    french_model = spacy.load("fr_core_news_sm")
    english_model = spacy.load("en_core_web_sm")