为了账号安全,请及时绑定邮箱和手机立即绑定

如何将多模态Azure AI(比如GPT-4或GPT-4 Mini)与Microsoft Fabric集成来处理图像数据

在这篇博客里,主要是教你如何将多模态 Azure AI(特别是 GPT-4o 或 GPT-4o Mini)与 Microsoft Fabric 集成,以便处理图像相关的数据。这种集成可以通过结合强大的语言模型和强大的数据管理工具来增强你的 AI 项目。无论你是开发者、数据科学家还是 AI 爱好者,本指南都将帮助你简化这个过程。我们将讨论以下内容:

  • 什么是多模态AI模型
  • 示例: 提示和回复
  • 示例: 回复/输出
  • 我们可以使用哪些类型的数据集配合Azure多模态AI模型使用?
  • 它可以用来做什么?
  • 示例/用法
  • 如何使用Microsoft Fabric Notebook来消费多模态Azure OpenAI?
什么是多模态AI?

一个多模态人工智能模型设计用于处理和整合不同类型的数据输入,例如图像、文本甚至音频,以生成包含文本、图像和结构化的JSON输出在内的响应。例如,模型可以分析一个带有高度和宽度测量值的图解,同时结合一段文本描述,并生成一个表示这些数据的结构化JSON输出。这种能力使得模型能够理解和处理各种数据格式,使您的应用程序能够在无需编写机器学习代码的情况下执行复杂任务。本质上,它可以处理多种类型的输入并生成多种类型的输出,这使得它成为各种基于AI的应用程序的多功能工具。

例子:提示与回应

提示/输入: 这里有一个包含物体高度和宽度测量的图表。生成一个JSON响应和图表描述。请注意,我们提供了两种输入方式:图像和文本。

图:

响应/输出:

会有两种类型的输出。

文本描述: “这是一张房屋布局图,包括一间厨房、一个浴室和一个起居室。厨房的尺寸是4个单位宽,3个单位高;浴室的尺寸是2个单位宽,3个单位高;起居室的尺寸是6个单位宽,8个单位高。”

生成的 JSON 回应:

{
  "布局": [  
    {  
      "房间": "厨房",  
      "测量": {  
        "宽度": 4,  
        "高度": 3  
      }  
    },  
    {  
      "房间": "卫生间",  
      "测量": {  
        "宽度": 2,  
        "高度": 3  
      }  
    },  
    {  
      "房间": "客厅",  
      "测量": {  
        "宽度": 6,  
        "高度": 8  
      }  
    }  
  ],  
  "描述": "这是包含厨房、卫生间和客厅的房屋平面图。"  
}
有哪一些类型的数据集可以用于Azure多模态AI模型上?
  • 如下:
  • 文本
  • 图片
  • 音频
  • 视频
你可以用它做什么呢?
  • 理解和处理各种类型的数据,包括文本、图像、音频和视频。
  • 将一种语言的音频翻译成另一种语言,例如将英语音频转换为西班牙语。
  • 总结数据,分析数据(以识别模式、趋势、相关性和见解)。
  • 创建图表。
  • 根据文本、图像、音频和视频提出最佳建议。
  • 生成代码。
  • 等等。

通过利用这些能力,AI确实可以将原始数据转化为可操作的信息,帮助做出决策,并支持各行各业的创新。

示例和用法
  • 基于问题和查询的问答: 基于知识的问答以解决故障问题,为您的文本、图像、音频和视频数据提供支持。
  • 摘要: 对大型文档、图像、音频或视频数据进行摘要。
  • 文档理解: 理解组织中的文档,如低级设计 (LLD)、高级设计 (HLD) 等,并为新项目生成新的LLD、HLD和图表。
  • 无障碍: 通过将文档转换为音频或文本格式,提高视障人士的访问性。
  • 医疗分析: 医生可以提交X光片,AI可以帮助分析并提出可能的诊断建议。
  • 教育: 教师可以创建结合文本、图像和视频的互动课程。
  • 客户支持: 通过理解屏幕截图并提供详细的说明来解决客户问题。
  • 内容创作: 写作人和营销人员可以生成图像以配合他们的文章、博客或社交媒体帖子,增强参与度。
  • 设计与艺术: 平面设计师和艺术家可以利用AI快速构思视觉想法或为新项目寻找灵感。
  • 无障碍: 视障用户现在可以访问到丰富的图像描述,通过语音命令浏览内容,并听取高质量的音频描述。
