
    7|h                     j    d Z ddlmZmZmZmZmZ ddlZddlm	Z	 ddl
mZ ddlmZmZ  G d de      Zy)	Wrapper for Rememberizer APIs.    )AnyDictListOptionalcastN)Documentget_from_dict_or_env)	BaseModelmodel_validatorc                       e Zd ZU dZdZeed<   dZee	   ed<    e
d      eded	efd
              Zde	d	efdZde	d	ee   fdZy)RememberizerAPIWrapperr   
   top_k_resultsNrememberizer_api_keybefore)modevaluesreturnc                 *    t        |dd      }||d<   |S )z%Validate that api key in environment.r   REMEMBERIZER_API_KEYr
   )clsr   r   s      i/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/utilities/rememberizer.pyvalidate_environmentz+RememberizerAPIWrapper.validate_environment   s*      4*,B 
 *>%&    queryc                 
   d| d| j                    }t        j                  |dt        t        | j
                        i      }|j                         }|j                  dk7  rt        d|       |j                  dg       }|S )z+Search for a query in the Rememberizer API.z6https://api.rememberizer.ai/api/v1/documents/search?q=z&n=z	x-api-key)headers   zAPI Error: matched_chunks)	r   requestsgetr   strr   jsonstatus_code
ValueError)selfr   urlresponsedatar!   s         r   searchzRememberizerAPIWrapper.search   s    FugSQUQcQcPde<<+tC1J1J'KL
 }}3&{4&122"2B7r   c                 ~    | j                  |      }g }|D ]$  }|j                  t        |d   |d                & |S )Nmatched_contentdocument)page_contentmetadata)r,   appendr	   )r(   r   r!   docsmatched_chunks        r   loadzRememberizerAPIWrapper.load*   sP    U++ 	MKK!./@!A*:6	 r   )__name__
__module____qualname____doc__r   int__annotations__r   r   r$   r   classmethodr   r   r   dictr,   r   r	   r5    r   r   r   r      su    (M3*.(3-.(#$ 3   $C D 
# 
$x. 
r   r   )r9   typingr   r   r   r   r   r"   langchain_core.documentsr	   langchain_core.utilsr   pydanticr   r   r   r>   r   r   <module>rC      s&    $ 2 2  - 5 /)Y )r   