
    R1i/                    t   d dl mZ d dlZd dlZd dlmZmZmZmZ d dl	m
Z
 d dlZddlmZ ddlmZ ddlmZmZmZmZmZ dd	lmZmZ dd
lmZ ddlmZmZ ddl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* ddgZ+ G d de       Z, G d de!      Z- G d d      Z. G d d      Z/ G d d      Z0 G d d      Z1y)    )annotationsN)ListUnionIterablecast)Literal   )_legacy_response)embedding_create_params)	NOT_GIVENBodyQueryHeadersNotGiven)is_givenmaybe_transform)cached_property)numpy	has_numpy)SyncAPIResourceAsyncAPIResource)to_streamed_response_wrapper"async_to_streamed_response_wrapper)make_request_options)EmbeddingModel)CreateEmbeddingResponse
EmbeddingsAsyncEmbeddingsc                  p    e Zd Zedd       Zedd       Zeeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZy)	r   c                    t        |       S a  
        This property can be used as a prefix for any HTTP method call to return
        the raw response object instead of the parsed content.

        For more information, see https://www.github.com/openai/openai-python#accessing-raw-response-data-eg-headers
        )EmbeddingsWithRawResponseselfs    _/home/cursorai/projects/iching/venv/lib/python3.12/site-packages/openai/resources/embeddings.pywith_raw_responsezEmbeddings.with_raw_response   s     )..    c                    t        |       S z
        An alternative to `.with_raw_response` that doesn't eagerly read the response body.

        For more information, see https://www.github.com/openai/openai-python#with_streaming_response
        )EmbeddingsWithStreamingResponser#   s    r%   with_streaming_responsez"Embeddings.with_streaming_response&   s     /t44r'   N
dimensionsencoding_formatuserextra_headersextra_query
extra_bodytimeoutc       	            ||||d}
t              sd|
d<   dfd}| j                  dt        |
t        j                        t        ||||	|      t              S )	c  
        Creates an embedding vector representing the input text.

        Args:
          input: Input text to embed, encoded as a string or array of tokens. To embed multiple
              inputs in a single request, pass an array of strings or array of token arrays.
              The input must not exceed the max input tokens for the model (8192 tokens for
              `text-embedding-ada-002`), cannot be an empty string, and any array must be 2048
              dimensions or less.
              [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken)
              for counting tokens. Some models may also impose a limit on total number of
              tokens summed across inputs.

          model: ID of the model to use. You can use the
              [List models](https://platform.openai.com/docs/api-reference/models/list) API to
              see all of your available models, or see our
              [Model overview](https://platform.openai.com/docs/models) for descriptions of
              them.

          dimensions: The number of dimensions the resulting output embeddings should have. Only
              supported in `text-embedding-3` and later models.

          encoding_format: The format to return the embeddings in. Can be either `float` or
              [`base64`](https://pypi.org/project/pybase64/).

          user: A unique identifier representing your end-user, which can help OpenAI to monitor
              and detect abuse.
              [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids).

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        inputmodelr/   r-   r.   base64r.   c                   t              r| S | j                  D ]  }t        t        |j                        }t        |t              s.t               s=t        j                  dt        j                  |            j                         |_        ut        j                  t        j                  |      d      j                         |_         | S Nffloat32)dtyper   datar   object	embedding
isinstancestrr   arrayr9   	b64decodetolistnp
frombufferobjrB   r@   r.   s      r%   parserz!Embeddings.create.<locals>.parserm       (
 XX	FI$7$78!$, {*/++c6;K;KD;Q*R*Y*Y*[I'*,--((.i+fh ' & Jr'   /embeddingsr0   r1   r2   r3   post_parserbodyoptionscast_torK   r   returnr   r   _postr   r   EmbeddingCreateParamsr   r   r$   r7   r8   r-   r.   r/   r0   r1   r2   r3   paramsrL   s       `       r%   createzEmbeddings.create/   s~    j $.
 ((0F$%	& zz )@)V)VW(+'%" ,  
 	
r'   )rV   r"   )rV   r*   r7   z=Union[str, List[str], Iterable[int], Iterable[Iterable[int]]]r8   zUnion[str, EmbeddingModel]r-   zint | NotGivenr.   z%Literal['float', 'base64'] | NotGivenr/   zstr | NotGivenr0   zHeaders | Noner1   zQuery | Noner2   zBody | Noner3   z'float | httpx.Timeout | None | NotGivenrV   r   __name__
__module____qualname__r   r&   r+   r   r\    r'   r%   r   r      s    / / 5 5 &/AJ( )-$("&;D\
 M\
 *	\

 #\
 ?\
 \
 &\
 "\
  \
 9\
 
!\
r'   c                  p    e Zd Zedd       Zedd       Zeeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZy)	r   c                    t        |       S r!   )AsyncEmbeddingsWithRawResponser#   s    r%   r&   z!AsyncEmbeddings.with_raw_response   s     .d33r'   c                    t        |       S r)   )$AsyncEmbeddingsWithStreamingResponser#   s    r%   r+   z'AsyncEmbeddings.with_streaming_response   s     4D99r'   Nr,   c       	           K   ||||d}
t              sd|
d<   d	fd}| j                  dt        |
t        j                        t        ||||	|      t               d{   S 7 w)
r5   r6   r9   r.   c                   t              r| S | j                  D ]  }t        t        |j                        }t        |t              s.t               s=t        j                  dt        j                  |            j                         |_        ut        j                  t        j                  |      d      j                         |_         | S r;   r?   rJ   s      r%   rL   z&AsyncEmbeddings.create.<locals>.parser   rM   r'   rN   rO   rQ   NrU   rW   rZ   s       `       r%   r\   zAsyncEmbeddings.create   s     j $.
 ((0F$%	& ZZ )@)V)VW(+'%" ,   
 
 	
 
s   A!A+$A)%A+)rV   re   )rV   rg   r]   r^   rb   r'   r%   r   r      s    4 4 : : &/AJ( )-$("&;D\
 M\
 *	\

 #\
 ?\
 \
 &\
 "\
  \
 9\
 
