文本嵌入模型
前往 Integrations 获取与文本嵌入模型提供者的内置集成文档。
Embeddings 类是一个用于与文本嵌入模型接口的类。现在有很多嵌入模型提供者(如 OpenAI、Cohere、Hugging Face 等) - 该类旨在为它们提供一个标准接口。
Embeddings 创建文本的向量表示。这很有用,因为这意味着我们可以在向量空间中考虑文本,并进行语义搜索,寻找在向量空间中最相似的文本片段。
LangChain 中的基础 Embeddings 类提供了两个方法:一个用于嵌入文档,一个用于嵌入查询。前者 .embed_documents
接受多个文本作为输入,而后者 .embed_query
接受单个文本。将这两个方法分开的原因是某些嵌入提供者对文档(进行搜索的对象)和查询(搜索查询本身)有不同的嵌入方法。
.embed_query
将返回一个浮点数列表,而 .embed_documents
返回一个浮点数列表的列表。
开始使用
设置
- OpenAI
- Cohere
- Hugging Face
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="...", model='embed-english-v3.0')
否则,您可以简单地按如下方式初始化:
from langchain_cohere import CohereEmbeddings
embeddings_model = CohereEmbeddings(model='embed-english-v3.0')
请注意,在初始化 CohereEmbeddings 类时,传递模型参数是强制性的。
要开始,我们需要安装 Hugging Face 合作伙伴包:
pip install langchain-huggingface
然后,您可以从 Hugging Face Hub 加载任何 Sentence Transformers 模型。
from langchain_huggingface import HuggingFaceEmbeddings
embeddings_model = HuggingFaceEmbeddings(model_name="sentence-transformers/all-mpnet-base-v2")
您也可以将 model_name
留空以使用默认的 sentence-transformers/all-mpnet-base-v2 模型。
from langchain_huggingface import HuggingFaceEmbeddings
embeddings_model = HuggingFaceEmbeddings()
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]