Azure OpenAI 是什么
Azure OpenAI 是企业合规场景常用的模型通道:用 Azure 上的「部署名」(deployment)替代模型名,端点为 {resource}.openai.azure.com/openai/deployments/{deployment}/chat/completions,api-version 查询参数必填,鉴权用 api-key 请求头或 Entra ID 令牌。它带来的差异是资源化:同一个底层模型可以创建多个部署来隔离配额、做灰度与限流,代价是模型清单、版本与能力上线节奏由 Azure 区域决定,通常晚于原厂。
基本信息
| 端点 | {resource}.openai.azure.com/openai/deployments/{deployment}/... |
|---|---|
| 必填参数 | api-version 查询参数 |
| 鉴权 | api-key 请求头,或 Entra ID 令牌 |
| 调用标识 | 部署名,不是底层模型名 |
| 优势 | 区域数据驻留、企业网络与配额管理 |
| 差异点 | 能力与版本按区域发布,可能晚于原厂 |
典型使用场景
- 数据合规要求境内或不跨区驻留的政企项目
- 企业统一身份:用 Entra ID 做鉴权与权限审计
- 配额隔离:为不同业务创建独立部署,避免互相挤占
- 灰度发布:新版本先建小配额部署试跑,再逐步放量
- 网络隔离:通过私有终结点在内网访问,不走公网出口
最小调用与自检
最小调用与自检
# 部署名由自己在门户创建,不是模型标识
export AZURE_OPENAI_KEY=你的密钥
export AZURE_ENDPOINT=https://RESOURCE.openai.azure.com
cat > payload.json <<'EOF'
{"messages":[{"role":"user","content":"把这段说明压缩成三行"}],"temperature":0.2}
EOF
# api-version 必填,写错或过旧会报参数不可用
curl -s "$AZURE_ENDPOINT/openai/deployments/DEPLOYMENT/chat/completions?api-version=2024-10-21" \
-H "api-key: $AZURE_OPENAI_KEY" -H "Content-Type: application/json" -d @payload.json
# 请求体里不要写 model 字段:路由由部署名决定常见报错怎么定位
| 现象 | 常见原因 | 处理方向 |
|---|---|---|
| 404 部署不存在 | 部署名写错或引用了模型名 | 去门户核对部署名与资源名 |
| 401 / 403 | api-key 错误或缺少角色授权 | 核对密钥归属,容器/函数请检查托管身份权限 |
| 400 参数错误 | 漏掉或写错 api-version | 改用当前受支持的版本 |
| 429 限流 | 部署的 TPM 配额被打满 | 提高配额或按业务拆分部署 |
同一底层模型可以建多个部署:把生产与测试分开,既能隔离配额,也能在测试部署上先验证新版本行为。
区域决定可用模型与版本,规划前先确认目标区域的模型清单,避免按原厂文档设计功能后才发现该区域尚未上线。