一架梯子,一头程序猿,仰望星空!
LangChain教程(JS版本) > 内容正文

文本向量化处理


文本嵌入模型

Embeddings类是一个用于与文本嵌入模型进行交互的类。有很多嵌入模型提供者(OpenAI,Cohere,Hugging Face等),这个类被设计为为所有这些提供者提供一个标准接口。

嵌入模型可以创建文本片段的向量表示。这个特性非常有用,因为它意味着我们可以在向量空间中处理文本,并进行诸如语义搜索这样的操作,其中我们在向量空间中寻找最相似的文本片段。

LangChain中的基本Embeddings类公开了两种方法:一种用于嵌入文档,另一种用于嵌入查询。前者接受多个文本作为输入,而后者接受一个单一的文本。之所以将它们作为两个单独的方法,是因为某些嵌入提供者在文档(用于搜索)和查询(搜索查询本身)上有不同的嵌入方法。

入门

Embeddings可用于创建文本数据的数值表示。这种数值表示很有用,因为它可以用来查找相似的文档。

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

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

/* 创建实例 */
const embeddings = new OpenAIEmbeddings();

/* 嵌入查询 */
const res = await embeddings.embedQuery("你好 世界");
/*
[
   -0.004845875,   0.004899438,  -0.016358767,  -0.024475135, -0.017341806,
    0.012571548,  -0.019156644,   0.009036391,  -0.010227379, -0.026945334,
  ... 其他1436个项目
]
*/

/* 嵌入文档 */
const documentRes = await embeddings.embedDocuments(["你好 世界", "再见 再见"]);
/*
[
  [
    -0.0047852774,  0.0048640342,   -0.01645707,  -0.024395779, -0.017263541,
      0.012512918,  -0.019191515,   0.009053908,  -0.010213212, -0.026890801,
    ... 其他1436个项目
  ],
  [
      -0.009446913,  -0.013253193,   0.013174579,  0.0057552797,  -0.038993083,
      0.0077763423,    -0.0260478, -0.0114384955, -0.0022683728,  -0.016509168,
    ... 其他1436个项目
  ]
]

提示:不了解文本嵌入,请参考文本嵌入模型



关联主题