langchain_openai embed.dianzi.xuanran.OpenAIEmbedding

classlangchain_openai embed.dianzi.xuanran.OpenAIEmbedding[source]

基类: BaseModel, Embedding

OpenAI 推理模型。

使用时,您需要在环境中设置环境变量 OPENAI_API_KEY 为您的 API 密钥,或者将其作为命名参数传递给构造函数。

为了使用该库与 Microsoft Azure 端点,请使用 AzureOpenAIEmbedding。

示例

from langchain_openai import OpenAIEmbeddings

model = OpenAIEmbeddings(model="text-embedding-3-large")

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

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

参数allowed_special: Optional[Union[Literal['all'], Set[str]]]= None
参数check_bootstrap_context_length: bool = True

是否检查输入的标记长度并自动拆分超过 bootstrap_context_length 的输入。

参数chunk_size: int = 1000

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

参数default_headers: Optional[Mapping[str, str]]= None
参数 default_query: 可选[Mapping[str, object]] = None
参数 deployment: 可选[str] = 'text-embedding-ada-002'
参数 dimensions: 可选[int] = None

结果嵌入应具有的维度数量。

仅在 text-embedding-3 及以上版本中支持。

参数 disallowed_special: 可选[Union[Literal['all'], Set[str], Sequence[str]]] = None
参数 embedding_ctx_length: int = 8191

一次嵌入的最大标记数。

参数 headers: Any = None
参数 http_async_client: 可选[Any] = None

可选的httpx.AsyncClient。仅用于异步调用。如果需要同步调用的自定义客户端,还必须指定http_client。

参数 http_client: Optional[Any] = None

可选的httpx.Client。仅用于同步调用。如果需要异步调用的自定义客户端,还需指定http_async_client。

参数 max_retries : int = 2

当生成时最大重试次数。

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

包含任何对 create 调用有效的模型参数,但没有明确指定。

参数 openai_api_base: Optional[str] = None (别称 'base_url')

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

参数 openai_api_key: Optional[SecretStr] = None (别称 'api_key')

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

约束
  • 类型 = 字符串

  • 写入时仅 = True

  • 格式 = 密码

参数 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

对于非OpenAI的嵌入API实现,如用于《text-generation-webui》software的

参数tiktoken_model_name: Optional[str] = None

当使用此类时,将此模型名称传递给tikitoken。Tiktoken用于统计文档中的标记数量,以将它们约束在某个限制以下。默认情况下,当设置为None时,这将与嵌入模型名称相同。但有时你可能想使用此嵌入类与不支持Tiktoken的模型名称。这可以包括使用Azure嵌入或使用许多公开类似OpenAI API但使用不同模型的模型提供者之一。在这些情况下,为了避免在调用Tiktoken时出错,你可以在这里指定使用的模型名称。

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

异步调用OpenAI的嵌入端点进行文档嵌入。

参数
  • texts (List[str]) – 要嵌入的文本列表。

  • chunk_size (Optional[int]) – 嵌入的块大小。如果为None,将使用类中指定的块大小。

返回

嵌入列表,每个列表对应一条文本。

返回类型

List[List[float]]

async aembed_query(text: str) List[float][source]

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

参数

text (str) – 要嵌入的文本。

返回

文本的嵌入。

返回类型

List[float]

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

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

参数
  • texts (List[str]) – 要嵌入的文本列表。

  • chunk_size (Optional[int]) – 嵌入的块大小。如果为None,将使用类中指定的块大小。

返回

嵌入列表,每个列表对应一条文本。

返回类型

List[List[float]]

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

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

参数

text (str) – 要嵌入的文本。

返回

文本的嵌入。

返回类型

List[float]

使用 OpenAIEmbeddings 的示例