文本嵌入模型
请前往Integrations查看与文本嵌入模型提供商的内置集成文档。
Embeddings类是一个专为与文本嵌入模型进行交互而设计的类。有许多嵌入模型提供商(如OpenAI、Cohere、Hugging Face等)- 这个类旨在为它们提供一个标准接口。
Embeddings类会为文本创建一个向量表示。这很有用,因为这意味着我们可以在向量空间中思考文本,并做一些类似语义搜索的事情,比如在向量空间中寻找最相似的文本片段。
LangChain中的基本Embeddings类提供了两种方法:一个用于嵌入文档,另一个用于嵌入查询。前者.embed_documents
接受多个文本作为输入,而后者.embed_query
接受单个文本。之所以将它们作为两个单独的方法,是因为一些嵌入提供商对文档(要搜索的文档)和查询(搜索查询本身)有不同的嵌入方法。
.embed_query
将返回一个浮点数列表,而.embed_documents
将返回一个浮点数列表的列表。
入门指南
设置
- OpenAI
- Cohere
首先,我们需要安装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()
首先,我们需要安装Cohere SDK包:
pip install langchain-cohere
访问API需要一个API密钥,您可以通过创建帐户并转到这里来获取它。一旦我们有了密钥,我们希望通过运行以下命令将其设置为环境变量:
export COHERE_API_KEY="..."
如果您不想设置环境变量,可以在初始化Cohere LLM类时通过cohere_api_key
命名参数直接传递密钥:
from langchain_cohere import CohereEmbeddings
embeddings_model = CohereEmbeddings(cohere_api_key="...")
否则,您可以不带任何参数初始化:
from langchain_cohere import CohereEmbeddings
embeddings_model = CohereEmbeddings()
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]