跳到主要内容

向量存储

Langflow 的向量存储组件连接到您的向量数据库或创建内存向量存储,用于在流程中存储和检索向量数据。

向量数据库和向量存储组件专门设计用于存储和检索向量数据,例如语言模型生成的嵌入。它们用于执行相似性搜索,使聊天机器人等应用程序能够从大型数据集中检索相关上下文。

其他类型的存储,如传统的结构化数据库和聊天记忆,通过其他组件处理,如 SQL Database 组件或 Message History 组件。

在流程中使用向量存储组件​

提示

有关流程中向量存储组件的示例,请参阅创建向量 RAG 聊天机器人和嵌入模型组件。

此示例使用 Chroma DB 向量存储组件。您的向量存储组件的参数和身份验证可能不同,但文档摄取工作流程是相同的。从本地机器加载文档并分块。向量存储组件使用连接的模型组件生成嵌入,并将它们存储在连接的向量数据库中。

然后可以检索此向量数据用于检索增强生成等工作负载。

将数据嵌入到向量存储中

用户的聊天输入被嵌入并与在文档摄取期间嵌入的向量进行比较以进行相似性搜索。 结果从向量数据库组件作为 Data 对象输出并解析为文本。 此文本填充 Prompt Template 组件中的 {context} 变量,为 OpenAI model 组件的响应提供信息。

从向量存储检索

配置向量存储参数​

大多数向量存储组件在流程中具有相同的实用性,但每个提供商可以提供不同的参数和功能。 检查组件的参数以了解更多关于它接受的输入以及如何配置它。

向量存储组件的许多输入参数在可视化编辑器中默认隐藏。 您可以通过每个组件标题菜单中的 Controls 切换参数。

有关特定提供商参数的详细信息,请参阅提供商的文档。

Astra DB​

此组件实现了具有搜索功能的 Astra DB Serverless 向量存储。

参数

输入

名称显示名称信息
tokenAstra DB Application Token访问 Astra DB 的身份验证令牌。
environmentEnvironmentAstra DB API 端点的环境。例如,dev 或 prod。
database_nameDatabaseAstra DB 实例的数据库名称。
api_endpointAstra DB API EndpointAstra DB 实例的 API 端点。这取代数据库选择。
collection_nameCollectionAstra DB 中存储向量的集合名称。
keyspaceKeyspaceAstra DB 中用于集合的可选键空间。
embedding_choiceEmbedding Model or Astra Vectorize选择嵌入模型或使用 Astra vectorize。
embedding_modelEmbedding Model指定嵌入模型。Astra vectorize 集合不需要。
number_of_resultsNumber of Search Results要返回的搜索结果数量。默认:4。
search_typeSearch Type要使用的搜索类型。选项包括 Similarity、Similarity with score threshold 和 MMR (Max Marginal Relevance)。
search_score_thresholdSearch Score Threshold使用 Similarity with score threshold 选项时搜索结果的最小相似性分数阈值。
advanced_search_filterSearch Metadata Filter应用于搜索查询的可选过滤器字典。
autodetect_collectionAutodetect Collection确定是否自动检测集合的布尔标志。
content_fieldContent Field用作向量存储文本内容字段的字段。
deletion_fieldDeletion Based On Field提供时,在加载新数据之前会删除目标集合中元数据字段值与输入元数据字段值匹配的文档。
ignore_invalid_documentsIgnore Invalid Documents确定是否在运行时忽略无效文档的布尔标志。
astradb_vectorstore_kwargsAstraDBVectorStore ParametersAstraDBVectorStore 的可选附加参数字典。

输出

名称显示名称信息
vector_storeVector Store使用指定参数配置的 Astra DB 向量存储实例。
search_resultsSearch Results相似性搜索的结果,作为 Data 对象列表。

生成嵌入​

Astra DB 组件提供两种生成嵌入的方法。

  • 嵌入模型:通过在 Langflow 中连接嵌入模型组件来使用您自己的嵌入模型。

  • Astra Vectorize:使用 Astra DB 的内置嵌入生成服务。创建新集合时,选择嵌入提供商和模型,包括 DataStax 托管的 NVIDIA 的 NV-Embed-QA 模型。 有关更多信息,请参阅 Astra DB Serverless 文档。

    important

    使用 vectorize 时,创建集合时选择的嵌入模型以后无法更改。

有关使用带有嵌入模型的 Astra DB 组件的示例,请参阅 Vector Store RAG 模板。

混合搜索​

Astra DB 组件通过 Astra DB Data API 包含 Astra DB 的混合搜索功能。

混合搜索执行向量相似性搜索和词汇搜索,比较两个搜索的结果,然后返回总体最相关的结果。

Chroma DB​

此组件实现了具有搜索功能的 Chroma 向量存储。

Local DB​

此组件实现了一个内存向量存储,用于存储和检索嵌入,无需外部数据库。适用于测试和原型制作。

Memory​

此组件提供内存向量存储功能,用于临时存储和检索向量数据。

See also​

Search