langchain_community.embeddings.openai.OpenAIEmbeddings

class langchain_community.embeddings.openai.OpenAIEmbeddings[source]

基类: BaseModel, Embeddings

自版本 0.0.9 起已弃用: 请使用 langchain_openai.OpenAIEmbeddings 代替。

OpenAI 嵌入模型。

使用时,您应该安装了 openai Python 包,并且已设置环境变量 OPENAI_API_KEY 为您的 API 密钥,或者将其作为命名参数传递给构造函数。

示例

from langchain_community.embeddings import OpenAIEmbeddings
openai = OpenAIEmbeddings(openai_api_key="my-api-key")

要使用与微软 Azure 端点配合的库,您需要设置 OPENAI_API_TYPEOPENAI_API_BASEOPENAI_API_KEYOPENAI_API_VERSION。必须将 OPENAI_API_TYPE 设置为 'azure',而其他选项对应于端点的属性。此外,必须将部署名称作为模型参数传递。

示例

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_community.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)

通过解析和验证来自关键字参数的输入数据来创建新模型。

如果输入数据无法解析为有效的模型,则引发 ValidationError。

param allowed_special : Union[Literal['all'], Set[str]] = {}
param chunk_size : int = 1000

每个批次中嵌入的最大文本数量

param default_headers: Optional[Mapping[str, str]] = None
param default_query: Optional[Mapping[str, object]] = None
param deployment: Optional[str] = 'text-embedding-ada-002'
param disallowed_special: Union[Literal['all'], Set[str], Sequence[str]] = 'all'
param embedding_ctx_length: int = 8191

一次嵌入的最大token数量。

param headers: Any = None
param http_client: Optional[Any] = None

可选的httpx.Client。

param max_retries: int = 2

生成时最大重试次数。

参数 model: str = 'text-embedding-ada-002'
参数 model_kwargs: Dict[str, Any] [Optional]

存储任何有效的模型参数,这些参数适用于 create 调用但没有明确指定。

参数 openai_api_base: Optional[str] = None (同义词: base_url)

API请求的基本URL路径,如果不使用代理或服务模拟器,则为空。

参数 openai_api_key: Optional[str] = None (同义词: api_key)

如果没有提供,将自动从环境变量 OPENAI_API_KEY 中推断出来。

参数 openai_api_type: Optional[str] = None
参数 openai_api_version: Optional[str] = None (同义词: api_version)

如果没有提供,将自动从环境变量 OPENAI_API_VERSION 中推断出来。

参数 openai_organization: Optional[str] = None (同义词: organization)

如果没有提供,将自动从环境变量 OPENAI_ORG_ID 中推断出来。

参数openai_proxy:Optional[str]=None
参数request_timeout:Optional[Union[float, Tuple[float, float], Any]]=None (别名 'timeout')

请求 OpenAI 完成API的超时时间。可以是浮点数、httpx.Timeout或None。

参数retry_max_seconds:int=20

重试之间的最大秒数

参数retry_min_seconds:int=4

重试之间的最小秒数

参数show_progress_bar:bool=False

在嵌入时是否显示进度条。

参数skip_empty:bool=False

在嵌入时是否跳过空字符串,或者抛出错误。默认不跳过。

参数tiktoken_enabled:bool=True

将此设置为False,用于非OpenAI实现嵌入API,例如为“text-generation-webui”的“–extensions openai”扩展

param tiktoken_model_name: Optional[str] = None

此类在调用时传递给 تنكيtoken 的模型名称。Tiktoken 用于统计文档中的标记数量,以限制其长度不超过特定的限制。默认情况下,当设置为 None 时,与此嵌入模型名称相同。然而,在某些情况下,您可能需要使用此嵌入类与 Tiktoken 不支持的模型名称配合使用。这可能包括在使用 Azure 嵌入或其他许多公开类似 OpenAI API 但使用不同模型的服务提供者时。在这些情况下,为了避免在调用 Tiktoken 时出错,您可以在此处指定要使用的模型名称。

async aembed_documents(texts: List[str], chunk_size: Optional[int] = 0) List[List[float]][source]

使用 OpenAI 的嵌入端点异步调用嵌入搜索文档。

参数
  • texts (列表(字符串)) – 要嵌入的文本列表。

  • chunk_size (可选(整数)) – 嵌入的块大小。如果为 None,将使用类指定的块大小。

返回值

嵌入列表,每个文本一个。

返回类型

列表(列表[浮点数])

async aembed_query(text: 字符串) List[float][source]

使用 OpenAI 的嵌入端点异步调用嵌入查询文本。

参数

text (字符串) – 要嵌入的文本。

返回值

文本的嵌入。

返回类型

列表(浮点数)

embed_documents(texts: List[str], chunk_size: Optional[int] = 0) List[List[float]][source]

调用 OpenAI 的嵌入端点以嵌入搜索文档。

参数
  • texts (列表(字符串)) – 要嵌入的文本列表。

  • chunk_size (可选(整数)) – 嵌入的块大小。如果为 None,将使用类指定的块大小。

返回值

嵌入列表,每个文本一个。

返回类型

列表(列表[浮点数])

embed_query(text: str) List[float][source]

调用 OpenAI 的嵌入端点以嵌入查询文本。

参数

text (字符串) – 要嵌入的文本。

返回值

文本的嵌入。

返回类型

列表(浮点数)

使用 OpenAIEmbeddings 的示例