o
    Zh%                     @   sl   d dl mZmZmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ G dd deZG dd	 d	eZd
S )    )IteratorListOptional)BaseBlobParser
BaseLoader)Blob)Document)get_client_infoc                   @   sH   e Zd Zddee fddZdedefddZd	ede	e fd
dZ
dS )CloudVisionParserNprojectc              
   C   s^   zddl m} W n ty } ztd|d }~ww d }|r"d|i}|j|tddd| _d S )Nr   visionzzCould not import google-cloud-vision python package. Please, install vision dependency group: poetry install --with visionquota_project_idcloud-visionmoduleclient_optionsZclient_info)google.cloudr   ImportErrorImageAnnotatorClientr	   _client)selfr   r   er    r   X/var/www/html/lang_env/lib/python3.10/site-packages/langchain_google_community/vision.py__init__   s"   zCloudVisionParser.__init__gcs_urireturnc                 C   sX   ddl m} |j|j|dd}| jj|d}|j}|r"|d j}nd}t|d|idS 	z:Loads an image from GCS path to a Document, only the text.r   r   )Z	image_uri)source)image r    )Zpage_contentmetadata)	r   r   ImageImageSourcer   text_detectiontext_annotationsdescriptionr   )r   r   r   r!   text_detection_responseannotationstextr   r   r   load   s   zCloudVisionParser.loadblobc                 c   s    |  |jV  d S N)r,   path)r   r-   r   r   r   
lazy_parse*   s   zCloudVisionParser.lazy_parser.   )__name__
__module____qualname__r   strr   r   r,   r   r   r0   r   r   r   r   r
   
   s    r
   c                   @   s6   e Zd Zd	dedee fddZdee fddZdS )
CloudVisionLoaderN	file_pathr   c              
   C   sd   zddl m} W n ty } ztd|d }~ww d }|r"d|i}|j|tddd| _|| _d S )Nr   r   zCould not import google-cloud-vision python package. Please, install vision dependency group: `pip install langchain-google-community[vision]`r   r   r   r   )r   r   r   r   r	   r   
_file_path)r   r6   r   r   r   r   r   r   r   r   /   s$   
zCloudVisionLoader.__init__r   c                 C   s^   ddl m} |j|j| jdd}| jj|d}|j}|r#|d j}nd}t	|d| jidgS r   )
r   r   r$   r%   r7   r   r&   r'   r(   r   )r   r   r!   r)   r*   r+   r   r   r   r,   A   s   zCloudVisionLoader.loadr.   )	r1   r2   r3   r4   r   r   r   r   r,   r   r   r   r   r5   .   s    r5   N)typingr   r   r   Zlangchain_core.document_loadersr   r   Z,langchain_core.document_loaders.blob_loadersr   Zlangchain_core.documentsr   Z!langchain_google_community._utilsr	   r
   r5   r   r   r   r   <module>   s    $