如何将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中创建在线端点:
- 进入「端点」页面,点击「创建」选择「在线端点」
- 填写端点名称,选择部署目标(ACI/AKS)
- 上传训练好的模型文件、评分脚本、conda环境配置
- 配置资源规格(比如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
相关产品推荐
相关产品推荐

