U
    h                     @   s`   d Z ddlmZmZmZmZ ddlZddlmZ ddl	m
Z
mZ ddlmZ G dd de
ZdS )	Wrapper for Rememberizer APIs.    )DictListOptionalcastN)Document)	BaseModelroot_validatorget_from_dict_or_envc                   @   sl   e Zd ZU dZdZeed< dZee	 ed< e
ddeedd	d
Ze	edddZe	ee dddZdS )RememberizerAPIWrapperr   
   top_k_resultsNrememberizer_api_keyT)pre)valuesreturnc                 C   s   t |dd}||d< |S )z%Validate that api key in environment.r   ZREMEMBERIZER_API_KEYr
   )clsr   r    r   N/tmp/pip-unpacked-wheel-9gdii04g/langchain_community/utilities/rememberizer.pyvalidate_environment   s      z+RememberizerAPIWrapper.validate_environment)queryr   c                 C   s\   d| d| j  }tj|dtt| jid}| }|jdkrLt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   r   r   r   search   s     
zRememberizerAPIWrapper.searchc                 C   s6   |  |}g }|D ]}|t|d |d d q|S )NZmatched_contentdocument)Zpage_contentmetadata)r%   appendr   )r!   r   r   ZdocsZmatched_chunkr   r   r   load)   s    
zRememberizerAPIWrapper.load)__name__
__module____qualname____doc__r   int__annotations__r   r   r   r	   r   r   dictr%   r   r   r)   r   r   r   r   r      s   
	r   )r-   typingr   r   r   r   r   Zlangchain_core.documentsr   Zlangchain_core.pydantic_v1r   r	   Zlangchain_core.utilsr   r   r   r   r   r   <module>   s   