a
    _g/                     @  sP  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 de Z,G dd de!Z-G dd dZ.G dd dZ/G dd dZ0G dd dZ1dS )    )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                   @  sb   e Zd ZeddddZeddddZeeeddded	d
dddddddddd
ddZdS )r   EmbeddingsWithRawResponsereturnc                 C  s   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
        )r   self r$   i/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/openai/resources/embeddings.pywith_raw_response   s    zEmbeddings.with_raw_responseEmbeddingsWithStreamingResponsec                 C  s   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
        )r'   r"   r$   r$   r%   with_streaming_response&   s    z"Embeddings.with_streaming_responseN
dimensionsencoding_formatuserextra_headersextra_query
extra_bodytimeout=Union[str, List[str], Iterable[int], Iterable[Iterable[int]]]Union[str, EmbeddingModel]int | NotGiven%Literal['float', 'base64'] | NotGivenstr | NotGivenHeaders | NoneQuery | NoneBody | None'float | httpx.Timeout | None | NotGivenr   
inputmodelr+   r,   r-   r.   r/   r0   r1   r    c       	      
     s\   |||| d}
t  s d|
d< ddd fdd}| jdt|
tjt||||	|d	td
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
        r<   r=   r-   r+   r,   base64r,   r   objr    c                   sn   t  r| S | jD ]V}tt|j}t|ts.qt sNtdt	
| |_qtjt	
|dd |_q| S NfZfloat32)Zdtyper   datar   object	embedding
isinstancestrr   arrayr@   	b64decodetolistnpZ
frombufferrB   rH   rF   r,   r$   r%   parserm   s    


z!Embeddings.create.<locals>.parser/embeddingsr.   r/   r0   r1   Zpost_parserbodyoptionsZcast_tor   _postr   r
   ZEmbeddingCreateParamsr   r   r#   r<   r=   r+   r,   r-   r.   r/   r0   r1   paramsrQ   r$   rP   r%   create/   s*    5
zEmbeddings.create__name__
__module____qualname__r   r&   r)   r   r[   r$   r$   r$   r%   r      s   	c                   @  sb   e Zd ZeddddZeddddZeeeddded	d
dddddddddd
ddZdS )r   AsyncEmbeddingsWithRawResponser   c                 C  s   t | S r!   )r`   r"   r$   r$   r%   r&      s    z!AsyncEmbeddings.with_raw_response$AsyncEmbeddingsWithStreamingResponsec                 C  s   t | S r(   )ra   r"   r$   r$   r%   r)      s    z'AsyncEmbeddings.with_streaming_responseNr*   r2   r3   r4   r5   r6   r7   r8   r9   r:   r   r;   c       	      
     sb   |||| d}
t  s d|
d< ddd fdd}| jdt|
tjt||||	|d	td
I dH S )r>   r?   r@   r,   r   rA   c                   sn   t  r| S | jD ]V}tt|j}t|ts.qt sNtdt	
| |_qtjt	
|dd |_q| S rC   rE   rO   rP   r$   r%   rQ      s    


z&AsyncEmbeddings.create.<locals>.parserrR   rS   rT   NrW   rY   r$   rP   r%   r[      s*    5
zAsyncEmbeddings.creater\   r$   r$   r$   r%   r      s   	c                   @  s   e Zd ZdddddZdS )r   r   None
embeddingsr    c                 C  s   || _ t|j| _d S N)_embeddingsr	   Zto_raw_response_wrapperr[   r#   rd   r$   r$   r%   __init__  s    z"EmbeddingsWithRawResponse.__init__Nr]   r^   r_   rh   r$   r$   r$   r%   r     s   r   c                   @  s   e Zd ZdddddZdS )r`   r   rb   rc   c                 C  s   || _ t|j| _d S re   )rf   r	   Zasync_to_raw_response_wrapperr[   rg   r$   r$   r%   rh     s    z'AsyncEmbeddingsWithRawResponse.__init__Nri   r$   r$   r$   r%   r`   
  s   r`   c                   @  s   e Zd ZdddddZdS )r'   r   rb   rc   c                 C  s   || _ t|j| _d S re   )rf   r   r[   rg   r$   r$   r%   rh     s    z(EmbeddingsWithStreamingResponse.__init__Nri   r$   r$   r$   r%   r'     s   r'   c                   @  s   e Zd ZdddddZdS )ra   r   rb   rc   c                 C  s   || _ t|j| _d S re   )rf   r   r[   rg   r$   r$   r%   rh     s    z-AsyncEmbeddingsWithStreamingResponse.__init__Nri   r$   r$   r$   r%   ra     s   ra   )2
__future__r   rK   r@   typingr   r   r   r   Ztyping_extensionsr   Zhttpx r	   typesr
   _typesr   r   r   r   r   _utilsr   r   Z_compatr   _extrasr   rN   r   Z	_resourcer   r   	_responser   r   Z_base_clientr   Ztypes.embedding_modelr   Ztypes.create_embedding_responser   __all__r   r   r   r`   r'   ra   r$   r$   r$   r%   <module>   s.   ss			