a
    bg                     @   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                   @   sp   e Zd ZU dZdZeed< dZee	 ed< e
dde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_keybefore)mode)valuesreturnc                 C   s   t |dd}||d< |S )z%Validate that api key in environment.r   ZREMEMBERIZER_API_KEYr	   )clsr   r    r   x/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/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_contentZdocument)Zpage_contentmetadata)r'   appendr   )r#   r   r   docsZ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   r+   r   r   r   r   r      s   
	r   )r/   typingr   r   r   r   r   r   Zlangchain_core.documentsr   Zlangchain_core.utilsr
   Zpydanticr   r   r   r   r   r   r   <module>   s   