能否为Azure ML部署的MLflow RAG模型添加score.py及脚本示例
问题解答
1. 是否可以创建score.py并随产物注册模型
可以。Azure ML Studio部署模型时,评分脚本(score.py)是必填项,用于定义模型的加载逻辑和请求处理流程,你可以手动创建该文件并和MLflow导出的模型文件一起打包注册。
2. 适配该RAG模型的score.py示例
import mlflow.pyfunc import os import json # 全局变量缓存加载后的模型 model = None def init(): """Azure ML部署时调用的初始化函数,仅执行一次""" global model # 获取Azure ML挂载的模型路径 model_path = os.path.join(os.getenv("AZUREML_MODEL_DIR"), "model") # 加载MLflow PyFunc格式的模型 model = mlflow.pyfunc.load_model(model_path) def run(raw_data): """处理请求的核心函数,接收原始请求数据并返回模型结果""" # 解析JSON格式的请求数据 input_data = json.loads(raw_data) # 调用模型的predict方法,匹配原模型预期的输入格式 prediction_result = model.predict(input_data) # 将结果序列化为JSON返回 return json.dumps(prediction_result)
3. 关键注意事项
- 打包模型时,要将score.py和MLflow生成的
model目录(包含MLmodel、conda.yaml等文件)放在同一层级,压缩成zip包后上传到Azure ML Studio注册。 - 模型中的OpenAI API密钥
myapi-key不要硬编码,建议改为从Azure ML的环境变量或密钥保管库读取:
修改原模型代码中OpenAIGenerator的初始化逻辑:
部署端点时在Azure ML配置中添加import os llm = OpenAIGenerator(api_key=Secret.from_token(os.getenv("OPENAI_API_KEY")))OPENAI_API_KEY环境变量并填入密钥值。 - 确认
pip_requirements中的依赖版本与Azure ML部署环境兼容,必要时指定具体版本(如haystack-ai==2.2.0),避免依赖冲突。
内容的提问来源于stack exchange,提问作者Sorath
相关产品推荐
相关产品推荐

