o
    RThn                     @   s`   d dl Z d dl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 G dd deZdS )	    N)util)EngineAPIResource)assert_has_numpy)numpy)TryAgainc                       s4   e Zd ZdZe fddZe fddZ  ZS )	Embedding
embeddingsc           	   
      s   t   }|dd}|dd}|sd|d< 	 z/t j|i |}|sD|jD ]}t|d tkrCt  t	j
t|d dd |d< q&|W S  tyl } z|dur[t   || kr[ tjd	|d
 W Y d}~nd}~ww qz
        Creates a new embedding for the provided input and parameters.

        See https://platform.openai.com/docs/api-reference/embeddings for a list
        of valid parameters.
        timeoutNencoding_formatbase64T	embeddingfloat32)dtypezWaiting for model to warm up)error)timepopgetsupercreatedatatypestrr   np
frombufferr   	b64decodetolistr   r   log_info	clsargskwargsstartr
   user_provided_encoding_formatresponser   e	__class__ a/home/air/segue/gemini/backup/venv/lib/python3.10/site-packages/openai/api_resources/embedding.pyr      s4   
zEmbedding.createc           	   
      s   t   }|dd}|dd}|sd|d< 	 z/t j|i |I dH }|sE|jD ]}t|d tkrDtj	t
|d dd |d< q*|W S  tym } z|dur\t   || kr\ tjd	|d
 W Y d}~nd}~ww qr	   )r   r   r   r   acreater   r   r   r   r   r   r   r   r   r   r   r   r&   r(   r)   r*   6   s4   
zEmbedding.acreate)__name__
__module____qualname__OBJECT_NAMEclassmethodr   r*   __classcell__r(   r(   r&   r)   r      s    'r   )r   r   openair   1openai.api_resources.abstract.engine_api_resourcer   openai.datalib.numpy_helperr   r   r   openai.errorr   r   r(   r(   r(   r)   <module>   s    