a
    f	gn                     @   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 )	EmbeddingZ
embeddingsc           	   
      s   t   }|dd}|dd}|s,d|d< z^t j|i |}|s|jD ]:}t|d tkrJt  t	j
t|d dd |d< qJ|W S  ty } z4|durt   || kr tjd|d	 W Y d}~q,d}~0 0 q,dS 
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.
        timeoutNZencoding_formatbase64Z	embeddingfloat32)Z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	   Zuser_provided_encoding_formatresponser   e	__class__ a/var/www/html/llm_bihealth/app/venv/lib/python3.9/site-packages/openai/api_resources/embedding.pyr      s&    
zEmbedding.createc           	   
      s   t   }|dd}|dd}|s,d|d< z^t j|i |I dH }|s|jD ]4}t|d tkrPtj	t
|d dd |d< qP|W S  ty } z4|durt   || kr tjd|d	 W Y d}~q,d}~0 0 q,dS r   )r   r   r   r   acreater   r   r   r   r   r
   r   r   r   r   r   r   r!   r#   r$   r%   6   s$    
zEmbedding.acreate)__name__
__module____qualname__ZOBJECT_NAMEclassmethodr   r%   __classcell__r#   r#   r!   r$   r      s
   'r   )r
   r   Zopenair   Z1openai.api_resources.abstract.engine_api_resourcer   Zopenai.datalib.numpy_helperr   r   r   Zopenai.errorr   r   r#   r#   r#   r$   <module>   s   