跳至主要内容

如何嵌入文本数据

信息

前往 集成 查看有关与文本嵌入提供商的内置集成的文档。

先决条件

本指南假设您熟悉以下概念

嵌入创建文本片段的向量表示。这很有用,因为这意味着我们可以将文本视为向量空间,并执行语义搜索等操作,在语义搜索中,我们会查找向量空间中最相似的文本片段。

LangChain 中的基类 Embeddings 公开了两种方法:一种用于嵌入文档,另一种用于嵌入查询。前者将多个文本作为输入,而后者将单个文本作为输入。将它们设为两种单独的方法的原因是,一些嵌入提供商对文档(要搜索的文档)和查询(搜索查询本身)使用不同的嵌入方法。

入门

下面是如何使用 OpenAI 嵌入的示例。嵌入有时会对查询和文档使用不同的嵌入方法,因此嵌入类公开了 embedQueryembedDocuments 方法。

npm install @langchain/openai @langchain/core

入门

import { OpenAIEmbeddings } from "@langchain/openai";

const embeddings = new OpenAIEmbeddings();

嵌入查询

const res = await embeddings.embedQuery("Hello world");
/*
[
-0.004845875, 0.004899438, -0.016358767, -0.024475135, -0.017341806,
0.012571548, -0.019156644, 0.009036391, -0.010227379, -0.026945334,
0.022861943, 0.010321903, -0.023479493, -0.0066544134, 0.007977734,
0.0026371893, 0.025206111, -0.012048521, 0.012943339, 0.013094575,
-0.010580265, -0.003509951, 0.004070787, 0.008639394, -0.020631202,
... 1511 more items
]
*/

嵌入文档

const documentRes = await embeddings.embedDocuments(["Hello world", "Bye bye"]);
/*
[
[
-0.004845875, 0.004899438, -0.016358767, -0.024475135, -0.017341806,
0.012571548, -0.019156644, 0.009036391, -0.010227379, -0.026945334,
0.022861943, 0.010321903, -0.023479493, -0.0066544134, 0.007977734,
0.0026371893, 0.025206111, -0.012048521, 0.012943339, 0.013094575,
-0.010580265, -0.003509951, 0.004070787, 0.008639394, -0.020631202,
... 1511 more items
]
[
-0.009446913, -0.013253193, 0.013174579, 0.0057552797, -0.038993083,
0.0077763423, -0.0260478, -0.0114384955, -0.0022683728, -0.016509168,
0.041797023, 0.01787183, 0.00552271, -0.0049789557, 0.018146982,
-0.01542166, 0.033752076, 0.006112323, 0.023872782, -0.016535373,
-0.006623321, 0.016116094, -0.0061090477, -0.0044155475, -0.016627092,
... 1511 more items
]
]
*/

后续步骤

您现在已经了解了如何使用嵌入模型与查询和文本进行交互。

接下来,请查看如何 使用缓存避免过度重新计算嵌入,或者 检索增强生成的完整教程


此页面对您有帮助吗?


您也可以留下详细的反馈 在 GitHub 上.