本文将帮助你使用 LangChain 快速上手 OpenAIEmbeddings 嵌入模型。有关 OpenAIEmbeddings 功能和配置选项的详细文档,请参阅 API 参考文档。

概览

集成详情

设置

要访问 OpenAIEmbeddings 嵌入模型,你需要创建一个 OpenAI 账户,获取一个 API 密钥,并安装 @langchain/openai 集成包。

凭证

前往 platform.openai.com 注册 OpenAI 并生成一个 API 密钥。完成后,设置 OPENAI_API_KEY 环境变量:
如果你希望获得模型调用的自动追踪,你也可以通过取消下面的注释来设置你的 LangSmith API 密钥:

安装

LangChain 的 OpenAIEmbeddings 集成位于 @langchain/openai 包中:

实例化

现在你可以实例化嵌入模型了:
如果你属于某个组织,你可以设置 process.env.OPENAI_ORGANIZATION 为你的 OpenAI 组织 ID,或者在初始化模型时将其作为 organization 参数传入。

索引和检索

嵌入模型通常用于检索增强生成 (RAG) 流程中,既用于索引数据,也用于后续检索数据。更详细的说明,请查看我们 学习 标签页 下的 RAG 教程。 下面,看看如何使用我们上面初始化的 embeddings 对象来索引和检索数据。在此示例中,我们将使用演示用的 MemoryVectorStore 来索引和检索一个示例文档。

直接使用

在底层,向量存储和检索器的实现会调用 embeddings.embedDocument(...) 和 embeddings.embedQuery(...) 来为 fromDocuments 操作和检索器的 invoke 操作中使用的文本创建嵌入向量。 你可以直接调用这些方法来为你的用例获取嵌入向量。

嵌入单条文本

你可以使用 embedQuery 为搜索嵌入查询。这会生成一个特定于查询的向量表示:

嵌入多条文本

你可以使用 embedDocuments 为索引嵌入多条文本。此方法使用的内部实现可能与嵌入查询不同(但并非必须不同):

指定维度

对于 text-embedding-3 类模型,你可以指定所需返回的嵌入向量维度。例如,默认情况下 text-embedding-3-large 返回的嵌入维度为 3072:
通过传入 dimensions: 1024,我们可以将嵌入向量的维度减少到 1024:

自定义 URL

你可以通过传入 configuration 参数来自定义 SDK 发送请求的基础 URL,如下所示:
你也可以传入官方 SDK 接受的其他 ClientOptions 参数。 如果你在 Azure OpenAI 上托管,请查看 专门的页面。

API 参考

有关 OpenAIEmbeddings 所有功能和配置的详细文档,请前往 API 参考文档。