跳转到内容

OpenAIEmbeddings

参考文档

此页面包含 OpenAIEmbeddings参考文档。有关使用 OpenAIEmbeddings 的概念指南、教程和示例,请参阅文档

langchain_openai.embeddings.OpenAIEmbeddings

基类:BaseModel, Embeddings

OpenAI 嵌入模型集成。

设置

安装 `langchain_openai` 并设置环境变量 `OPENAI_API_KEY`。

pip install -U langchain_openai
export OPENAI_API_KEY="your-api-key"

关键初始化参数 — 嵌入参数: model:要使用的 OpenAI 模型名称。 dimensions:生成的输出嵌入应具有的维度数。仅在 `text-embedding-3` 及更高版本的模型中受支持。

关键初始化参数 — 客户端参数: api_key:OpenAI API 密钥。 organization:OpenAI 组织 ID。如果未传入,将从环境变量 `OPENAI_ORG_ID` 读取。 max_retries:生成时进行的最大重试次数。 request_timeout:请求 OpenAI 完成 API 的超时时间。

有关支持的初始化参数及其描述的完整列表,请参见参数部分。

实例化
from langchain_openai import OpenAIEmbeddings

embed = OpenAIEmbeddings(
    model="text-embedding-3-large"
    # With the `text-embedding-3` class
    # of models, you can specify the size
    # of the embeddings you want returned.
    # dimensions=1024
)
嵌入单个文本

input_text = "The meaning of life is 42"
vector = embeddings.embed_query("hello")
print(vector[:3])
[-0.024603435769677162, -0.007543657906353474, 0.0039630369283258915]

嵌入多个文本

vectors = embeddings.embed_documents(["hello", "goodbye"])
# Showing only the first 3 coordinates
print(len(vectors))
print(vectors[0][:3])
2
[-0.024603435769677162, -0.007543657906353474, 0.0039630369283258915]

异步

await embed.aembed_query(input_text)
print(vector[:3])

# multiple:
# await embed.aembed_documents(input_texts)
[-0.009100092574954033, 0.005071679595857859, -0.0029193938244134188]

方法 描述
build_extra

根据传入的额外参数构建额外的关键字参数(kwargs)。

validate_environment

验证 API 密钥和 Python 包是否存在于环境中。

embed_documents

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

aembed_documents

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

embed_query

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

aembed_query

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

dimensions 类属性 实例属性

dimensions: int | None = None

生成的输出嵌入应具有的维度数。

仅在 `text-embedding-3` 及更高版本的模型中受支持。

openai_api_version 类属性 实例属性

openai_api_version: str | None = Field(
    default_factory=from_env("OPENAI_API_VERSION", default=None), alias="api_version"
)

如果未提供,则从环境变量 `OPENAI_API_VERSION` 自动推断。

openai_api_base 类属性 实例属性

openai_api_base: str | None = Field(
    alias="base_url", default_factory=from_env("OPENAI_API_BASE", default=None)
)

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

embedding_ctx_length 类属性 实例属性

embedding_ctx_length: int = 8191

一次嵌入的最大令牌数。

openai_api_key 类属性 实例属性

openai_api_key: SecretStr | None | Callable[[], str] | Callable[[], Awaitable[str]] = (
    Field(
        alias="api_key", default_factory=secret_from_env("OPENAI_API_KEY", default=None)
    )
)

如果未提供,则从环境变量 `OPENAI_API_KEY` 自动推断。

openai_organization 类属性 实例属性

openai_organization: str | None = Field(
    alias="organization",
    default_factory=from_env(["OPENAI_ORG_ID", "OPENAI_ORGANIZATION"], default=None),
)

如果未提供,则从环境变量 `OPENAI_ORG_ID` 自动推断。

chunk_size 类属性 实例属性

chunk_size: int = 1000

每批嵌入的最大文本数

max_retries 类属性 实例属性

max_retries: int = 2

生成时允许的最大重试次数。

request_timeout 类属性 实例属性

request_timeout: float | tuple[float, float] | Any | None = Field(
    default=None, alias="timeout"
)

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

