
    Ng8                     J    d dl mZmZ d dlmZ d dlmZ  G d de          ZdS )    )CallableUnion)Document)Docstorec                   P    e Zd ZdZdeegeeef         f         fdZdedefdZ	dS )
DocstoreFnzDocstore via arbitrary lookup function.

    This is useful when:
     * it's expensive to construct an InMemoryDocstore/dict
     * you retrieve documents from remote sources
     * you just want to reuse existing objects
    	lookup_fnc                     || _         d S )N)
_lookup_fn)selfr	   s     e/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/docstore/arbitrary_fn.py__init__zDocstoreFn.__init__   s     $    searchreturnc                     |                      |          }t          |t                    rt          |d|i          S t          |t                    r|S t	          dt          |                     )zSearch for a document.

        Args:
            search: search string

        Returns:
            Document if found, else error message.
        source)page_contentmetadatazUnexpected type of document )r   
isinstancestrr   
ValueErrortype)r   r   rs      r   r   zDocstoreFn.search   ss     OOF##a 	h5GHHHH8$$ 	HAQAABBBr   N)
__name__
__module____qualname____doc__r   r   r   r   r   r    r   r   r   r      sy         $SE53#778$ $ $ $CS CX C C C C C Cr   r   N)typingr   r   langchain_core.documentsr   !langchain_community.docstore.baser   r   r   r   r   <module>r#      s    " " " " " " " " - - - - - - 6 6 6 6 6 6C C C C C C C C C Cr   