文本嵌入模型
注意:关于与文本嵌入模型提供方的内置集成,请前往 集成 (opens in a new tab)。
Embeddings 类是为与文本嵌入模型交互而设计的类。有许多嵌入模型提供方(OpenAI、Cohere、Hugging Face 等)——这个类旨在为它们全部提供一个标准接口。
嵌入为一篇文本创建向量表示。这很有用,因为它意味着我们可以在向量空间中思考文本,并做像语义搜索这样的事情——在向量空间中查找最相似的文本片段。
LangChain 中基础的 Embeddings 类提供两个方法:一个用于嵌入文档,一个用于嵌入查询。前者接受多个文本作为输入,后者接受单个文本。之所以把它们作为两个独立的方法,是因为某些嵌入提供方对文档(被搜索的对象)和查询(搜索查询本身)使用不同的嵌入方法。
入门
设置
import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';
pip install langchain-openai访问 API 需要一个 API 密钥,你可以通过创建账户并前往 此处 (opens in a new tab) 获取。拿到密钥后,我们想通过运行以下命令将其设置为环境变量:
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 密钥,你可以通过创建账户并前往 此处 (opens in a new tab) 获取。拿到密钥后,我们想通过运行以下命令将其设置为环境变量:
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
嵌入文本列表
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
嵌入单个查询
嵌入单篇文本,用于与其它已嵌入的文本片段进行比较。
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]