tiktoken_enabled 类属性 实例属性

tiktoken_enabled: bool = True

对于嵌入 API 的非 OpenAI 实现,请将此项设置为 False,例如 `text-generation-webui` 的 `--extensions openai` 扩展。

tiktoken_model_name 类属性 实例属性

tiktoken_model_name: str | None = None

使用此类时传递给 tiktoken 的模型名称。Tiktoken 用于计算文档中的令牌数量,以将其限制在特定限制以下。默认情况下,当设置为 None 时,这将与嵌入模型名称相同。但是,在某些情况下,您可能希望将此 Embedding 类与 tiktoken 不支持的模型名称一起使用。这可能包括使用 Azure 嵌入时,或使用众多提供类似 OpenAI API 但具有不同模型的模型提供商之一时。在这些情况下,为了避免在调用 tiktoken 时出错,您可以在此处指定要使用的模型名称。

show_progress_bar 类属性 实例属性

show_progress_bar: bool = False

嵌入时是否显示进度条。

model_kwargs 类属性 实例属性

model_kwargs: dict[str, Any] = Field(default_factory=dict)

保存任何未明确指定的、对 create 调用有效的模型参数。

skip_empty 类属性 实例属性

skip_empty: bool = False

嵌入时是跳过空字符串还是引发错误。

retry_min_seconds 类属性 实例属性

retry_min_seconds: int = 4

两次重试之间等待的最短秒数

retry_max_seconds 类属性 实例属性

retry_max_seconds: int = 20

两次重试之间等待的最长秒数

http_client 类属性 实例属性

http_client: Any | None = None

可选的 `httpx.Client`。仅用于同步调用。如果您希望为异步调用使用自定义客户端,则还必须指定 `http_async_client`。

http_async_client 类属性 实例属性

http_async_client: Any | None = None

可选的 `httpx.AsyncClient`。仅用于异步调用。如果您希望为同步调用使用自定义客户端,则还必须指定 `http_client`。

check_embedding_ctx_length 类属性 实例属性

check_embedding_ctx_length: bool = True

是否检查输入的令牌长度并自动分割长于 embedding_ctx_length 的输入。

build_extra 类方法

build_extra(values: dict[str, Any]) -> Any

根据传入的额外参数构建额外的关键字参数(kwargs)。

validate_environment

validate_environment() -> Self

验证 API 密钥和 Python 包是否存在于环境中。

embed_documents

embed_documents(
    texts: list[str], chunk_size: int | None = None, **kwargs: Any
) -> list[list[float]]

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

参数 描述
texts

要嵌入的文本列表。

类型: list[str]

chunk_size

嵌入的块大小。如果为 `None`,将使用类指定的块大小。

TYPE: int | None DEFAULT: None

kwargs

要传递给嵌入 API 的其他关键字参数。

类型: Any 默认值: {}

返回 描述
list[list[float]]

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

aembed_documents 异步

aembed_documents(
    texts: list[str], chunk_size: int | None = None, **kwargs: Any
) -> list[list[float]]

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

参数 描述
texts

要嵌入的文本列表。

类型: list[str]

chunk_size

嵌入的块大小。如果为 `None`,将使用类指定的块大小。

TYPE: int | None DEFAULT: None

kwargs

要传递给嵌入 API 的其他关键字参数。

类型: Any 默认值: {}

返回 描述
list[list[float]]

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

embed_query

embed_query(text: str, **kwargs: Any) -> list[float]

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

参数 描述
text

要嵌入的文本。

类型: str

kwargs

要传递给嵌入 API 的其他关键字参数。

类型: Any 默认值: {}

返回 描述
list[float]

文本的嵌入。

aembed_query 异步

aembed_query(text: str, **kwargs: Any) -> list[float]

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

参数 描述
text

要嵌入的文本。

类型: str

kwargs

要传递给嵌入 API 的其他关键字参数。

类型: Any 默认值: {}

返回 描述
list[float]

文本的嵌入。

© . This site is unofficial and not affiliated with LangChain, Inc.