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

咨询:Python应用能否使用托管身份调用Azure Phi3模型

使用托管身份调用Azure Phi3模型的可行性与实现步骤

完全可以用托管身份替代API密钥调用Azure Phi3模型,这是符合Azure最佳实践的安全方案,能规避密钥泄露、手动轮换的麻烦。

实现步骤:

  • 给托管身份分配认知服务用户角色
    打开Azure门户,找到你的Phi3所属的认知服务资源,进入「访问控制(IAM)」页面,点击「添加角色分配」,选择「认知服务用户」角色,将你的托管身份(比如应用服务系统分配托管身份、虚拟机托管身份等)添加为角色成员。

  • Python应用中用托管身份获取令牌并调用模型
    不需要再从密钥保管库读取API密钥,直接借助Azure Identity库获取短期有效令牌,示例代码如下:

    from azure.identity import DefaultAzureCredential
    import requests
    
    # 初始化凭据,自动适配托管身份环境(本地测试会用az login的账户)
    credential = DefaultAzureCredential()
    # 获取认知服务的访问令牌
    token = credential.get_token("https://cognitiveservices.azure.com/.default")
    
    # 调用Phi3模型的部署终结点
    phi3_endpoint = "你的Phi3模型部署终结点"
    headers = {
        "Authorization": f"Bearer {token.token}",
        "Content-Type": "application/json"
    }
    # 构造摘要请求体
    payload = {
        "messages": [
            {"role": "user", "content": "请对以下文档进行摘要:这里替换为你的文档内容"}
        ],
        "max_tokens": 512,
        "temperature": 0.7
    }
    
    response = requests.post(phi3_endpoint, headers=headers, json=payload)
    response.raise_for_status()
    print("摘要结果:", response.json()["choices"][0]["message"]["content"])
    
  • 环境与权限验证

    • 确保托管身份所在的服务(如应用服务)已经启用了托管身份功能
    • 本地测试时,用az login登录Azure账户,且该账户需具备目标认知服务资源的「认知服务用户」权限

注意事项:

  • 认知服务的令牌请求资源固定为https://cognitiveservices.azure.com/.default,不要修改
  • 优先使用系统分配托管身份,避免手动管理身份的额外开销
  • 令牌有效期较短,DefaultAzureCredential会自动处理令牌刷新,无需手动干预

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 13:10:02