
    Fd.                     j   d dl mZm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 eej                 ej        eej        ej                 f         z  Z	 edeez  defd	            Zedee         ee         z  dee         fd
            Zdeez  ee         z  ee         z  dedeee         z  fdZdS )    )AnyoverloadN)Config)TText)openai)loggerinputreturnc                     d S N r	   s    OC:\Users\Administrator\Downloads\Auto-GPT-master\autogpt\memory\vector\utils.pyget_embeddingr          C    c                     d S r   r   r   s    r   r   r      r   r   configc                    t          | t                    ot          d | D                       }t          | t                    r|                     dd          } n)|r't          | d         t                    rd | D             } |j        }|j        rd|                    |          i}nd|i}t          j	        d|rd	t          |            d
nd d| d|j        rd|d          dndz              t          j        | fi |d|j        ij        }|s|d         d         S t          |d           }d |D             S )a  Get an embedding from the ada model.

    Args:
        input: Input text to get embeddings for, encoded as a string or array of tokens.
            Multiple inputs may be given as a list of strings or token arrays.

    Returns:
        List[float]: The embedding.
    c              3   B   K   | ]}t          |t                     V  d S r   )
isinstanceint).0is     r   	<genexpr>z get_embedding.<locals>.<genexpr>$   s/      .U.U!:a3E3E/E.U.U.U.U.U.Ur   
 r   c                 :    g | ]}|                     d d          S )r   r   )replace)r   texts     r   
<listcomp>z!get_embedding.<locals>.<listcomp>)   s&    ;;;TdC((;;;r   enginemodelzGetting embeddingzs for z inputs z with model ''z via Azure deployment 'api_key	embeddingc                     | d         S )Nindexr   )xs    r   <lambda>zget_embedding.<locals>.<lambda>@   s
    !G* r   )keyc                     g | ]
}|d          S )r'   r   )r   ds     r   r!   z!get_embedding.<locals>.<listcomp>A   s    ///qAkN///r   )r   listallstrr   embedding_model	use_azure!get_azure_deployment_id_for_modelr   debugleniopenaicreate_embeddingopenai_api_keydatasorted)r	   r   multipler#   kwargs
embeddingss         r   r   r      s    %&&U3.U.Uu.U.U.U+U+UH% <dC((	 <jq3// <;;U;;;"E "FDDUKKL5!
L	!HL8SZZ8888" 	! 	!	! 	! 	!<B<LT8VH%58888RT	V   ) 
  %   	   *!}[))
(<(<===J//J////r   )typingr   r   numpynpautogpt.configr   autogpt.llm.baser   autogpt.llm.providersr   r7   autogpt.logsr   r/   float32ndarraydtype	Embeddingr1   r   r   r   r   <module>rJ      s`                       ! ! ! ! ! ! " " " " " " 3 3 3 3 3 3      rz#rx
/C*CDD	  
u     
 
cT%[0 T)_    
)0;c"T%[0)0:@)0i )0 )0 )0 )0 )0 )0r   