You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Microsoft Azure Machine Learning Studio模型接入Streamlit网页应用

将Azure ML Studio模型接入Streamlit网页应用的步骤与所需资源

一、所需Azure资源

  • Azure机器学习工作区:你已拥有,是模型训练、部署的核心载体
  • 在线端点部署目标:
    • Azure Container Instances (ACI):适合测试、低流量场景,快速部署无需管理集群
    • Azure Kubernetes Service (AKS):适合生产环境、高并发需求,支持自动扩缩容
  • Azure Key Vault:工作区自动关联的资源,用于存储端点访问密钥、连接字符串等敏感信息

二、具体操作步骤

1. 在Azure ML Studio中部署模型到在线端点

你已完成模型训练,接下来需将模型封装为可调用的API:

  • 准备评分脚本(score.py):定义模型加载和预测逻辑,示例如下:
    import joblib
    import json
    import numpy as np
    
    def init():
        # 加载Azure ML中存储的模型
        global model
        model = joblib.load("你的模型文件名.pkl")
    
    def run(raw_data):
        # 处理输入数据,格式需和模型训练时一致
        data = np.array(json.loads(raw_data)["input_data"])
        # 执行预测
        predictions = model.predict(data)
        # 返回结果,格式可自定义
        return {"outputs": predictions.tolist()}
    
  • 准备环境配置文件(conda.yml):列出模型依赖的Python包,示例:
    name: model-env
    dependencies:
      - python=3.8
      - scikit-learn=1.0.2
      - pandas=1.4.2
      - joblib=1.1.0
    
  • 在Azure ML Studio中创建在线端点:
    1. 进入「端点」页面,点击「创建」选择「在线端点」
    2. 填写端点名称,选择部署目标(ACI/AKS)
    3. 上传训练好的模型文件、评分脚本、conda环境配置
    4. 配置资源规格(比如ACI的CPU核心数、内存),完成部署
  • 测试端点:部署完成后,在端点页面的「测试」标签输入测试数据,验证返回结果是否正确

2. 获取端点访问凭证

在Azure ML Studio的端点详情页,找到「消费」标签,复制:

  • 端点URL
  • 访问密钥(或令牌):用于验证API请求的合法性

3. Streamlit应用中调用Azure ML端点

  • 先安装依赖:
    pip install streamlit requests
    
  • 编写Streamlit代码,实现UI和API调用逻辑:
    import streamlit as st
    import requests
    import json
    
    # 替换成你的端点信息
    ENDPOINT_URL = "https://你的端点名称.eastus.inference.ml.azure.com/score"
    API_KEY = "你的端点访问密钥"
    
    st.header("模型预测工具")
    # 构建用户输入UI,根据你的模型需求调整(示例为文本输入)
    input_feature = st.text_input("输入待预测的特征数据")
    
    if st.button("执行预测"):
        if not input_feature:
            st.warning("请输入特征数据")
        else:
            # 整理请求数据,需和score.py中的run函数输入格式匹配
            request_data = json.dumps({"input_data": [input_feature]})
            headers = {
                "Content-Type": "application/json",
                "Authorization": f"Bearer {API_KEY}"
            }
            # 发送预测请求
            response = requests.post(ENDPOINT_URL, data=request_data, headers=headers)
            if response.status_code == 200:
                result = response.json()
                st.success(f"预测结果:{result['outputs'][0]}")
            else:
                st.error(f"请求失败,状态码:{response.status_code},详情:{response.text}")
    
  • 运行Streamlit应用:
    streamlit run app.py
    

三、注意事项

  • 评分脚本的输入输出格式必须和Streamlit请求的格式严格对应,否则会出现解析错误
  • 环境配置文件要包含所有模型依赖的包,避免部署时出现缺失包的问题
  • ACI部署有资源配额限制,生产环境建议使用AKS
  • 不要把API密钥硬编码在代码里,可通过Streamlit的st.secrets管理敏感信息

内容的提问来源于stack exchange,提问作者Prenagen24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 09:32:59