你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

用于 Azure 机器学习的索引查找工具(预览版)

提示流索引查找工具允许在提示流中使用通用矢量索引(例如 Azure AI 搜索、FAISS 和 Pinecone)进行检索增强生成 (RAG)。 该工具会自动检测工作区中的索引,并允许在流中使用选择的索引。

重要

索引查找工具目前以公共预览版提供。 此预览版没有附带服务级别协议,建议不要用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

使用索引查找工具进行生成

  1. 在 Azure 机器学习工作室中创建或打开流。 有关详细信息,请参阅创建流

  2. 选择“+ 更多工具”>“索引查找”,将索引查找工具添加到你的流。

    “更多工具”按钮和下拉列表的屏幕截图,显示了 Azure 机器学习工作室中的索引查找工具。

    屏幕截图显示了添加到 Azure 机器学习工作室的流中的索引查找工具。

  3. 为索引查找工具输入参数输入值。 LLM 工具可以生成矢量输入。

  4. 根据需要向流添加更多工具,或选择“运行”来运行流。

  5. 若要详细了解返回的输出,请参阅输出

输入

下面是可用的输入参数:

名称 Type 描述 必须
mlindex_content string 要使用的索引类型。 输入取决于索引类型。 表下方显示了 Azure Cog 搜索索引 JSON 的示例*
查询 string, Union[string, List[String]] 要查询的文本。
query_type string 要执行的查询的类型。 选项包括关键字、语义、混合等。
top_k 整型 要返回的得分最高的实体的计数。 默认值为 3。

*ACS JSON 示例:

embeddings:
  api_base: <api_base>
  api_type: azure
  api_version: 2023-07-01-preview
  batch_size: '1'
  connection:
    id: /subscriptions/<subscription>/resourceGroups/<resource_group>/providers/Microsoft.MachineLearningServices/workspaces/<workspace> /connections/<AOAI_connection>
  connection_type: workspace_connection
  deployment: <embedding_deployment>
  dimension: <embedding_model_dimension>
  kind: open_ai
  model: <embedding_model>
  schema_version: <version>
index:
  api_version: 2023-07-01-Preview
  connection:
    id: /subscriptions/<subscription>/resourceGroups/<resource_group>/providers/Microsoft.MachineLearningServices/workspaces/<workspace> /connections/<cogsearch_connection>
  connection_type: workspace_connection
  endpoint: <cogsearch_endpoint>
  engine: azure-sdk
  field_mapping:
    content: id
    embedding: content_vector_open_ai
    metadata: id
  index: <index_name>
  kind: acs
  semantic_configuration_name: azureml-default



Outputs

以下 JSON 格式响应是该工具返回的示例,其中包含得分最高的 k 个实体。 实体遵循 promptflow-vectordb SDK 提供的向量搜索结果的通用架构。 对于向量索引搜索,将填充以下字段:

字段名称 类型 说明
metadata dict 创建索引时用户提供的自定义键值对
page_content string 查找中使用的矢量区块的内容
score FLOAT 取决于在向量索引中定义的索引类型。 如果索引类型为 Faiss,则分数为 L2 距离。 如果索引类型为 Azure AI 搜索,则分数为余弦相似性。
[
  {
    "metadata":{
      "answers":{},
      "captions":{
        "highlights":"sample_highlight1",
        "text":"sample_text1"
      },
      "page_number":44,
      "source":{
        "filename":"sample_file1.pdf",
        "mtime":1686329994,
        "stats":{
          "chars":4385,
          "lines":41,
          "tiktokens":891
        },
        "url":"sample_url1.pdf"
      },
      "stats":{
        "chars":4385,"lines":41,"tiktokens":891
      }
    },
    "page_content":"vector chunk",
    "score":0.021349556744098663
  },

  {
    "metadata":{
      "answers":{},
      "captions":{
        "highlights":"sample_highlight2",
        "text":"sample_text2"
      },
      "page_number":44,
      "source":{
        "filename":"sample_file2.pdf",
        "mtime":1686329994,
        "stats":{
          "chars":4385,
          "lines":41,
          "tiktokens":891
        },
        "url":"sample_url2.pdf"
      },
      "stats":{
        "chars":4385,"lines":41,"tiktokens":891
      }
    },
    "page_content":"vector chunk",
    "score":0.021349556744098663
  },
    
]

如何从旧工具迁移到索引查找工具

索引查找工具旨在替换 3 个已弃用的旧索引工具:矢量索引查找工具、矢量数据库查找工具和Faiss 索引查找工具。 如果你有流包含上述工具之一,请按照以下步骤来升级你的流。

升级工具

  1. 更新运行时

  2. 导航到你的流。 您可以通过选择“创作”下的“提示流”选项卡,再选择“流”数据透视表选项卡,然后选择流的名称来执行此操作。

  3. 进入流后,选择窗格顶部附近的“+ 更多工具”按钮。 此时会打开一个下拉列表,请选择“索引查找[预览]”,以添加索引查找工具的实例。

    提示流中“更多工具”下拉列表的屏幕截图。

  4. 为新节点命名,然后选择“添加”。

    具有名称的索引查找节点的屏幕截图。

  5. 在新节点中,选择“mlindex_content”文本框。 这应该是列表中的第一个文本框。

    展开的索引查找节点的屏幕截图,其中 mlindex_content 框的边框为红色。

  6. 在显示的“生成抽屉”中,按照以下说明从三个旧工具进行升级:

    • 如果使用旧版矢量索引查找工具,请在“index_type”下拉列表中选择“已注册索引”。 从“mlindex_asset_id”下拉列表中选择矢量索引资产。
    • 如果使用旧版 Faiss 索引查找工具,请在“index_type”下拉列表中选择“Faiss”,并指定与旧工具中相同的路径。
    • 如果使用旧版矢量数据库查找工具,请选择 AI 搜索或 Pinecone,具体取决于“index_type”下拉列表中的数据库类型,并根据需要填写信息。
  7. 填写必要的信息后,选择“保存”。

  8. 返回到节点后,“mlindex_content”文本框中应该已经填充了信息。 选择“查询”文本框,然后选择要查询的搜索词。 需要选择与“embed_the_question”节点的输入相同的值,通常为“${inputs.question}”或“${modify_query_with_history.output}”(如果在标准流中,则为前者;如果在聊天流中,则为后者)。

    展开的索引查找节点的屏幕截图,其中单元格中带有索引信息。

  9. 单击“query_type”旁边的下拉列表,选择一种查询类型。 “矢量”将生成与旧流相同的结果,但根据索引配置,其他选项(包括“混合”和“语义”)可能可用。

    展开的索引查找节点的屏幕截图,其中矢量搜索的边框为红色。

  10. 编辑下游组件以使用新添加的节点的输出,而不是旧版矢量索引查找节点的输出。

  11. 删除矢量索引查找节点及其父嵌入节点。

后续步骤