run-llama/llama_index · critical · ImportError

`llama-index-embeddings-langchain` package not found, please

Error message

`llama-index-embeddings-langchain` package not found, please run `pip install llama-index-embeddings-langchain`

What it means

If the object passed as embed_model is an instance of LangChain's Embeddings class, resolve_embed_model wraps it in LangchainEmbedding — a wrapper living in the optional llama-index-embeddings-langchain integration. Without that package installed, the ImportError is raised with the install command.

Source

Thrown at llama-index-core/llama_index/core/embeddings/utils.py:126

            embed_model = HuggingFaceEmbedding(
                model_name=model_name, cache_folder=cache_folder
            )
        except ImportError:
            raise ImportError(
                "`llama-index-embeddings-huggingface` package not found, "
                "please run `pip install llama-index-embeddings-huggingface`"
            )

    if LCEmbeddings is not None and isinstance(embed_model, LCEmbeddings):
        try:
            from llama_index.embeddings.langchain import (
                LangchainEmbedding,
            )  # pants: no-infer-dep

            embed_model = LangchainEmbedding(embed_model)
        except ImportError as e:
            raise ImportError(
                "`llama-index-embeddings-langchain` package not found, "
                "please run `pip install llama-index-embeddings-langchain`"
            )

    if embed_model is None:
        print("Embeddings have been explicitly disabled. Using MockEmbedding.")
        embed_model = MockEmbedding(embed_dim=1)

    assert isinstance(embed_model, BaseEmbedding)

    embed_model.callback_manager = callback_manager or Settings.callback_manager

    return embed_model

View on GitHub (pinned to afd0fef371)

Solutions

  1. pip install llama-index-embeddings-langchain
  2. Or use the native equivalent (OpenAIEmbedding, HuggingFaceEmbedding) instead of the LangChain object
  3. Or wrap manually only after installing the integration

Example fix

// before
from langchain_openai import OpenAIEmbeddings
Settings.embed_model = OpenAIEmbeddings()  # ImportError

// after
# pip install llama-index-embeddings-langchain
from langchain_openai import OpenAIEmbeddings
Settings.embed_model = OpenAIEmbeddings()  # auto-wrapped in LangchainEmbedding
# or native: from llama_index.embeddings.openai import OpenAIEmbedding
Defensive patterns

Strategy: type-guard

Validate before calling

try:
    from llama_index.core.bridge.langchain import Embeddings as LCEmbeddings
except ImportError:
    LCEmbeddings = None
if LCEmbeddings and isinstance(embed_model, LCEmbeddings):
    try:
        import llama_index.embeddings.langchain  # noqa: F401
    except ImportError:
        raise RuntimeError("pip install llama-index-embeddings-langchain")

Type guard

from llama_index.core.embeddings import BaseEmbedding

def is_native_embedding(obj) -> bool:
    return isinstance(obj, BaseEmbedding)

Try / catch

try:
    Settings.embed_model = lc_embedding
except ImportError as e:
    if "llama-index-embeddings-langchain" in str(e):
        raise RuntimeError("pip install llama-index-embeddings-langchain or pass a native BaseEmbedding") from e
    raise

Prevention

When it happens

Trigger: Passing a LangChain embedding (e.g. OpenAIEmbeddings from langchain_openai, HuggingFaceEmbeddings from langchain_community) into Settings.embed_model, VectorStoreIndex, or any resolve_embed_model() caller without llama-index-embeddings-langchain installed.

Common situations: Mixed LangChain + LlamaIndex stacks where users assume LangChain objects work natively; minimal installs of llama-index-core; CI environments missing the wrapper package.

Related errors


AI-assisted analysis of run-llama/llama_index@afd0fef371 (2026-08-15). Data as JSON: /api/errors/c619137161bf54a6. Report an issue: GitHub.