Blaflow 中的向量存储组件
向量数据库存储向量数据,支持聊天机器人和检索增强生成(RAG)等 AI 工作负载。
向量数据库组件用于建立与现有向量数据库的连接,或创建内存向量存储,以存储和检索向量数据。
向量数据库组件与记忆组件不同,后者专门用于从外部数据库存储和检索聊天消息。
在流程中使用向量存储组件
本示例使用 Astra DB 向量存储 组件。您的向量存储组件的参数和身份验证可能不同,但文档摄取工作流是相同的。文档从本地机器加载并分块。Astra DB 向量存储使用连接的模型组件生成嵌入,并将其存储在连接的 Astra DB 数据库中。
这些向量数据随后可用于检索增强生成等工作负载。

用户的聊天输入被嵌入,并与文档摄取期间嵌入的向量进行相似性搜索比较。
结果从向量数据库组件输出为数据对象,并解析为文本。
此文本填充提示词组件中的 {context} 变量,从而指导 Open AI 模型 组件的响应。
或者,将向量数据库组件的 Retriever 端口连接到检索工具,然后连接到智能体组件。这使智能体能够将 您的向量数据库作为工具使用,并根据可用数据做出决策。

Astra DB 向量存储
此组件使用 Astra DB 实现具有搜索功能的向量存储。
更多信息,请参阅 DataStax 文档。
输入
| 名称 | 显示名称 | 信息 |
|---|---|---|
| token | Astra DB 应用令牌 | 用于访问 Astra DB 的身份验证令牌。 |
| environment | 环境 | Astra DB API 端点的环境。例如,dev 或 prod。 |
| database_name | 数据库 | Astra DB 实例的数据库名称。 |
| api_endpoint | Astra DB API 端点 | Astra DB 实例的 API 端点。此选项会覆盖数据库选择。 |
| collection_name | 集合 | Astra DB 中存储向量的集合名称。 |
| keyspace | 键空间 | Astra DB 中用于集合的可选键空间。 |
| embedding_choice | 嵌入模型或 Astra Vectorize | 选择嵌入模型或使用 Astra vectorize。 |
| embedding_model | 嵌入模型 | 指定嵌入模型。Astra vectorize 集合不需要。 |
| number_of_results | 搜索结果数量 | 返回的 搜索结果数量(默认:4)。 |
| search_type | 搜索类型 | 使用的搜索类型。选项包括 Similarity、Similarity with score threshold 和 MMR (Max Marginal Relevance)。 |
| search_score_threshold | 搜索分数阈值 | 使用 Similarity with score threshold 选项时,搜索结果的最小相似度分数阈值。 |
| advanced_search_filter | 搜索元数据过滤器 | 应用于搜索查询的可选过滤器字典。 |
| autodetect_collection | 自动检测集合 | 确定是否自动检测集合的布尔标志。 |
| content_field | 内容字段 | 用作向量存储文本内容字段的字段。 |
| deletion_field | 基于字段删除 | 提供时,在加载新数据之前,将删除目标集合中元数据字段值与输入元数据字段值匹配的文档。 |
| ignore_invalid_documents | 忽略无效文档 | 确定是否在运行时忽略无效文档的布尔标志。 |
| astradb_vectorstore_kwargs | AstraDBVectorStore 参数 | AstraDBVectorStore 的附加参数的可选字典。 |
输出
| 名称 | 显示名称 | 信息 |
|---|---|---|
| vector_store | 向量存储 | 使用指定参数配置的 Astra DB 向量存储实例。 |
| search_results | 搜索结果 | 相似性搜索结果,作为数据对象列表。 |
生成嵌入
Astra DB 向量存储 组件提供两种生成嵌入的方法。
-
嵌入模型:通过连接 Blaflow 中的嵌入组件使用您自己的嵌入模型。
-
Astra Vectorize:使用 Astra DB 的内置嵌入生成服务。创建新集合时,选择嵌入提供程序和模型,包括 Datastax 托管的 NVIDIA
NV-Embed-QA模型。
嵌入模型选择在创建新集合时进行,之后无法更改。
有关使用 Astra DB 向量存储 组件与嵌入模型的示例,请参阅向量存储 RAG 入门项目。
更多信息,请参阅 Astra DB Serverless 文档。
混合搜索
Astra DB 组件包含默认启用的混合搜索。
与混合搜索相关的组件字段包括 Search Query、Lexical Terms 和 Reranker。
- Search Query 通过向量相似性查找结果。
- Lexical Terms 是逗号分隔 的关键词字符串,如
features, data, attributes, characteristics。 - Reranker 是混合搜索中使用的重排序模型。
重排序模型为
nvidia/llama-3.2-nv.reranker。
混合搜索执行向量相似性搜索和词汇搜索,比较两种搜索结果,然后返回整体最相关的结果。
要在 Astra DB 组件中使用混合搜索,请按以下步骤操作:
- 点击 New Flow > RAG > Hybrid Search RAG。
- 在 OpenAI 模型组件中,添加您的 OpenAI API 密钥。
- 在 Astra DB 向量存储组件中,添加您的 Astra DB 应用令牌。
- 在 Database 字段中,选择您的数据库。
- 在 Collection 字段中,选择要搜索的集合。 创建集合时必须启用混合搜索支持。
- 在试运行中,输入关于数据的问题,例如
What are the features of my data?您的查询将发送到两个组件:OpenAI 模型组件和 Astra DB 向量数据库组件。 OpenAI 组件包含一个提示,用于从您的输入创建词汇查询:
_10You are a database query planner that takes a user's requests, and then converts to a search against the subject matter in question._10You should convert the query into:_101. A list of keywords to use against a Lucene text analyzer index, no more than 4. Strictly unigrams._102. A question to use as the basis for a QA embedding engine._10Avoid common keywords associated with the user's subject matter.
- 要查看 OpenAI 组件从您的集合生成的关键词和问题,请在 OpenAI 组件中点击 。
_101. Keywords: features, data, attributes, characteristics_102. Question: What characteristics can be identified in my data?
-
要查看从 OpenAI 组件响应生成的DataFrame,请在结构化输 出组件中点击 。 DataFrame 传递给解析器组件,该组件将 Keywords 列的内容解析为字符串。
此逗号分隔的单词字符串传递给 Astra DB 组件的 Lexical Terms 端口。 注意,Astra DB 端口的 Search Query 端口连接到步骤 6 中的 聊天输入 组件。 此 Search Query 被向量化,Search Query 和 Lexical Terms 内容都发送到
find_and_rerank端点的重排序器。重排序器将向量搜索结果与词汇搜索的术语字符串进行比较。 混合搜索的最高排名结果将返回给 试运行。
更多信息,请参阅 DataStax 文档。
AstraDB 图向量存储
此组件使用 AstraDB 实现具有图功能的向量存储。 更多信息,请参阅 Astra DB Serverless 文档。
输入
| 名称 | 显示名称 | 信息 |
|---|---|---|
| collection_name | 集合名称 | AstraDB 中存储向量的集合名称(必需) |
| token | Astra DB 应用令牌 | 用于访问 AstraDB 的身份验证令牌(必需) |
| api_endpoint | API 端点 | AstraDB 服务的 API 端点 URL(必需) |
| search_input | 搜索输入 | 相似性搜索的查询字符串 |
| ingest_data | 摄取数据 | 要摄取到向量存储的数据 |
| namespace | 命名空间 | AstraDB 中用于集合的可选命名空间 |
| embedding | 嵌入模型 | 使用的嵌入模型 |
| metric | 度量 | 向量比较的距离度量(选项:"cosine"、"euclidean"、"dot_product") |
| setup_mode | 设置模式 | 向量存储的配置模式(选项:"Sync"、"Async"、"Off") |
| pre_delete_collection | 预删除集合 | 确定是否在创建新集合前删除集合的布尔标志 |
| number_of_results | 结果数量 | 相似性搜索返回的结果数量(默认:4) |
| search_type | 搜索类型 | 使用的搜索类型(选项:"Similarity"、"Graph Traversal"、"Hybrid") |
| traversal_depth | 遍历深度 | 图遍历搜索的最大深度(默认:1) |
| search_score_threshold | 搜索分数阈值 | 搜索结果的最小相似度分数阈值 |
| search_filter | 搜索元数据过滤器 | 应用于搜索查询的可选过滤器字典 |