本文介绍如何使用提示流 VS Code 扩展将 RAG 创建的流从 Azure 机器学习工作区中的云转换为本地。
重要
检索增强生成 (RAG) 目前为公共预览版。 此预览版没有附带服务级别协议,建议不要用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅适用于 Azure 预览版的补充使用条款。
先决条件
安装提示流 SDK:
pip install promptflow promptflow-tool
若要了解详细信息,请参阅提示流本地快速入门
安装 promptflow-vectordb SDK:
pip install promptflow-vectordb
在 VS Code 中安装提示流扩展
将流文件下载到本地
例如,工作区中已有一个名为“Bring Your Own Data QnA”的流,该流使用矢量索引查找工具从索引文档中搜索问题。
索引文档存储在工作区绑定存储博客中。
转到流创作,在文件资源管理器中选择“下载”图标。 随即将流 zip 压缩包下载到本地,例如包含流文件的“Bring Your Own Data Qna.zip”文件。
在 VS Code 中打开流文件夹
将“Bring Your Own Data Qna.zip”解压缩到本地,然后在 VS Code 桌面中打开“Bring Your Own Data QnA”文件夹。
提示
如果不依靠 VS Code 中的提示流扩展,可以在所需的任何 IDE 中打开该文件夹。
创建本地连接
若要在本地使用矢量索引查找工具,需要像在云中一样,与矢量索引服务建立相同的连接。
打开“flow.dag.yaml”文件,搜索“连接”部分,可以找到在 Azure 机器学习工作区中使用的连接配置。
创建与云连接相同的本地连接。
如果在 VS Code 桌面中安装了提示流扩展,则可以在扩展 UI 中创建连接。
选择“提示流扩展”图标以转到提示流管理中心位置。 选择连接资源管理器中的 + 图标,然后选择连接类型“AzureOpenAI”。
使用 Azure CLI 创建连接
如果首选使用 Azure CLI 而不是 VS Code 扩展,可以创建连接 yaml 文件“AzureOpenAIConnection.yaml”,然后在终端中运行 connection create CLI 命令:
$schema: https://azuremlschemas.azureedge.net/promptflow/latest/AzureOpenAIConnection.schema.json
name: azure_open_ai_connection
type: azure_open_ai
api_key: "<aoai-api-key>" #your key
api_base: "aoai-api-endpoint"
api_type: "azure"
api_version: "2023-03-15-preview"
pf connection create -f AzureOpenAIConnection.yaml
注意
本文的余下部分详细介绍了如何使用 VS code 扩展来编辑文件,可以按照此介绍如何使用 CLI 说明编辑文件的快速入门进行操作。
检查和修改流文件
打开“flow.dag.yaml”,然后选择“视觉对象编辑器”
注意
当旧工具切换到代码优先模式时,可能会出现“找不到”错误,请参阅向量 DB/Faiss 索引/向量索引查找工具重命名提醒
跳转到“embed_the_question”节点,确保连接是已创建的本地连接,并反复检查 deployment_name,这是在此处用于嵌入的模型。
跳转到“search_question_from_indexed_docs”节点,该节点在此流中使用矢量索引查找工具。 检查指定的索引文档的路径。 支持所有可公开访问路径,例如:
https://github.com/Azure/azureml-assets/tree/main/assets/promptflow/data/faiss-index-lookup/faiss_index_sample
。注意
如果索引文档是工作区中的数据资产,则本地使用它需要 Azure 身份验证。
在运行流之前,请确保已具有
az login
并且连接到 Azure 机器学习工作区。若要了解详细信息,请参阅连接到 Azure 机器学习工作区
然后选择位于“查询”输入框中的“编辑”按钮。 这会将你带到原始 flow.dag.yaml 文件并找到此节点的定义。
检查此节点中的“工具”部分。 确保“工具”部分的值设置为
promptflow_vectordb.tool.vector_index_lookup.VectorIndexLookup.search
。 VectorIndexLookup 本地版本的此工具包名称。跳转到“generate_prompt_context”节点,检查此 python 节点中矢量工具的包名称是否为
promptflow_vectordb
。跳转到“answer_the_question_with_context”节点,检查连接和 deployment_name。
测试和运行流
向上滚动到流的顶部,填写此单次运行的“输入”值(例如“如何使用 SDK V2?”)进行测试,然后运行流。 然后选择右上角的“运行”按钮。 这将触发流的单次运行。
有关批量运行和评估,请参阅将流运行提交到 Azure 机器学习工作区