Skip to main content
在 GitHub 上打开

文本嵌入模型

信息

前往 集成 获取有关与文本嵌入模型提供程序的内置集成的文档。

Embeddings 类是专为与文本嵌入模型交互而设计的类。有很多嵌入模型提供程序(OpenAI、Cohere、Hugging Face 等)——这个类旨在为它们提供一个标准接口。

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

LangChain 中的基类 Embeddings 提供了两种方法:一种用于嵌入文档,另一种用于嵌入查询。前者.embed_documents,将多个文本作为输入,而后者.embed_query,接受单个文本。将它们作为两个独立方法的原因是,一些嵌入提供程序对文档(要搜索)和查询(搜索查询本身)具有不同的嵌入方法。.embed_query将返回浮点数列表,而.embed_documents返回浮点数列表的列表。

开始使用

设置

pip install -qU langchain-openai
import getpass
import os

if not os.environ.get("OPENAI_API_KEY"):
os.environ["OPENAI_API_KEY"] = getpass.getpass("Enter API key for OpenAI: ")

from langchain_openai import OpenAIEmbeddings

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

embed_documents

嵌入文本列表

.embed_documents要嵌入字符串列表,请恢复嵌入列表:

embeddings = embeddings_model.embed_documents(
[
"Hi there!",
"Oh, hello!",
"What's your name?",
"My friends call me World",
"Hello World!"
]
)
len(embeddings), len(embeddings[0])
(5, 1536)

embed_query

嵌入单个查询

.embed_query嵌入单个文本(例如,为了与其他嵌入的文本进行比较)。

embedded_query = embeddings_model.embed_query("What was the name mentioned in the conversation?")
embedded_query[:5]
[0.0053587136790156364,
-0.0004999046213924885,
0.038883671164512634,
-0.003001077566295862,
-0.00900818221271038]