关于 azure-openai-2025
面向部署和使用 Azure OpenAI Service 的团队的参考技能,涵盖模型、部署、集成、安全与运维,涉及文本、推理、图像、视频和音频能力,以及 Azure AI Foundry。
主要功能
- 012025 年模型与能力概览
- 02Azure CLI 部署示例
- 03Python SDK 使用模式
- 04Azure AI Foundry 集成
- 05配额与容量管理
- 06安全与监控指南
适用场景
- 01为任务选择模型
- 02部署 Azure OpenAI 模型
- 03配置专用终结点和托管身份
- 04监控用量并管理部署容量
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill azure-openai-2025安装后在 Claude Code 中输入/azure-openai-2025确认已加载。
附带文件references/cost-monitoring.md
详细介绍
Azure OpenAI Service - 2025 年模型与功能
包含 Azure OpenAI Service 的完整知识库,涵盖最新的 2025 年模型,包括 GPT-5、GPT-4.1、推理模型以及 Azure AI Foundry 集成。
概览
Azure OpenAI Service 通过 REST API 提供对 OpenAI 最强大模型的访问,并具备企业级安全性、合规性和区域可用性。
最新模型(2025 年)
GPT-5 系列(2025 年 8 月正式发布)
需要注册的模型:
gpt-5-pro:能力最强,适用于复杂推理gpt-5:兼顾性能与成本gpt-5-codex:针对代码生成优化
无需注册:
gpt-5-mini:速度更快,价格更实惠gpt-5-nano:适用于简单任务,速度极快gpt-5-chat:针对对话场景优化
GPT-4.1 系列
gpt-4.1:1 百万 token 上下文窗口gpt-4.1-mini:高效版本,支持 1M 上下文gpt-4.1-nano:速度最快的变体
主要改进:
- 1,000,000 token 上下文(GPT-4 Turbo 为 128K)
- 更善于遵循指令
- 减少幻觉
- 改进多语言支持
推理模型
o4-mini:轻量级推理模型
- 推理速度更快
- 成本更低
- 适用于结构化推理任务
o3:高级推理模型
- 解决复杂问题
- 数学推理
- 科学分析
o1:原始推理模型
- 通用推理
- 分步说明
o1-mini:高效推理
- 兼顾成本与性能
图像生成
GPT-image-1(2025-04-15)
- DALL-E 3 的后继产品
- 图像质量更高
- 更善于理解提示词
- 改进安全过滤器
视频生成
Sora(2025-05-02)
- 文本生成视频
- 可生成逼真和富有想象力的场景
- 视频时长最长可达 60 秒
- 支持多种摄像机角度和风格
音频模型
gpt-4o-transcribe:由 GPT-4o 驱动的语音转文本
- 转录准确率高
- 支持多种语言
- 说话人分离
gpt-4o-mini-transcribe:更快、更实惠的转录
- 准确率良好
- 延迟更低
- 成本效益高
部署 Azure OpenAI
创建 Azure OpenAI 资源
# Create OpenAI account
az cognitiveservices account create \
--name myopenai \
--resource-group MyRG \
--kind OpenAI \
--sku S0 \
--location eastus \
--custom-domain myopenai \
--public-network-access Disabled \
--identity-type SystemAssigned
# Get endpoint and key
az cognitiveservices account show \
--name myopenai \
--resource-group MyRG \
--query "properties.endpoint" \
--output tsv
az cognitiveservices account keys list \
--name myopenai \
--resource-group MyRG \
--query "key1" \
--output tsv
部署 GPT-5 模型
# Deploy gpt-5
az cognitiveservices account deployment create \
--resource-group MyRG \
--name myopenai \
--deployment-name gpt-5 \
--model-name gpt-5 \
--model-version latest \
--model-format OpenAI \
--sku-name Standard \
--sku-capacity 100 \
--scale-type Standard
# Deploy gpt-5-pro (requires registration)
az cognitiveservices account deployment create \
--resource-group MyRG \
--name myopenai \
--deployment-name gpt-5-pro \
--model-name gpt-5-pro \
--model-version latest \
--model-format OpenAI \
--sku-name Standard \
--sku-capacity 50
部署推理模型
# Deploy o3 reasoning model
az cognitiveservices account deployment create \
--resource-group MyRG \
--name myopenai \
--deployment-name o3-reasoning \
--model-name o3 \
--model-version latest \
--model-format OpenAI \
--sku-name Standard \
--sku-capacity 50
# Deploy o4-mini
az cognitiveservices account deployment create \
--resource-group MyRG \
--name myopenai \
--deployment-name o4-mini \
--model-name o4-mini \
--model-version latest \
--model-format OpenAI \
--sku-name Standard \
--sku-capacity 100
部署支持 1M 上下文的 GPT-4.1
az cognitiveservices account deployment create \
--resource-group MyRG \
--name myopenai \
--deployment-name gpt-4-1 \
--model-name gpt-4.1 \
--model-version latest \
--model-format OpenAI \
--sku-name Standard \
--sku-capacity 100
部署图像生成模型
az cognitiveservices account deployment create \
--resource-group MyRG \
--name myopenai \
--deployment-name image-gen \
--model-name gpt-image-1 \
--model-version 2025-04-15 \
--model-format OpenAI \
--sku-name Standard \
--sku-capacity 10
部署 Sora 视频生成
az cognitiveservices account deployment create \
--resource-group MyRG \
--name myopenai \
--deployment-name sora \
--model-name sora \
--model-version 2025-05-02 \
--model-format OpenAI \
--sku-name Standard \
--sku-capacity 5
使用 Azure OpenAI 模型
Python SDK(GPT-5)
from openai import AzureOpenAI
import os
# Initialize client
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2025-02-01-preview",
azure_endpoint=os.getenv("AZURE_OPENAI_ENDPOINT")
)
# GPT-5 completion
response = client.chat.completions.create(
model="gpt-5", # deployment name
messages=[
{"role": "system", "content": "You are a helpful AI assistant."},
{"role": "user", "content": "Explain quantum computing in simple terms."}
],
max_tokens=1000,
temperature=0.7,
top_p=0.95
)
print(response.choices[0].message.content)
Python SDK(o3 推理模型)
# o3 reasoning with chain-of-thought
response = client.chat.completions.create(
model="o3-reasoning",
messages=[
{"role": "system", "content": "You are an expert problem solver. Show your reasoning step-by-step."},
{"role": "user", "content": "If a train travels 120 km in 2 hours, then speeds up to travel 180 km in the next 2 hours, what is the average speed for the entire journey?"}
],
max_tokens=2000,
temperature=0.2 # Lower temperature for reasoning tasks
)
print(response.choices[0].message.content)
Python SDK(支持 1M 上下文的 GPT-4.1)
# Read a large document
with open('large_document.txt', 'r') as f:
document = f.read()
# GPT-4.1 can handle up to 1M tokens
response = client.chat.completions.create(
model="gpt-4-1",
messages=[
{"role": "system", "content": "You are a document analysis expert."},
{"role": "user", "content": f"Analyze this document and provide key insights:\n\n{document}"}
],
max_tokens=4000
)
print(response.choices[0].message.content)
图像生成(GPT-image-1)
# Generate image with DALL-E 3 successor
response = client.images.generate(
model="image-gen",
prompt="A futuristic city with flying cars and vertical gardens, cyberpunk style, highly detailed, 4K",
size="1024x1024",
quality="hd",
n=1
)
image_url = response.data[0].url
print(f"Generated image: {image_url}")
视频生成(Sora)
# Generate video with Sora
response = client.videos.generate(
model="sora",
prompt="A serene lakeside at sunset with birds flying overhead and gentle waves on the shore",
duration=10, # seconds
resolution="1080p",
fps=30
)
video_url = response.data[0].url
print(f"Generated video: {video_url}")
音频转录
# Transcribe audio file
audio_file = open("meeting_recording.mp3", "rb")
response = client.audio.transcriptions.create(
model="gpt-4o-transcribe",
file=audio_file,
language="en",
response_format="verbose_json"
)
print(f"Transcription: {response.text}")
print(f"Duration: {response.duration}s")
# Speaker diarization
for segment in response.segments:
print(f"[{segment.start}s - {segment.end}s] {segment.text}")
Azure AI Foundry 集成
模型路由器(自动选择模型)
from azure.ai.foundry import ModelRouter
# Initialize model router
router = ModelRouter(
endpoint=os.getenv("AZURE_OPENAI_ENDPOINT"),
credential=os.getenv("AZURE_OPENAI_API_KEY")
)
# Automatically select optimal model
response = router.complete(
prompt="Analyze this complex scientific paper...",
optimization_goals=["quality", "cost"],
available_models=["gpt-5", "gpt-5-mini", "gpt-4-1"]
)
print(f"Selected model: {response.model_used}")
print(f"Response: {response.content}")
print(f"Cost: ${response.cost}")
优势:
- 根据提示词复杂度自动选择模型
- 平衡质量与成本
- 在保持质量的同时,最多可降低 40% 的成本
Agentic 检索(Azure AI Search 集成)
from azure.search.documents import SearchClient
from azure.core.credentials import AzureKeyCredential
# Initialize search client
search_client = SearchClient(
endpoint=os.getenv("SEARCH_ENDPOINT"),
index_name="documents",
credential=AzureKeyCredential(os.getenv("SEARCH_KEY"))
)
# Agentic retrieval with Azure OpenAI
response = client.chat.completions.create(
model="gpt-5",
messages=[
{"role": "system", "content": "You have access to a document search system."},
{"role": "user", "content": "What are the company's revenue projections for Q3?"}
],
tools=[{
"type": "function",
"function": {
"name": "search_documents",
"description": "Search company documents",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "Search query"}
},
"required": ["query"]
}
}
}],
tool_choice="auto"
)
# Process tool calls
if response.choices[0].message.tool_calls:
for tool_call in response.choices[0].message.tool_calls:
if tool_call.function.name == "search_documents":
query = json.loads(tool_call.function.arguments)["query"]
results = search_client.search(query)
# Feed results back to model for final answer
改进:
- 处理复杂的多部分问题时,效果提升 40%
- 自动分解查询
- 相关性排序
- 生成引用
Foundry 可观测性(预览版)
from azure.ai.foundry import FoundryObservability
# Enable observability
observability = FoundryObservability(
workspace_id=os.getenv("AI_FOUNDRY_WORKSPACE_ID"),
enable_tracing=True,
enable_metrics=True
)
# Monitor agent execution
with observability.trace_agent("customer_support_agent") as trace:
response = client.chat.completions.create(
model="gpt-5",
messages=messages
)
trace.log_tool_call("search_kb", {"query": "refund policy"})
trace.log_reasoning_step("Retrieved refund policy document")
trace.log_token_usage(response.usage.total_tokens)
# View in Azure AI Foundry portal:
# - End-to-end trace logs
# - Reasoning steps and tool calls
# - Performance metrics
# - Cost analysis
容量和配额管理
检查配额
# List deployments with usage
az cognitiveservices account deployment list \
--resource-group MyRG \
--name myopenai \
--output table
# Check usage metrics
az monitor metrics list \
--resource $(az cognitiveservices account show -g MyRG -n myopenai --query id -o tsv) \
--metric "TokenTransaction" \
--start-time 2025-01-01T00:00:00Z \
--end-time 2025-01-31T23:59:59Z \
--interval PT1H \
--aggregation Total
更新容量
# Scale up deployment capacity
az cognitiveservices account deployment update \
--resource-group MyRG \
--name myopenai \
--deployment-name gpt-5 \
--sku-capacity 200
# Scale down during off-peak
az cognitiveservices account deployment update \
--resource-group MyRG \
--name myopenai \
--deployment-name gpt-5 \
--sku-capacity 50
申请提高配额
- 导航至 Azure Portal → Azure OpenAI 资源
- 打开“Quotas”窗格
- 选择模型和区域
- 点击“Request quota increase”
- 提供申请理由和目标容量
安全和网络
专用终结点
# Create private endpoint
az network private-endpoint create \
--name openai-private-endpoint \
--resource-group MyRG \
--vnet-name MyVNet \
--subnet PrivateEndpointSubnet \
--private-connection-resource-id $(az cognitiveservices account show -g MyRG -n myopenai --query id -o tsv) \
--group-id account \
--connection-name openai-connection
# Create private DNS zone
az network private-dns zone create \
--resource-group MyRG \
--name privatelink.openai.azure.com
# Link to VNet
az network private-dns link vnet create \
--resource-group MyRG \
--zone-name privatelink.openai.azure.com \
--name openai-dns-link \
--virtual-network MyVNet \
--registration-enabled false
# Create DNS zone group
az network private-endpoint dns-zone-group create \
--resource-group MyRG \
--endpoint-name openai-private-endpoint \
--name default \
--private-dns-zone privatelink.openai.azure.com \
--zone-name privatelink.openai.azure.com
托管标识访问
# Enable system-assigned identity
az cognitiveservices account identity assign \
--name myopenai \
--resource-group MyRG
# Grant role to managed identity
PRINCIPAL_ID=$(az cognitiveservices account show -g MyRG -n myopenai --query identity.principalId -o tsv)
az role assignment create \
--assignee $PRINCIPAL_ID \
--role "Cognitive Services OpenAI User" \
--scope /subscriptions/<sub-id>/resourceGroups/MyRG
内容筛选
# Configure content filtering
az cognitiveservices account update \
--name myopenai \
--resource-group MyRG \
--set properties.customContentFilter='{
"hate": {"severity": "medium", "enabled": true},
"violence": {"severity": "medium", "enabled": true},
"sexual": {"severity": "medium", "enabled": true},
"selfHarm": {"severity": "high", "enabled": true}
}'
成本优化、监控和警报
有关 Azure OpenAI 部署的详细成本优化策略、token 预算、配额感知路由、Azure Monitor 指标、Log Analytics 查询和警报规则,请参阅 references/cost-monitoring.md。在控制支出或配置生产环境可观测性时,请加载该参考文档。
最佳实践
✓ 使用 Model Router 自动优化成本 ✓ 实施缓存,减少重复请求 ✓ 监控令牌用量并设置预算 ✓ 在生产工作负载中使用专用终结点 ✓ 启用托管标识,而非使用 API 密钥 ✓ 配置内容筛选以确保安全 ✓ 根据实际需求合理调整容量 ✓ 使用 Foundry Observability 进行监控 ✓ 实施重试逻辑并采用指数退避 ✓ 根据任务复杂度选择合适的模型
参考资料
借助 GPT-5 和推理模型,Azure OpenAI Service 将企业级 AI 带入您的应用!