Ë
    ümxiF/  ã                  ó  — U d dl mZ d dlZd dlmZmZmZmZmZm	Z	 d dl
mc mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ dZdZej4                  Zeeeef   Zi ej>                  ej>                  “d ej>                  “dej>                  “dej>                  “ej@                  ej@                  “dej@                  “dej@                  “dej@                  “ejB                  ejB                  “dejB                  “dejB                  “dejB                  “ejD                  ejD                  “dejD                  “dejD                  “dejD                  “ejF                  ejF                  “dejF                  dejF                  ejH                  ejH                  dejH                  dejH                  dejJ                  dejJ                  dejJ                  ejJ                  ejJ                  dejL                  d ejL                  d!ejL                  ejL                  ejL                  i¥Z'd"e(d#<   d-d$„Z)	 ejT                  Z+e	 	 	 	 	 d/	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d0d'„«       Z.e	 	 	 	 	 d/	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d1d(„«       Z.	 	 	 	 	 d/	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2d)„Z.e	 	 	 	 	 d/	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d3d*„«       Z/e	 	 	 	 	 d/	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d4d+„«       Z/	 	 	 	 	 d/	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d5d,„Z/y# e,$ r  ed%«      Z-d.d&„Z+Y Œ¾w xY w)6é    )ÚannotationsN)ÚAnyÚIterableÚoverloadÚTypeVarÚUnionÚMapping)Úprotos)Úget_default_generative_client)Ú#get_default_generative_async_client)Úhelper_types)Úmodel_types)Ú
text_types)Úcontent_typeszmodels/embedding-001éd   Útask_type_unspecifiedÚunspecifiedé   Úretrieval_queryÚqueryé   Úretrieval_documentÚdocumenté   Úsemantic_similarityÚ
similarityé   Úclassificationé   Ú
clusteringé   Úquestion_answeringÚqaé   Úfact_verificationÚverificationz1dict[EmbeddingTaskTypeOptions, EmbeddingTaskType]Ú_EMBEDDING_TASK_TYPEc                óT   — t        | t        «      r| j                  «       } t        |    S ©N)Ú
isinstanceÚstrÚlowerr'   )Úxs    úT/home/htdocs/ttos/venv/lib/python3.12/site-packages/google/generativeai/embedding.pyÚto_task_typer/   H   s"   € Ü�!”SÔØ�G‰G‹IˆÜ Ñ"Ð"ó    ÚTc              #  ó    K  — |dk  rt        d|› d�«      ‚g }| D ](  }|j                  |«       t        |«      |k(  sŒ#|–— g }Œ* |r|–— y y ­w)Nr   zKInvalid input: The batch size 'n' must be a positive integer. You entered: z'. Please enter a number greater than 0.)Ú
ValueErrorÚappendÚlen)ÚiterableÚnÚbatchÚitems       r.   Ú_batchedr:   T   sv   è ø€ ØˆqŠ5ÜØ]Ð^_Ð]`ð  aHð  Ióð ð ˆØò 	ˆDØ�L‰L˜ÔÜ�5‹z˜Q‹Ø’Ø‘ð		ñ Ø‹Kð ùs
   ‚;A¾Ac                 ó   — y r)   © ©ÚmodelÚcontentÚ	task_typeÚtitleÚoutput_dimensionalityÚclientÚrequest_optionss          r.   Úembed_contentrE   d   s   € ð  #r0   c                 ó   — y r)   r<   r=   s          r.   rE   rE   p   s   € ð %(r0   c                ó(  ‡ ‡‡‡— t        j                  ‰ «      Š |€i }|€
t        «       }‰r-t        ‰«      t        j
                  urt        d‰› d‰› d�«      ‚‰r‰dk  rt        d‰› d�«      ‚‰rt        ‰«      Št        |t        «      r¡t        |t        t        f«      s‹dg i}ˆ ˆˆˆfd„|D «       }t        |t        «      D ]d  }	t        j                  ‰ |	¬«      }
 |j                  |
fi |¤Ž}t!        |«      j#                  |«      }|d   j%                  d	„ |d
   D «       «       Œf |S t        j&                  ‰ t)        j*                  |«      ‰‰‰¬«      }
 |j,                  |
fi |¤Ž}t!        |«      j#                  |«      }|d   d   |d<   |S )a™  Calls the API to create embeddings for content passed in.

    Args:
        model:
            Which [model](https://ai.google.dev/models/gemini#embedding) to
            call, as a string or a `types.Model`.

        content:
            Content to embed.

        task_type:
            Optional task type for which the embeddings will be used. Can only
            be set for `models/embedding-001`.

        title:
            An optional title for the text. Only applicable when task_type is
            `RETRIEVAL_DOCUMENT`.

        output_dimensionality:
            Optional reduced dimensionality for the output embeddings. If set,
            excessive values from the output embeddings will be truncated from
            the end.

        request_options:
            Options for the request.

    Return:
        Dictionary containing the embedding (list of float values) for the
        input content.
    úsInvalid task type: When a title is specified, the task must be of a 'retrieval document' type. Received task type: ú and title: ú.r   úQInvalid value: `output_dimensionality` must be a non-negative integer. Received: Ú	embeddingc              3  óx   •K  — | ]1  }t        j                  ‰t        j                  |«      ‰‰‰¬ «      –— Œ3 y­w©©r>   r?   r@   rA   rB   N©r
   ÚEmbedContentRequestr   Ú
to_content©Ú.0Úcr>   rB   r@   rA   s     €€€€r.   ú	<genexpr>z embed_content.<locals>.<genexpr>º   óE   øè ø€ ò 	
ð ô ×&Ñ&ØÜ%×0Ñ0°Ó3Ø#ØØ&;÷ð ñ	
ùó   ƒ7:©r>   Úrequestsc              3  ó&   K  — | ]	  }|d    –— Œ y­w©ÚvaluesNr<   ©rT   Úes     r.   rV   z embed_content.<locals>.<genexpr>Ë   ó   è ø€ Ò&Y°q q¨¥{Ñ&Yùó   ‚Ú
embeddingsrO   r]   )r   Úmake_model_namer   r/   ÚEmbeddingTaskTypeÚRETRIEVAL_DOCUMENTr3   r*   r   r+   r	   r:   ÚEMBEDDING_MAX_BATCH_SIZEr
   ÚBatchEmbedContentsRequestÚbatch_embed_contentsÚtypeÚto_dictÚextendrQ   r   rR   rE   ©r>   r?   r@   rA   rB   rC   rD   ÚresultrZ   r8   Úembedding_requestÚembedding_responseÚembedding_dicts   ` ```        r.   rE   rE   |   sú  û€ ôN ×'Ñ'¨Ó.€EàÐØˆà€~Ü.Ó0ˆá”˜iÓ(Ô0A×0TÑ0TÑTÜð Bð  CLð  BMð  MYð  Z_ð  Y`ð  `að  bó
ð 	
ñ Ð!6¸Ò!:ÜØ_Ð`uÐ_vÐvwÐxó
ð 	
ñ Ü  Ó+ˆ	ä�'œ8Ô$¬Z¸Ä#ÄwÀÔ-PØ˜rÐ"ˆö	
ð ô	
ˆô ˜hÔ(@ÓAò 	ZˆEÜ &× @Ñ @ÀuÐW\Ô ]ÐØ!< ×!<Ñ!<Ø!ñ"à!ñ"Ðô "Ð"4Ó5×=Ñ=Ð>PÓQˆNØ�;Ñ×&Ñ&Ñ&Y¸NÈ<Ñ<XÔ&YÕYð	Zð ˆä"×6Ñ6ØÜ!×,Ñ,¨WÓ5ØØØ"7ô
Ðð 2˜V×1Ñ1Øñ
àñ
Ðô Ð0Ó1×9Ñ9Ð:LÓMˆØ&4°[Ñ&AÀ(Ñ&Kˆ�{Ñ#ØÐr0   c              ƒ  ó   K  — y ­wr)   r<   r=   s          r.   Úembed_content_asyncrr   Þ   s   è ø€ ð  #ùó   ‚c              ƒ  ó   K  — y ­wr)   r<   r=   s          r.   rr   rr   ê   s   è ø€ ð %(ùrs   c              ƒ  óX  ‡ ‡‡‡K  — t        j                  ‰ «      Š |€i }|€
t        «       }‰r-t        ‰«      t        j
                  urt        d‰› d‰› d�«      ‚‰r‰dk  rt        d‰› d�«      ‚‰rt        ‰«      Št        |t        «      r©t        |t        t        f«      s“dg i}ˆ ˆˆˆfd„|D «       }t        |t        «      D ]l  }	t        j                  ‰ |	¬	«      }
 |j                  |
