跳到主要内容

Embedding Model

Embedding Model 组件在 Langflow 中使用指定的大型语言模型(LLM)生成文本嵌入。

Langflow 包含一个内置支持某些 LLM 的 Embedding Model 核心组件。 或者,您可以使用其他嵌入模型替代核心 Embedding Model 组件。

在流程中使用 Embedding Model 组件

在需要生成嵌入的任何流程中使用 Embedding Model 组件。

此示例展示如何在流程中使用 Embedding Model 组件创建语义搜索系统。 此流程加载文本文件,将文本分割成块,为每个块生成嵌入,然后将块和嵌入加载到向量存储中。输入和输出组件允许用户通过聊天界面查询向量存储。

使用 Embedding Model、File、Split Text、Chroma DB、Chat Input 和 Chat Output 组件的语义搜索流程

  1. 创建一个流程,添加一个 File 组件,然后选择一个包含文本数据的文件(如 PDF)来测试流程。

  2. 添加一个 Embedding Model 组件,然后提供有效的 OpenAI API 密钥。 您可以直接输入 API 密钥或使用 全局变量

    提示

    如果您首选的嵌入模型提供商或模型不被 Embedding Model 核心组件支持,您可以使用其他嵌入模型替代核心组件。

    组件菜单中搜索您首选的提供商以查找其他嵌入模型,例如 Hugging Face Embeddings Inference 组件

  3. 向您的流程中添加一个 Split Text 组件。 此组件将文本输入分割成较小的块以便处理为嵌入。

  4. 向您的流程中添加一个 Vector Store 组件,例如 Chroma DB 组件,然后配置该组件以连接到您的向量存储数据库。 此组件存储生成的嵌入,以便它们可用于相似性搜索。

  5. 连接组件:

    • File 组件的 Loaded Files 输出连接到 Split Text 组件的 Data or DataFrame 输入。
    • Split Text 组件的 Chunks 输出连接到 Vector Store 组件的 Ingest Data 输入。
    • Embedding Model 组件的 Embeddings 输出连接到 Vector Store 组件的 Embedding 输入。
  6. 要查询向量存储,请添加 Chat Input and Output 组件

    • Chat Input 组件连接到 Vector Store 组件的 Search Query 输入。
    • Vector Store 组件的 Search Results 输出连接到 Chat Output 组件。
  7. 点击 Playground,然后输入搜索查询以检索与您的查询语义上最相似的文本块。

Embedding Model 参数

以下参数适用于 Embedding Model 核心组件。 其他嵌入模型组件可能有额外的或不同的参数。

在可视化编辑器中,部分参数默认情况下是隐藏的。 您可以通过组件的头部菜单中的 控件 来修改所有参数。

NameDisplay NameTypeDescription
providerModel ProviderList输入参数。选择嵌入模型提供商。
modelModel NameList输入参数。选择要使用的嵌入模型。
api_keyOpenAI API KeySecret[String]输入参数。用于向提供商进行身份验证所需的 API 密钥。
api_baseAPI Base URLString输入参数。API 的基础 URL。留空使用默认值。
dimensionsDimensionsInteger输入参数。输出嵌入的维度数。
chunk_sizeChunk SizeInteger输入参数。要处理的文本块大小。默认值:1000
request_timeoutRequest TimeoutFloat输入参数。API 请求的超时时间。
max_retriesMax RetriesInteger输入参数。最大重试次数。默认值:3
show_progress_barShow Progress BarBoolean输入参数。在嵌入生成过程中是否显示进度条。
model_kwargsModel KwargsDictionary输入参数。传递给模型的额外关键字参数。
embeddingsEmbeddingsEmbeddings输出参数。使用所选提供商生成嵌入的实例。

其他嵌入模型

如果您的提供商或模型不被 Embedding Model 核心组件支持,在 Components 菜单的 Bundles 部分中还有其他提供商特定的 Embedding Model 组件可用。

传统嵌入组件

以下组件是传统组件。 您仍然可以在流程中使用它们,但它们已不再维护,并且可能会在未来的版本中被移除。

嵌入相似度

Embedding Similarity 组件被 Vector Store 组件 中的内置相似度搜索功能所取代。

此组件计算两个嵌入向量的相似度分数。

它接受以下参数:

NameDisplay NameInfo
embedding_vectorsEmbedding Vectors输入参数。一个包含恰好两个要比较的嵌入向量的数据对象列表。
similarity_metricSimilarity Metric输入参数。选择要使用的相似度度量。选项:"Cosine Similarity"、"Euclidean Distance"、"Manhattan Distance"。
similarity_dataSimilarity Data输出参数。一个包含计算出的相似度分数和附加信息的数据对象。
文本嵌入器

Text Embedder 组件被 Embedding Model 组件所取代。

此组件使用指定的嵌入模型为给定消息生成嵌入向量。

它接受以下参数:

NameDisplay NameInfo
embedding_modelEmbedding Model输入参数。用于生成嵌入的嵌入模型。
messageMessage输入参数。要为其生成嵌入的消息。
embeddingsEmbedding Data输出参数。一个包含原始文本及其嵌入向量的数据对象。
Search