跳到主要内容

如何嵌入文本数据

信息

请访问 集成 页面,查看有关与文本嵌入提供商的内置集成的文档。

先决条件

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

嵌入创建一段文本的向量表示。这很有用,因为它意味着我们可以在向量空间中思考文本,并进行诸如语义搜索之类的操作,在语义搜索中,我们查找在向量空间中最相似的文本片段。

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 上.