o
    ȳg                     @   sd   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 deZdS )	Wrapper for Rememberizer APIs.    )AnyDictListOptionalcastN)Documentget_from_dict_or_env)	BaseModelmodel_validatorc                   @   sv   e Zd ZU dZdZeed< dZee	 ed< e
ddeded	efd
dZde	d	efddZde	d	ee fddZdS )RememberizerAPIWrapperr   
   top_k_resultsNrememberizer_api_keybefore)modevaluesreturnc                 C   s   t |dd}||d< |S )z%Validate that api key in environment.r   REMEMBERIZER_API_KEYr	   )clsr   r    r   f/var/www/html/chatdoc2/venv/lib/python3.10/site-packages/langchain_community/utilities/rememberizer.pyvalidate_environment   s
   z+RememberizerAPIWrapper.validate_environmentqueryc                 C   s\   d| d| j  }tj|dtt| jid}| }|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   r   r   r   search   s   
zRememberizerAPIWrapper.searchc                 C   s6   |  |}g }|D ]}|t|d |d d q	|S )Nmatched_contentdocument)page_contentmetadata)r(   appendr   )r$   r   r   docsmatched_chunkr   r   r   load*   s   
zRememberizerAPIWrapper.load)__name__
__module____qualname____doc__r   int__annotations__r   r   r    r   classmethodr   r   r   dictr(   r   r   r0   r   r   r   r   r      s   
 	r   )r4   typingr   r   r   r   r   r   langchain_core.documentsr   langchain_core.utilsr
   pydanticr   r   r   r   r   r   r   <module>   s    