核心模块(Modules)
数据连接(DataConnection)
文本嵌入(TextEmbedding)
Index

文本嵌入模型

注意:关于与文本嵌入模型提供方的内置集成,请前往 集成 (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]