Skip to main content

文本嵌入模型

info

请前往Integrations查看与文本嵌入模型提供商的内置集成文档。

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

Embeddings类会为文本创建一个向量表示。这很有用,因为这意味着我们可以在向量空间中思考文本,并做一些类似语义搜索的事情,比如在向量空间中寻找最相似的文本片段。

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

.embed_query将返回一个浮点数列表,而.embed_documents将返回一个浮点数列表的列表。

入门指南

设置

首先,我们需要安装OpenAI合作伙伴包:

pip install langchain-openai

访问API需要一个API密钥,您可以通过创建帐户并转到这里来获取它。一旦我们有了密钥,我们希望通过运行以下命令将其设置为环境变量:

export OPENAI_API_KEY="..."

如果您不想设置环境变量,可以在初始化OpenAI LLM类时通过api_key命名参数直接传递密钥:

from langchain_openai import OpenAIEmbeddings
embeddings_model = OpenAIEmbeddings(api_key="...")

否则,您可以不带任何参数初始化:

from langchain_openai import OpenAIEmbeddings
embeddings_model = OpenAIEmbeddings()

embed_documents

嵌入文本列表

使用.embed_documents来嵌入一个字符串列表,恢复一个嵌入列表:

embeddings = embeddings_model.embed_documents(
[
"嗨!",
"哦,你好!",
"你叫什么名字?",
"我的朋友们叫我World",
"Hello World!"
]
)
len(embeddings), len(embeddings[0])
(5, 1536)

embed_query

嵌入单个查询

使用.embed_query来嵌入单个文本片段(例如,用于与其他嵌入的文本片段进行比较)。

embedded_query = embeddings_model.embed_query("对话中提到的名字是什么?")
embedded_query[:5]
[0.0053587136790156364,
-0.0004999046213924885,
0.038883671164512634,
-0.003001077566295862,
-0.00900818221271038]

Was this page helpful?


You can leave detailed feedback on GitHub.