
    Wi                     F    d dl mZ d dlZd dlmZ d dlmZ  G d de      Zy)    )ListN)BaseEmbedder)
Embeddingsc                   L    e Zd ZdZdefdZd	dee   dede	j                  fdZy)
LangChainBackenda  LangChain Embedding Model.

    This class uses the LangChain Embedding class to embed the documents.
    Argument:
        embedding_model: A LangChain Embedding Instance.

    Examples:
    ```python
    from langchain_community.embeddings import HuggingFaceInstructEmbeddings
    from bertopic.backend import LangChainBackend

    hf_embedding = HuggingFaceInstructEmbeddings()
    langchain_embedder = LangChainBackend(hf_embedding)
    ```
    embedding_modelc                     || _         y )N)r   )selfr   s     g/home/sietch6/trending-topics-pipeline/venv/lib/python3.12/site-packages/bertopic/backend/_langchain.py__init__zLangChainBackend.__init__   s
    .    	documentsverbosereturnc                     |D cg c]  }|dk(  rdn| }}| j                   j                  |      }t        j                  |      S c c}w )a  Embed a list of n documents/words into an n-dimensional
        matrix of embeddings.

        Arguments:
            documents: A list of documents or words to be embedded
            verbose: Controls the verbosity of the process

        Returns:
            Document/words embeddings with shape (n, m) with `n` documents/words
            that each have an embeddings size of `m`
          )r   embed_documentsnparray)r
   r   r   docprepared_documentsresponses         r   embedzLangChainBackend.embed   sQ     DMMCSBYcC7MM''778JKxx!! Ns   AN)F)__name__
__module____qualname____doc__r   r   r   strboolr   ndarrayr    r   r   r   r      s5     /
 /"tCy "4 "BJJ "r   r   )	typingr   numpyr   bertopic.backendr   langchain_core.embeddingsr   r   r"   r   r   <module>r'      s      ) 0#"| #"r   