fi |¤Žƒ d{  –—† }t!        |«      j#                  |«      }|d   j%                  d
„ |d   D «       «       Œn |S t        j&                  ‰ t)        j*                  |«      ‰‰‰¬«      }
 |j,                  |
fi |¤Žƒ d{  –—† }t!        |«      j#                  |«      }|d   d   |d<   |S 7 Œ¯7 Œ-­w)z?Calls the API to create async embeddings for content passed in.NrH   rI   rJ   r   rK   rL   c              3  óx   •K  — | ]1  }t        j                  ‰t        j                  |«      ‰‰‰¬ «      –— Œ3 y­wrN   rP   rS   s     €€€€r.   rV   z&embed_content_async.<locals>.<genexpr>  rW   rX   rY   c              3  ó&   K  — | ]	  }|d    –— Œ y­wr\   r<   r^   s     r.   rV   z&embed_content_async.<locals>.<genexpr>(  r`   ra   rb   rO   r]   )r   rc   r   r/   rd   re   r3   r*   r   r+   r	   r:   rf   r
   rg   rh   ri   rj   rk   rQ   r   rR   rE   rl   s   ` ```        r.   rr   rr   ö   s  ûè ø€ ô ×'Ñ'¨Ó.€EàÐØˆà€~Ü4Ó6ˆá”˜iÓ(Ô0A×0TÑ0TÑTÜð Bð  CLð  BMð  MYð  Z_ð  Y`ð  `að  bó
ð 	
ñ Ð!6¸Ò!:ÜØ_Ð`uÐ_vÐvwÐxó
ð 	
ñ Ü  Ó+ˆ	ä�'œ8Ô$¬Z¸Ä#ÄwÀÔ-PØ˜rÐ"ˆö	
ð ô	
ˆô ˜hÔ(@ÓAò 	ZˆEÜ &× @Ñ @ÀuÐW\Ô ]ÐØ'B v×'BÑ'BØ!ñ(à!ñ(÷ "Ðô "Ð"4Ó5×=Ñ=Ð>PÓQˆNØ�;Ñ×&Ñ&Ñ&Y¸NÈ<Ñ<XÔ&YÕYð	Zð ˆä"×6Ñ6ØÜ!×,Ñ,¨WÓ5ØØØ"7ô
Ðð $8 6×#7Ñ#7Øñ$
àñ$
÷ 
Ðô Ð0Ó1×9Ñ9Ð:LÓMˆØ&4°[Ñ&AÀ(Ñ&Kˆ�{Ñ#ØÐð+"øð
ús%   †C0F*Ã6F&Ã7BF*Å:F(Å;,F*Æ(F*)r-   ÚEmbeddingTaskTypeOptionsÚreturnrd   )r6   zIterable[T]r7   Úintry   zIterable[list[T]])NNNNN)r>   ú model_types.BaseModelNameOptionsr?   úcontent_types.ContentTyper@   úEmbeddingTaskTypeOptions | NonerA   ú
str | NonerB   ú
int | NonerC   ú"glm.GenerativeServiceClient | NonerD   ú&helper_types.RequestOptionsType | Nonery   útext_types.EmbeddingDict)r>   r{   r?   ú#Iterable[content_types.ContentType]r@   r}   rA   r~   rB   r   rC   r€   rD   r�   ry   útext_types.BatchEmbeddingDict)r>   r{   r?   ú?content_types.ContentType | Iterable[content_types.ContentType]r@   r}   rA   r~   rB   r   rC   zglm.GenerativeServiceClientrD   r�   ry   ú8text_types.EmbeddingDict | text_types.BatchEmbeddingDict)r>   r{   r?   r|   r@   r}   rA   r~   rB   r   rC   ú'glm.GenerativeServiceAsyncClient | NonerD   r�   ry   r‚   )r>   r{   r?   rƒ   r@   r}   rA   r~   rB   r   rC   r‡   rD   r�   ry   r„   )r>   r{   r?   r…   r@   r}   rA   r~   rB   r   rC   z glm.GenerativeServiceAsyncClientrD   r�   ry   r†   )0Ú
__future__r   Ú	itertoolsÚtypingr   r   r   r   r   r	   Úgoogle.ai.generativelanguageÚaiÚgenerativelanguageÚglmÚgoogle.generativeair
   Úgoogle.generativeai.clientr   r   Úgoogle.generativeai.typesr   r   r   r   ÚDEFAULT_EMB_MODELrf   ÚTaskTyperd   rz   r+   rx   ÚTASK_TYPE_UNSPECIFIEDÚRETRIEVAL_QUERYre   ÚSEMANTIC_SIMILARITYÚCLASSIFICATIONÚ
CLUSTERINGÚQUESTION_ANSWERINGÚFACT_VERIFICATIONr'   Ú__annotations__r/   Úbatchedr:   ÚAttributeErrorr1   rE   rr   r<   r0   r.   ú<module>rž      s]  ðö #ã ß C× Cç *Ð *Ý &å DÝ Jå 2Ý 1Ý 0Ý 3à*Ð ØÐ à—O‘OÐ à   cÐ+<Ð!<Ñ=Ð ðKØ×+Ñ+Ð->×-TÑ-TðKàÐ×.Ñ.ðKð Ð.×DÑDðKð Ð$×:Ñ:ð	Kð
 ×%Ñ%Ð'8×'HÑ'HðKð Ð×(Ñ(ðKð Ð(×8Ñ8ðKð Ð×.Ñ.ðKð ×(Ñ(Ð*;×*NÑ*NðKð Ð×+Ñ+ðKð Ð+×>Ñ>ðKð Ð!×4Ñ4ðKð ×)Ñ)Ð+<×+PÑ+PðKð Ð×,Ñ,ðKð Ð,×@Ñ@ðKð  Ð#×7Ñ7ð!Kð" ×$Ñ$Ð&7×&FÑ&Fð#Kð$ Ð×'Ñ'ØÐ'×6Ñ6Ø× Ñ Ð"3×">Ñ">ØÐ×#Ñ#ØÐ#×.Ñ.ØÐ×+Ñ+ØÐ+×>Ñ>ØÐ
×
.Ñ
.Ø×(Ñ(Ð*;×*NÑ*NØÐ×*Ñ*ØÐ*×<Ñ<ØÐ%×7Ñ7Ø×'Ñ'Ð):×)LÑ)Lñ=KÐ ÐGó óD#ðà× Ñ €Hð( 
ð 26ØØ(,Ø15Ø>Bð#Ø+ð#à&ð#ð /ð#ð ð	#ð
 &ð#ð /ð#ð <ð#ð ò#ó 
ð#ð 
ð 26ØØ(,Ø15Ø>Bð(Ø+ð(à0ð(ð /ð(ð ð	(ð
 &ð(ð /ð(ð <ð(ð #ò(ó 
ð(ð 26ØØ(,Ø*.Ø>Bð_Ø+ð_àLð_ð /ð_ð ð	_ð
 &ð_ð (ð_ð <ð_ð >ó_ðD 
ð 26ØØ(,Ø6:Ø>Bð#Ø+ð#à&ð#ð /ð#ð ð	#ð
 &ð#ð 4ð#ð <ð#ð ò#ó 
ð#ð 
ð 26ØØ(,Ø6:Ø>Bð(Ø+ð(à0ð(ð /ð(ð ð	(ð
 &ð(ð 4ð(ð <ð(ð #ò(ó 
ð(ð 26ØØ(,Ø/3Ø>BðBØ+ðBàLðBð /ðBð ð	Bð
 &ðBð -ðBð <ðBð >ôBøðK ò Ù�‹€Aõðús   È>K5 Ë5L	ÌL	