langchain.embeddings.openai.OpenAIEmbeddings¶
- class langchain.embeddings.openai.OpenAIEmbeddings(*, client: Any = None, model: str = 'text-embedding-ada-002', deployment: str = 'text-embedding-ada-002', openai_api_version: Optional[str] = None, openai_api_base: Optional[str] = None, openai_api_type: Optional[str] = None, openai_proxy: Optional[str] = None, embedding_ctx_length: int = 8191, openai_api_key: Optional[str] = None, openai_organization: Optional[str] = None, allowed_special: Union[Literal['all'], Set[str]] = {}, disallowed_special: Union[Literal['all'], Set[str], Sequence[str]] = 'all', chunk_size: int = 1000, max_retries: int = 6, request_timeout: Optional[Union[float, Tuple[float, float]]] = None, headers: Any = None, tiktoken_model_name: Optional[str] = None, show_progress_bar: bool = False, model_kwargs: Dict[str, Any] = None)[source]¶
Bases:
BaseModel,EmbeddingsOpenAI embedding models.
To use, you should have the
openaipython package installed, and the environment variableOPENAI_API_KEYset with your API key or pass it as a named parameter to the constructor.Example
from langchain.embeddings import OpenAIEmbeddings openai = OpenAIEmbeddings(openai_api_key="my-api-key")
In order to use the library with Microsoft Azure endpoints, you need to set the OPENAI_API_TYPE, OPENAI_API_BASE, OPENAI_API_KEY and OPENAI_API_VERSION. The OPENAI_API_TYPE must be set to ‘azure’ and the others correspond to the properties of your endpoint. In addition, the deployment name must be passed as the model parameter.
Example
import os os.environ["OPENAI_API_TYPE"] = "azure" os.environ["OPENAI_API_BASE"] = "https://<your-endpoint.openai.azure.com/" os.environ["OPENAI_API_KEY"] = "your AzureOpenAI key" os.environ["OPENAI_API_VERSION"] = "2023-05-15" os.environ["OPENAI_PROXY"] = "http://your-corporate-proxy:8080" from langchain.embeddings.openai import OpenAIEmbeddings embeddings = OpenAIEmbeddings( deployment="your-embeddings-deployment-name", model="your-embeddings-model-name", openai_api_base="https://your-endpoint.openai.azure.com/", openai_api_type="azure", ) text = "This is a test query." query_result = embeddings.embed_query(text)
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- param allowed_special: Union[Literal['all'], Set[str]] = {}¶
- param chunk_size: int = 1000¶
Maximum number of texts to embed in each batch
- param deployment: str = 'text-embedding-ada-002'¶
- param disallowed_special: Union[Literal['all'], Set[str], Sequence[str]] = 'all'¶
- param embedding_ctx_length: int = 8191¶
The maximum number of tokens to embed at once.
- param headers: Any = None¶
- param max_retries: int = 6¶
Maximum number of retries to make when generating.
- param model: str = 'text-embedding-ada-002'¶
- param model_kwargs: Dict[str, Any] [Optional]¶
Holds any model parameters valid for create call not explicitly specified.
- param openai_api_base: Optional[str] = None¶
- param openai_api_key: Optional[str] = None¶
- param openai_api_type: Optional[str] = None¶
- param openai_api_version: Optional[str] = None¶
- param openai_organization: Optional[str] = None¶
- param openai_proxy: Optional[str] = None¶
- param request_timeout: Optional[Union[float, Tuple[float, float]]] = None¶
Timeout in seconds for the OpenAPI request.
- param show_progress_bar: bool = False¶
Whether to show a progress bar when embedding.
- param tiktoken_model_name: Optional[str] = None¶
The model name to pass to tiktoken when using this class. Tiktoken is used to count the number of tokens in documents to constrain them to be under a certain limit. By default, when set to None, this will be the same as the embedding model name. However, there are some cases where you may want to use this Embedding class with a model name not supported by tiktoken. This can include when using Azure embeddings or when using one of the many model providers that expose an OpenAI-like API but with different models. In those cases, in order to avoid erroring when tiktoken is called, you can specify a model name to use here.
- async aembed_documents(texts: List[str], chunk_size: Optional[int] = 0) List[List[float]][source]¶
Call out to OpenAI’s embedding endpoint async for embedding search docs.
- Parameters
texts – The list of texts to embed.
chunk_size – The chunk size of embeddings. If None, will use the chunk size specified by the class.
- Returns
List of embeddings, one for each text.
- async aembed_query(text: str) List[float][source]¶
Call out to OpenAI’s embedding endpoint async for embedding query text.
- Parameters
text – The text to embed.
- Returns
Embedding for the text.
- validator build_extra » all fields[source]¶
Build extra kwargs from additional params that were passed in.
- embed_documents(texts: List[str], chunk_size: Optional[int] = 0) List[List[float]][source]¶
Call out to OpenAI’s embedding endpoint for embedding search docs.
- Parameters
texts – The list of texts to embed.
chunk_size – The chunk size of embeddings. If None, will use the chunk size specified by the class.
- Returns
List of embeddings, one for each text.
- embed_query(text: str) List[float][source]¶
Call out to OpenAI’s embedding endpoint for embedding query text.
- Parameters
text – The text to embed.
- Returns
Embedding for the text.
Examples using OpenAIEmbeddings¶
Question answering over a group chat messages using Activeloop’s DeepLake
Analysis of Twitter the-algorithm source code with LangChain, GPT4 and Activeloop’s Deep Lake
Use LangChain, GPT and Activeloop’s Deep Lake to work with code base
SalesGPT - Your Context-Aware AI Sales Assistant With Knowledge Base