# 创建基于文件的知识集市

基于文件的知识集市可让许您将非结构化数据嵌入并存储在矢量数据库中。这样就可以利用语义搜索特性检索增强的上下文，将其作为检索增强生成 (RAG) 应用程序的上下文。

支持的输入格式有：`PDF`、`TXT` 和 Word `DOCX`。

## 要求

* 你需要 Qlik Talend Cloud Enterprise 订阅。

* 在 Snowflake 和 Databricks 平台上受支持。Snowflake Iceberg 不受支持。

* 需要客户管理的数据网关。

  Databricks 需要 Qlik 数据网关 - 数据移动 版本 2024.11.95 或更高版本。

## 安装 Qlik 数据网关 - 数据移动

在创建基于文件的知识集市之前，您必须安装一个特定的 Qlik 数据网关 - 数据移动。有关更多信息，请参阅[设置知识集市的 Qlik 数据网关 - 数据移动](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/gateways-for-knowledge-mart.htm)。

## 支持的连接

有关支持方面的信息：

* 矢量数据库，请参阅[连接至矢量数据库](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-vector-databases.htm)。
* LLM 连接，请参阅[连接至 LLM](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-llm-connections.htm)。
* 文件存储，请参阅[连接至文件存储](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-file-storage.htm)。
* 云存储（Amazon S3、Google Cloud Storage、Azure Data Lake Storage），请参阅[连接至云存储](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/cloud-storage-connections.htm)。

## 创建文件

1. 单击左侧菜单里的Pipeline projects，打开一个项目。

2. 在Pipeline project页面，您可以创建一个基于文件的知识集市。或者：

   * 单击新建 &gt; 基于文件的知识集市。
   * 单击数据任务的 the 操作图标 icon &gt; 基于文件的知识集市。

   配置窗口打开。

3. 输入名称。

4. 输入描述。这是可选的。

5. 创建或选择源连接。

6. 从下拉列表存储矢量中选择文件的存储位置。要将文件同项目一起存储，请选择数据项目平台。

7. 如果已选择外部矢量数据库，请创建或选择矢量数据库连接。文件和矢量都将存储在这个矢量数据库中。

8. 创建或选择 LLM 连接。使用语义搜索需要此连接。

9. 单击创建。

10. 在创建知识集市后，添加文件。

## 添加文件

信息注释仅文本会写入文档。不提取图表或图像中的文本。

1. 在数据任务页面的文件夹选项卡中，选择文件夹或单击选择文件夹来选择新文件夹。

2. 浏览文件夹，选择文件夹的复选框。

   如果文件夹中的所有文件都是受支持的格式之一，那么无论这些文件是何时添加到文件夹中的，都会被读取。

   从文件夹中删除索引中已存在的文件时，数据仍在索引之中。要从索引中删除数据，请使用相同文件，但文件为空。

   要显示文件夹中的文件列表，请右键单击相应文件夹。

3. 单击保存关闭选择文件夹窗口。

4. 要编辑块大小和块重叠，请单击设置 &gt; 运行时。

