Skip to main content

文本嵌入模型

info

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

Embeddings类是一个用于与文本嵌入模型进行交互的类。有许多嵌入模型提供商(OpenAI、Cohere、Hugging Face等)- 这个类旨在为所有这些提供商提供一个标准接口。

Embeddings类可以创建文本的向量表示。这很有用,因为这意味着我们可以在向量空间中思考文本,并进行语义搜索等操作,其中我们寻找在向量空间中最相似的文本片段。

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

入门

设置

首先,我们需要安装OpenAI的Python包:

pip install openai

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

export OPENAI_API_KEY="..."

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

from langchain.embeddings import OpenAIEmbeddings

embeddings_model = OpenAIEmbeddings(openai_api_key="...")

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

from langchain.embeddings import OpenAIEmbeddings

embeddings_model = OpenAIEmbeddings()

embed_documents

嵌入文本列表

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

(5, 1536)

embed_query

嵌入单个查询

嵌入一段文本,以便与其他嵌入的文本进行比较。

embedded_query = embeddings_model.embed_query("对话中提到的名字是什么?")
embedded_query[:5]

输出结果:

[0.0053587136790156364,
-0.0004999046213924885,
0.038883671164512634,
-0.003001077566295862,
-0.00900818221271038]