从 Azure Blob 存储获取数据到 Azure AI 搜索 - RAG

问题描述 投票:0回答:1

我正在开发一个基于 RAG 的聊天机器人来搜索我的内容。我已将所有内容上传到 Blob 存储,并将 Blob 存储导入到 Azure AI 搜索服务中。我尝试使用索引/索引器,但索引仅基于字段进行操作,而我想搜索所有内容。有没有其他方法可以实现这一目标?

我还希望添加到我的 blob 容器中的任何新数据都自动包含在 Azure AI 搜索中。

azure azure-blob-storage azure-openai azure-ai-search
1个回答
0
投票

我尝试使用索引/索引器,但索引仅基于字段进行操作,而我想搜索所有内容。有没有其他方法可以实现这一目标?

根据您的捕获,您只有 1 个名为“id”的索引字段,我猜您错误地理解了索引的使用方式。考虑到您想要实现的目标,您需要首先使用适当的字段定义索引结构:

  • 如果您想对文档建立索引以便稍后搜索,您需要将文档内容放入索引字段之一(可能使用字符串类型),并将该字段设置为“可搜索”
  • 如果您还希望能够使用向量(或混合模式,组合关键字+向量)进行搜索,您还需要一个包含这些向量的不同列
  • 如果您想轻松获取文档标题,请添加另一个字段
  • 如果您想轻松获取文档名称/文件名,请添加另一个字段
  • 等等等等

一旦您从文件中列出了所需的内容,并定义和创建了索引结构,那么您将使用“索引器”用数据填充索引。

例如,当您使用 Azure OpenAI Studio 中的“添加数据”选项卡时,它会自动为您创建所有内容。你最终会得到这样的索引结构:

这里:

  • “内容”字段包含已处理文档的主要内容
  • “contentVector”字段存储此主要内容的嵌入(调用“text-embedding-ada-002”模型的输出,其内容与存储在“content”字段中的内容相同)
  • “filepath”和“url”已填充我的 blob 文件详细信息
  • “标题”是使用文档块的开头创建的...有时不是真正的标题:D
  • 'id'是搜索服务中的技术标识符
  • 'chunk_id' 是一个从零开始的索引,指示它是文档的哪一部分,因为输入文档被分割成更小的块(请参阅更多详细信息此处

我还希望添加到我的 blob 容器中的任何新数据都自动包含在 Azure AI 搜索中。

您需要定义索引器的处理频率以定期运行。您可以使用一些代码,例如通过使用带有“Blob 触发器”事件的 Azure 函数,您将在函数运行时为文档建立索引,因为它是在创建/修改 Blob 时触发的。

© www.soinside.com 2019 - 2024. All rights reserved.