5. 要编辑索引名称，请单击设置 &gt; 矢量数据库设置。

   有关更多信息，请参阅[索引名称](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/KnowledgeMart/Creating-file-based-knowledge-mart.htm#Index)。

6. 单击右侧的 the 操作图标 icon &gt; 准备。

7. 准备工作完成之后，单击运行。文档正在嵌入和传输。

   运行按钮激活后，传输即告完成。

8. 在第一次满负载时，验证每个文件的状态：

   1. 选择菜单中的监视器。

   2. 选择页面底部的满负载状态。

      ![监视器中的满负载状态](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/knowledgemart-full-load-status.png)

   3. 当某些文件失败时，在重新运行任何内容之前，请修复错误或删除文件。如果不当地保留文件，下次运行将失败。

   信息注释重新加载所有文件有可能会导致额外成本。

当确认文件正确无误后，您就可以就数据提出问题。有关更多信息，请参阅[使用测试助手](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/KnowledgeMart/Test-Assistant.htm)。

## 满负载和更改数据捕获 (CDC)

支持满负载和 CDC。

满负载：为每个文档实例生成一个文档，并将其发送到目标。

CDC：发生任何变化后，文件都会重新生成。

更改或添加文件时，将从该文件读取文档。文件将根据区块的大小和重叠程度被分割成多个文档区块。

在第一次满负载时，验证每个文件的状态：

1. 选择菜单中的监视器。

2. 选择页面底部的满负载状态。

   ![监视器中的满负载状态](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/knowledgemart-full-load-status.png)

3. 当某些文件失败时，在重新运行任何内容之前，请修复错误或删除文件。如果不当地保留文件，下次运行将失败。

信息注释重新加载所有文件有可能会导致额外成本。

## 更新输入数据

在更新输入数据时，必须运行数据任务将更改传输到矢量数据库或数据平台。

由于删除的是旧区块，插入的是新区块，因此字段 `hdr__operation` 对应的是插入操作，而不是更新操作。有关更多信息，请参阅[云数据仓库中的数据集架构](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Storage/dataset-tables.htm)。

## 索引名称

每个知识集市都有一个索引名称，用于语义搜索。

配置任务写入同一个索引时，必须为任务配置相同的 LLM 参数。

如果您希望自己的文件在同一个索引中，它们必须有相同的索引名称。

要编辑索引名称：

1. 在数据任务页面，单击设置。
2. 选择矢量数据库设置选项卡。
3. 编辑索引名称。
4. 单击确定。

编辑索引名称之后，必须准备任务。否则，您所做的更改将不适用于下次运行。

## 查看任务信息

点击菜单栏上的 the 信息 icon 以查看任务信息，例如：

* 所有者

* 空间

* 数据平台

* 项目 ID

* 数据任务运行时 ID

## 设置

您可以查看和编辑知识集市设置。

在数据任务页面中，单击 the More Horizontal icon &gt; 设置。

信息注释由于设置取决于存储（Databricks、Snowflake 等），下表描述了始终可用的设置。可使用更多设置。

本表说明连接连接选项卡的设置。

| 设置 | 描述 |
| --- | --- |
| 源连接 | 源连接。 |
| 将矢量存储在 | 从下拉列表中选择：<br><br><ul><li><span>外部矢量数据库</span></li><li><span>数据项目平台</span></li></ul> |
| 矢量数据库连接<br><br>对存储矢量选择了外部矢量数据库时，可以使用此设置。 | 矢量数据库连接。<br><br>有关更多信息，请参阅[连接至矢量数据库](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-vector-databases.htm)。 |
| LLM 连接 | LLM 连接。<br><br>有关更多信息，请参阅[连接至 LLM](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-llm-connections.htm)。<br><br>要将 Databricks 用作 LLM 连接，请在创建知识集市时配置嵌入模型服务端点和完成模型服务端点。有关更多信息，请参阅 [Databricks 文档](https://docs.databricks.com/aws/en/machine-learning/model-serving/create-foundation-model-endpoints#create-an-external-model-serving-endpoint)。 |

此表描述了平台设置平台设置选项卡的设置。

| 设置 | 描述 |
| --- | --- |
| 数据任务模式 | 数据任务架构的名称。 |
| 内部架构 | 内部模式的名称。 |
| 所有表格和视图的前缀 | 用于解决多个数据任务之间冲突的前缀。 |

此表描述了矢量数据库设置矢量数据库设置选项卡的设置。

| 设置 | 描述 |
| --- | --- |
| 索引架构<br><br>如果对存储矢量选择了外部矢量数据库，可以使用此设置。 | 索引模式的名称。 |
| 索引名称 | 索引的名称。 |
| 如果索引已存在 | 如果多个任务写入同一索引，选择是否必须删除该索引：<br><br><ul><li><span>使用现有索引</span>：不删除索引。</li><li><span>删除并创建索引</span>：将索引删除。</li></ul> |
| Databricks 向量搜索端点 | 在 Databricks 中创建的向量搜索端点的名称。有关更多信息，请参阅[配置 Databricks 用于知识集市](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/KnowledgeMart/Creating-knowledge-marts.htm#Configur)。<br><br>信息注释仅适用于使用 Databricks 作为数据平台的项目。 |

此表描述了运行时运行时选项卡的设置。

| 设置 | 描述 |
| --- | --- |
| 平行执行 | 数据库连接的最大数量。<br><br>输入 1 到 50 之间的值。 |
| 批次大小 | 对于知识集市，批次大小是指每次批量请求中加载的文档数量。<br><br>对于基于文件的知识集市，批次大小是指每个批量请求中加载的文件数量。<br><br>在 Snowflake 和 Databricks 上，不需要批次大小，因为所有内容都在一次查询中加载。 |
| 要加载的最大记录数 | 0 表示将所有记录加载。 |

此表描述了 Snowflake 的视图视图选项卡的设置

| 设置 | 描述 |
| --- | --- |
| 标准视图 | 使用标准视图显示查询结果，其形式类似表。 |
| Snowflake 安全视图 | 将 Snowflake 安全视图用于为数据隐私或敏感信息保护指定的视图，例如为限制对不应向基础表的所有用户公开的敏感数据的访问而创建的视图。<br><br>Snowflake 安全视图的执行速度可能比标准视图慢。 |

此表描述了测试助手测试助手选项卡的设置。

| 设置 | 描述 |
| --- | --- |
| 上下文中的文档数 | 将作为上下文传递给模型的相关文档的数量。 |
| 提示模板 | 输入 AI 筛选要包含的文件时必须遵循的模板。 |
| 筛选器 | 输入表达式以筛选要纳入的文件。<br><br>由于筛选器基于元数据，而基于文件的知识集市没有元数据，因此要仔细考虑配置的筛选器。排除数据而不是纳入数据可能更有意义。<br><br>有关更多信息，请参阅[使用测试助手](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/KnowledgeMart/Test-Assistant.htm)。 |
| 文档检索 | 从下拉列表中选择选项：<br><br><ul><li><span>显示检索到的上下文</span>：测试助手提供用来生成答案的文档。</li><li><span>不显示检索到的上下文</span>：测试助手生成答案，但是不提供文档。</li></ul> |
| 回答生成 | 从下拉列表中选择选项：<br><br><ul><li><span>生成答案</span>：测试助手根据文档来生成答案。</li><li><span>不生成答案</span>：测试助手只用文档作答。</li></ul> |

## 更改连接或数据网关

如果您更改源连接、向量连接或向量数据网关，则必须再次准备任务。