limcheekin / open-text-embeddings

Open Source Text Embedding Models with OpenAI Compatible API
https://pypi.org/project/open-text-embeddings/
MIT License
127 stars 19 forks source link

ImportError: Dependencies for InstructorEmbedding not found. #19

Closed namin closed 2 months ago

namin commented 2 months ago

Hi,

After a recent upgrade, I am getting the error: ImportError: Dependencies for InstructorEmbedding not found.

What package should I be installing to fix this error?

Thank you.

limcheekin commented 2 months ago

Thanks for report the issue, the package known as InstructorEmbedding.

namin commented 2 months ago

Thanks for the response. Something seems wrong: even after I ensure the package is installed, I get the same error.

% pip install InstructorEmbedding
Collecting InstructorEmbedding
  Using cached InstructorEmbedding-1.0.1-py2.py3-none-any.whl.metadata (20 kB)
Using cached InstructorEmbedding-1.0.1-py2.py3-none-any.whl (19 kB)
Installing collected packages: InstructorEmbedding
Successfully installed InstructorEmbedding-1.0.1
(open-text-embeddings2) namin@black open-text-embeddings % MODEL=intfloat/e5-large-v2 VERBOSE=1 python -m open.text.embeddings.server
Using device: cpu
Loading model: intfloat/e5-large-v2
Normalize embeddings: True
Traceback (most recent call last):
  File "/opt/anaconda3/envs/open-text-embeddings2/lib/python3.12/site-packages/langchain_community/embeddings/huggingface.py", line 165, in __init__
    from InstructorEmbedding import INSTRUCTOR
  File "/opt/anaconda3/envs/open-text-embeddings2/lib/python3.12/site-packages/InstructorEmbedding/__init__.py", line 1, in <module>
    from .instructor import *
  File "/opt/anaconda3/envs/open-text-embeddings2/lib/python3.12/site-packages/InstructorEmbedding/instructor.py", line 9, in <module>
    from sentence_transformers import SentenceTransformer
ModuleNotFoundError: No module named 'sentence_transformers'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/Users/namin/code/neo/open-text-embeddings/open/text/embeddings/server/__main__.py", line 22, in <module>
    app = create_app()
          ^^^^^^^^^^^^
  File "/Users/namin/code/neo/open-text-embeddings/open/text/embeddings/server/app.py", line 27, in create_app
    initialize_embeddings()
  File "/Users/namin/code/neo/open-text-embeddings/open/text/embeddings/server/app.py", line 121, in initialize_embeddings
    embeddings = HuggingFaceInstructEmbeddings(model_name=model_name,
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/envs/open-text-embeddings2/lib/python3.12/site-packages/langchain_community/embeddings/huggingface.py", line 171, in __init__
    raise ImportError("Dependencies for InstructorEmbedding not found.") from e
ImportError: Dependencies for InstructorEmbedding not found.
(open-text-embeddings2) namin@black open-text-embeddings % pip install InstructorEmbedding
Requirement already satisfied: InstructorEmbedding in /opt/anaconda3/envs/open-text-embeddings2/lib/python3.12/site-packages (1.0.1)
(open-text-embeddings2) namin@black open-text-embeddings % MODEL=intfloat/e5-large-v2 VERBOSE=1 python -m open.text.embeddings.server
Using device: cpu
Loading model: intfloat/e5-large-v2
Normalize embeddings: True
Traceback (most recent call last):
  File "/opt/anaconda3/envs/open-text-embeddings2/lib/python3.12/site-packages/langchain_community/embeddings/huggingface.py", line 165, in __init__
    from InstructorEmbedding import INSTRUCTOR
  File "/opt/anaconda3/envs/open-text-embeddings2/lib/python3.12/site-packages/InstructorEmbedding/__init__.py", line 1, in <module>
    from .instructor import *
  File "/opt/anaconda3/envs/open-text-embeddings2/lib/python3.12/site-packages/InstructorEmbedding/instructor.py", line 9, in <module>
    from sentence_transformers import SentenceTransformer
ModuleNotFoundError: No module named 'sentence_transformers'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/Users/namin/code/neo/open-text-embeddings/open/text/embeddings/server/__main__.py", line 22, in <module>
    app = create_app()
          ^^^^^^^^^^^^
  File "/Users/namin/code/neo/open-text-embeddings/open/text/embeddings/server/app.py", line 27, in create_app
    initialize_embeddings()
  File "/Users/namin/code/neo/open-text-embeddings/open/text/embeddings/server/app.py", line 121, in initialize_embeddings
    embeddings = HuggingFaceInstructEmbeddings(model_name=model_name,
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/envs/open-text-embeddings2/lib/python3.12/site-packages/langchain_community/embeddings/huggingface.py", line 171, in __init__
    raise ImportError("Dependencies for InstructorEmbedding not found.") from e
ImportError: Dependencies for InstructorEmbedding not found.
namin commented 2 months ago

Oh, OK. It works when I also install sentence_transformers. Thanks!