文本嵌入模型
info
转到集成以获取有关内置文本嵌入模型提供商的文档。
嵌入类是一个用于与文本嵌入模型进行交互的类。有很多嵌入模型提供商(OpenAI、Cohere、Hugging Face等)-该类旨在为所有这些提供一个标准接口。
嵌入可以创建文本的向量表示。这很有用,因为这意味着我们可以在向量空间中思考文本,并进行语义搜索,其中我们寻找在向量空间中最相似的文本片段。
LangChain中的基本嵌入类提供两种方法:一种用于嵌入文档,一种用于嵌入查询。前者以多个文本作为输入,而后者以单个文本作为输入。之所以将它们作为两种不同的方法,是因为某些嵌入提供商对于文档(要搜索的文档)和查询(搜索查询本身)有不同的嵌入方法。
入门指南
设置
首先,我们需要安装 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
Embed list of texts
embeddings = embedding_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 single query)
嵌入单个文本以便与其他嵌入的文本进行比较。
embedded_query = embedding_model.embed_query("What was the name mentioned in the conversation?")
embedded_query[:5]
[0.0053587136790156364,
-0.0004999046213924885,
0.038883671164512634,
-0.003001077566295862,
-0.00900818221271038]