Embeddings类是一个专门用于与文本嵌入模型进行交互的类。有许多嵌入模型提供者(OpenAI、Cohere、Hugging Face等)-这个类旨在为所有这些提供者提供一个标准接口。
嵌入将一段文本创建成向量表示。这非常有用,因为它意味着我们可以在向量空间中思考文本,并且可以执行语义搜索等操作,在向量空间中寻找最相似的文本片段。
LangChain中基础的Embeddings类公开了两种方法:一种用于对文档进行嵌入,另一种用于对查询进行嵌入。前者输入多个文本,而后者输入单个文本。之所以将它们作为两个独立的方法,是因为某些嵌入提供者针对要搜索的文件和查询(搜索查询本身)具有不同的嵌入方法。
使用 OpenAIEmbeddings 调用 OpenAI 嵌入模型
使用 embed_documents 方法嵌入文本列表
from langchain_openai import OpenAIEmbeddings
import os
api_key = 'sk-xxx'
os.environ["OPENAI_API_KEY"] = api_key
serp_api = 'xxx'
os.environ["SERPAPI_API_KEY"] = serp_api
embeddings_model = OpenAIEmbeddings()
embeddings = embeddings_model.embed_documents(
[
"Hi there!",
"Oh, hello!",
"What's your name?",
"My friends call me World",
"Hello World!"
]
)
print(embeddings)
embedded_query = embeddings_model.embed_query("What was the name mentioned in the conversation?")
print(embedded_query)