
    7|h                     ^    d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ  G d de	      Zy)	    )AnyListOptional)CallbackManagerForRetrieverRun)Document)BaseRetriever)model_validatorc                       e Zd ZU 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dee   fdZy)MetalRetrieverz`Metal API` retriever.clientNparamsbefore)modevaluesreturnc                     ddl m} d|v r(|d   }t        ||      st        dt	        |             |j                  di       |d<   |S )z0Validate that the client is of the correct type.r   )Metalr   zMGot unexpected client, should be of type metal_sdk.metal.Metal. Instead, got r   )metal_sdk.metalr   
isinstance
ValueErrortypeget)clsr   r   r   s       c/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/retrievers/metal.pyvalidate_clientzMetalRetriever.validate_client   s_     	*vH%Ffe, $$(L>3 
 "::h3x    queryrun_managerc                    | j                   j                  d|ifi | j                  }g }|d   D ]J  }|j                         D ci c]  \  }}|dk7  s|| }}}|j	                  t        |d   |             L |S c c}}w )Ntextdata)page_contentmetadata)r   searchr   itemsappendr   )	selfr   r   resultsfinal_resultsrkvr#   s	            r   _get_relevant_documentsz&MetalRetriever._get_relevant_documents#   s     %$++$$fe_DD 	VA)*BAa6k1BHB  qy8!TU	V  Cs   B B )__name__
__module____qualname____doc__r   __annotations__r   r   dictr	   classmethodr   strr   r   r   r-    r   r   r   r   	   sl     K"!FHTN!5(#T c   $ *H	hr   r   N)typingr   r   r   langchain_core.callbacksr   langchain_core.documentsr   langchain_core.retrieversr   pydanticr	   r   r6   r   r   <module>r<      s#    & & C - 3 $"] "r   