你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
用于 Azure 机器学习的索引查找工具(预览版)
提示流索引查找工具允许在提示流中使用通用矢量索引(例如 Azure AI 搜索、FAISS 和 Pinecone)进行检索增强生成 (RAG)。 该工具会自动检测工作区中的索引,并允许在流中使用选择的索引。
重要
索引查找工具目前以公共预览版提供。 此预览版没有附带服务级别协议,建议不要用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
使用索引查找工具进行生成
在 Azure 机器学习工作室中创建或打开流。 有关详细信息,请参阅创建流。
选择“+ 更多工具”>“索引查找”,将索引查找工具添加到你的流。
根据需要向流添加更多工具,或选择“运行”来运行流。
若要详细了解返回的输出,请参阅输出。
输入
下面是可用的输入参数:
名称 | 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 索引查找工具。 如果你有流包含上述工具之一,请按照以下步骤来升级你的流。
升级工具
导航到你的流。 您可以通过选择“创作”下的“提示流”选项卡,再选择“流”数据透视表选项卡,然后选择流的名称来执行此操作。
进入流后,选择窗格顶部附近的“+ 更多工具”按钮。 此时会打开一个下拉列表,请选择“索引查找[预览]”,以添加索引查找工具的实例。
为新节点命名,然后选择“添加”。
在新节点中,选择“mlindex_content”文本框。 这应该是列表中的第一个文本框。
在显示的“生成抽屉”中,按照以下说明从三个旧工具进行升级:
- 如果使用旧版矢量索引查找工具,请在“index_type”下拉列表中选择“已注册索引”。 从“mlindex_asset_id”下拉列表中选择矢量索引资产。
- 如果使用旧版 Faiss 索引查找工具,请在“index_type”下拉列表中选择“Faiss”,并指定与旧工具中相同的路径。
- 如果使用旧版矢量数据库查找工具,请选择 AI 搜索或 Pinecone,具体取决于“index_type”下拉列表中的数据库类型,并根据需要填写信息。
填写必要的信息后,选择“保存”。
返回到节点后,“mlindex_content”文本框中应该已经填充了信息。 选择“查询”文本框,然后选择要查询的搜索词。 需要选择与“embed_the_question”节点的输入相同的值,通常为“${inputs.question}”或“${modify_query_with_history.output}”(如果在标准流中,则为前者;如果在聊天流中,则为后者)。
单击“query_type”旁边的下拉列表,选择一种查询类型。 “矢量”将生成与旧流相同的结果,但根据索引配置,其他选项(包括“混合”和“语义”)可能可用。
编辑下游组件以使用新添加的节点的输出,而不是旧版矢量索引查找节点的输出。
删除矢量索引查找节点及其父嵌入节点。