!\
r'   c                      e Zd ZddZy)r"   c                Z    || _         t        j                  |j                        | _        y N)_embeddingsr
   to_raw_response_wrapperr\   r$   
embeddingss     r%   __init__z"EmbeddingsWithRawResponse.__init__  s%    %&>>
r'   Nrp   r   rV   Noner_   r`   ra   rq   rb   r'   r%   r"   r"         
r'   r"   c                      e Zd ZddZy)re   c                Z    || _         t        j                  |j                        | _        y rl   )rm   r
   async_to_raw_response_wrapperr\   ro   s     r%   rq   z'AsyncEmbeddingsWithRawResponse.__init__  s%    %&DD
r'   Nrp   r   rV   rs   rt   rb   r'   r%   re   re   
  ru   r'   re   c                      e Zd ZddZy)r*   c                F    || _         t        |j                        | _        y rl   )rm   r   r\   ro   s     r%   rq   z(EmbeddingsWithStreamingResponse.__init__  s    %2
r'   Nrr   rt   rb   r'   r%   r*   r*     ru   r'   r*   c                      e Zd ZddZy)rg   c                F    || _         t        |j                        | _        y rl   )rm   r   r\   ro   s     r%   rq   z-AsyncEmbeddingsWithStreamingResponse.__init__  s    %8
r'   Nry   rt   rb   r'   r%   rg   rg     ru   r'   rg   )2
__future__r   rE   r9   typingr   r   r   r   typing_extensionsr   httpx r
   typesr   _typesr   r   r   r   r   _utilsr   r   _compatr   _extrasr   rH   r   	_resourcer   r   	_responser   r   _base_clientr   types.embedding_modelr   types.create_embedding_responser   __all__r   r   r"   re   r*   rg   rb   r'   r%   <module>r      s    #   . . %   + > > . % , 9 X / 2 E*
+p
 p
fp
& p
f
 

 

 

 
r'   