
    Ng                     r    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dS )	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dS )RememberizerAPIWrapperr   
   top_k_resultsNrememberizer_api_keybefore)modevaluesreturnc                 2    t          |dd          }||d<   |S )z%Validate that api key in environment.r   REMEMBERIZER_API_KEYr
   )clsr   r   s      f/var/www/html/ai-engine/env/lib/python3.11/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        dk    rt          d|           |                    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    eueeQUQcee<+tC1J'K'KL
 
 
 }}3&&1411222"2B77r   c                     |                      |          }g }|D ]2}|                    t          |d         |d                              3|S )Nmatched_contentdocument)page_contentmetadata)r,   appendr	   )r(   r   r!   docsmatched_chunks        r   loadzRememberizerAPIWrapper.load*   sl    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      s         ((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 2 2 2 2 2 2 2 2 2 2 2 2  - - - - - - 5 5 5 5 5 5 / / / / / / / /) ) ) ) )Y ) ) ) ) )r   