如何在微软的Fabric Notebook中运行GPT-4.0

请注意: GPT-4o Mini 的工作方式是一样的。你只需要部署 GPT-4o Mini 模型,而不是 GPT-4o 模型。

第一部分:如何设置Azure OpenAI实例

第二部分:使用Azure多模AI模型

你可以用多种方法与Azure的多模态AI模型互动,包括代码优先的、低代码或无代码方法。

在 Microsoft Fabric Notebook 中使用 GPT-4.0

要在Microsoft Fabric Notebook中与GPT-4.0交互,请按照以下步骤来做:

  1. 设置你的环境

确保你已经注册了一个 Microsoft Fabric 账户。

创建一个新的 Fabric 笔记本。

安装你项目中需要用到的库。

2. 准备你的数据

在这次演示中,你将从湖中读取一张图片。如果你是在本地运行,你可以把文件存到本地硬盘上。

虽然这个演示主要集中在图像和文本数据上,但同样的方法也可以用于音频和视频资料。

3. 保存您的图像数据:将您的图像数据上传到 Lakehouse(湖仓)。在此演示中用到的图片包含条形码信息,并包含英国驾照生成的相关规则。

GPT-4.0实时图像解码

利用GPT-4.0,您可以实时解码图像,并根据解码结果安排接下来的步骤。以下是一些实际的应用场景,涉及条形码的解码和编码,尤其是与英国驾照号码相关的应用。

应用场景1:路边检查中的查验流程

情况:警察需要在交通检查时快速确认驾照的真伪和详细信息。

场景2:租车的自动登记

场景: 租车公司想要通过快速验证驾照信息来简化租车登记流程

案例3:在线身份确认

场景: 线上服务(比如银行或保险公司)需要根据用户的驾照来核实其身份。

新建笔记本文件

要这么做,如下所示创建笔记本:

Microsoft Fabric Notebook:您可以为此目的设置并使用Fabric Notebook环境。或者,您也可以在本地使用VS Code完成相同任务。

代码: 我们一起看看如何操作,包括安装和导入库,调用 OpenAI 的 GPT-4,从湖中读取图像,并生成一个基于图像的响应内容。

    !pip install azure-identity azure-keyvault-secrets  

    # 访问Azure密钥 vault中的密钥。这里存储API密钥  
    !pip install --upgrade azure-identity azure-keyvault-secrets  

    # 安装python-dotenv以设置环境变量  
    !pip install python-dotenv
