CoolFace
Apppublic

RLTMai/filegpt

sourceHugging Facemitupdated 4y agoView on Hugging Face
0likes
embeddings.cpython-310.pyc45 linesDownload Raw Back to __pycache__
1o

2���c��@s�dZddlmZmZmZmZddlmZmZm	Z	ddl3mZddlm
Z
ddlmZmZmZmZddlmZmZmZmZGdd	�d	ee�Zd4S)z'Wrapper around OpenAI embedding models.�)�Any�Dict�List�Optional)�	BaseModel�Extra�root_validator)�5Embeddings)�get_from_dict_or_env)�retry�retry_if_exception_type�stop_after_attempt�wait_exponential)�Timeout�APIError�APIConnectionError�RateLimitErrorc@seZdZUdZeed<dZeed<dZeed<dZ	e6eed<Gdd	�d	�Zed7d8d�de
d
e
fdd��Zed9d�de
d
e
fdd��Zed10ed�edddd�ee�ee�Bee�Bee�Bd�deded
eefdd��Zdeed
eeefdd�Zded
eefd d!�ZdS)"�OpenAIEmbeddingsa�Wrapper around OpenAI embedding models.11    To use, you should have the ``openai`` python package installed, and the12    environment variable ``OPENAI_API_KEY`` set with your API key or pass it13    as a named parameter to the constructor.14    Example:15        .. code-block:: python16            from langchain.embeddings import OpenAIEmbeddings17            openai = OpenAIEmbeddings(openai_api_key="my-api-key")18    �clientztext-embedding-ada-002�document_model_name�query_model_nameN�openai_api_keyc@seZdZdZejZdS)zOpenAIEmbeddings.Configz'Configuration for this pydantic object.N)�__name__�19__module__�__qualname__�__doc__r�forbid�extra�rr�B/Users/danipower/Proyectos/Python/Streamlit/file_gpt/embeddings.py�Config"s20r T)�pre�allow_reuse�values�returncCsVd|vr)d|vrtd��d|vrtd��|�d�}d|�d�|d<d|�d�|d<|S)	z)Get model names from just old model name.�21model_namerzRBoth `model_name` and `document_model_name` were provided, but only one should be.rzOBoth `model_name` and `query_model_name` were provided, but only one should be.ztext-search-z-doc-001z22-query-001)�23ValueError�pop)�clsr#r%rrr�get_model_names(s��24z OpenAIEmbeddings.get_model_names)r"cCsBt|dd�}zddl}||_|j|d<W|Sty td��w)z?Validate that api key and python package exists in environment.r�OPENAI_API_KEYrNrzWCould not import openai python package. Please it install it with `pip install openai`.)r25�openai�api_key�	Embedding�ImportErrorr&)r(r#rr+rrr�validate_environment;s����z%OpenAIEmbeddings.validate_environment�d��26�<)�27multiplier�min�max)�reraise�stop�waitr�text�enginecCs*|�dd�}|jj|g|d�dddS)zACall out to OpenAI's embedding endpoint with exponential backoff.�28� )�inputr;�datar�	embedding)�replacer�create)�selfr:r;rrr�_embedding_funcMsz OpenAIEmbeddings._embedding_func�textscs�fdd�|D�}|S)z�Call out to OpenAI's embedding endpoint for embedding search docs.29        Args:30            texts: The list of texts to embed.31        Returns:32            List of embeddings, one for each text.33        csg|]34}�j|�jd��qS)�r;)rDr)�.0r:�rCrr�35<listcomp>es��z4OpenAIEmbeddings.embed_documents.<locals>.<listcomp>r)rCrE�	responsesrrHr�embed_documents^s36�z OpenAIEmbeddings.embed_documentscCs|j||jd�}|S)z�Call out to OpenAI's embedding endpoint for embedding query text.37        Args:38            text: The text to embed.39        Returns:40            Embeddings for the text.41        rF)rDr)rCr:r@rrr�embed_querykszOpenAIEmbeddings.embed_query)rrrrr�__annotations__r�strrrrr rrr)r/rr
rrrrrrr�floatrDrKrLrrrrrs4424344����
rN)r�typingrrrr�pydanticrrr�langchain.embeddings.baser	�langchain.utilsr45�tenacityrrr
r�openai.errorrrrrrrrrr�<module>s