# 导入所需的库
from azure.identity import ClientSecretCredential
from azure.keyvault.secrets import SecretClient
from dotenv import load_dotenv
import os
# 加载环境
load_dotenv()  # 加载环境变量(.env文件)
    ### 如果您打算使用密钥或托管标识连接到 Azure OpenAI,请忽略整个内容   
    # 访问环境变量。   
    # 如果您只希望通过密钥连接,那么不需要执行这些步骤。   
    # 由于我们将使用服务主体来访问密钥保管库,   
    # 我们需要将客户端ID、客户端密钥和租户ID存储为环境变量。  
    # API密钥应存储在密钥保管库中。  
    # 您需要在Azure中创建一个应用程序注册来获取这三部分信息  
    # (客户端ID、客户端密钥、租户ID)以便从Fabric笔记本访问密钥保管库。  

    # 定义您的Azure凭据  
    client_id = os.getenv("AZURE_CLIENT_ID")  
    client_secret = os.getenv("AZURE_CLIENT_SECRET")  
    tenant_id = os.getenv("AZURE_TENANT_ID")  

    # 您的密钥保管库名称  
    key_vault_name = "yourkvname"  
    key_vault_uri = "https://{key_vault_name}.vault.azure.net/"  
    # 创建ClientSecret凭证  
    credential = ClientSecretCredential(tenant_id, client_id, client_secret)  

    # 使用ClientSecret凭证创建一个Secret客户端  
    client = SecretClient(vault_url=key_vault_uri, credential=credential)  

    # 指定要检索的密钥的名称  
    secret_name = "YourSecretNameHavingAPIKey"  

    try:  
        # 检索密钥  
        retrieved_secret = client.get_secret(secret_name)  
        print(f"密钥 '{secret_name}' 的值为: {retrieved_secret.value}")  
    except Exception as ex:  
        print(f"检索密钥 '{secret_name}' 失败: {ex}")

    # 从数据湖读取图像,并通过笔记本进行处理。
    # 上传一张图像(例如"Generate Driving Licence Rules.jpg")到数据湖。
    # 这张图像将用于生成条码。
    # 根据上传图像中的规则,笔记本可以生成条码或按指定方式处理数据。

    import os  
    import requests  
    import base64  
    import json  

    # 配置  
    GPT4V_KEY = retrieved_secret.value #"55457392c21046e8bf4223a6dac91316"  
    IMAGE_PATH = "/lakehouse/default/Files/Driving Licence encoding rules.png"  
    encoded_image = base64.b64encode(open(IMAGE_PATH, 'rb').read()).decode('ascii')  
    headers = {  
        "Content-Type": "application/json",  
        "api-key": GPT4V_KEY,  
    }  

    # 请求负载  
    payload = {  
      "messages": [  
        {  
          "role": "system",  
          "content": [  
            {  
              "type": "text",  
              "text": "你是一位帮助人们查找信息的AI助手。"  
            }  
          ]  
        },  
        {  
          "role": "user",  
          "content": [  
            {  
              "type": "image_url",  
              "image_url": {  
                "url": f"data:image/jpeg;base64,{encoded_image}"  
              }  
            },  
            {  
              "type": "text",  
              "text": "你能解释一下这张图片吗?还能生成一个程序来解码驾照号码吗?"  
            }  
          ]  
        }  
      ],  
      "temperature": 0.7,  
      "top_p": 0.95,  
      "max_tokens": 800  
    }  

    GPT4V_ENDPOINT = "https://YOUR_Azure_OPenAI.openai.azure.com/openai/deployments/YOUR_Model_Name/chat/completions?api-version=2024-02-15-preview"  
    # YOUR_Azure_OPenAI - 这是你的Azure OpenAI端点  
    # YOUR_Model_Name - 这是你部署的模型名称。  

    # 发送请求  
    try:  
        response = requests.post(GPT4V_ENDPOINT, headers=headers, json=payload)  
        response.raise_for_status()  # 如果HTTP请求返回一个不成功的状态码,将引发HTTPError  
    except requests.RequestException as e:  
        raise SystemExit(f"请求失败。错误:{e}。")  

    # 根据需要处理响应(例如打印或进一步处理)  
    result = response.json()  

    # 假设你的JSON响应存储在名为 `response_json` 的变量中。  
    response_json = result  
    # 访问特定值:  
    choices = response_json['choices']  
    message_content = choices[0]['message']['content']  

    # 打印消息内容:  
    print(message_content)

执行上述命令不仅会给出规则的说明,还会自动生成一个包含所有规则的SQL存储过程(SP)。

请问你能生成一个Azure SQL存储过程来解码驾照号码吗?

另外,创建 5 条样本数据用来测试。这也将会帮你生成一些测试用的样本数据。

YouTube探索AI的潜力:GPT-4、Azure OpenAI及Microsoft Fabric 由Alpa Buddhabhatti | #DataAISF (youtube.com)

GitHub 仓库——即将推出

这就是结论了

Azure多模态AI提供了处理和整合各种数据类型的广泛可能性,使得应用变得更智能和多功能。无论您是在医疗、教育、客户支持或内容创作领域工作,这项技术都可以提升您的工作效率并带来更好的结果。

行动邀请:现在就探索 Azure 多模态 AI 技术,看看它如何改变您的数据处理能力!了解更多详情,请访问Azure AI 文档

如果你需要更多帮助或有任何疑问,可以通过评论或Alpa Buddhabhatti | 领英联系我。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消