跳转到内容

社区集成

Microsoft Foundry

通过 Azure AI Foundry 访问 xAI 的前沿推理和智能体模型,具备企业级安全性、治理和统一计费。

本指南介绍如何在 Microsoft Foundry 上设置和使用 Grok 模型。Foundry 上的 Grok 模型为您提供强大的推理能力、原生工具使用、通过 Microsoft Entra ID 的企业身份验证、Azure 原生监控以及与 OpenAI 兼容的 API。

使用通过 Azure Marketplace / 您的 Azure 订阅计费。Grok 模型通过 xAI-Microsoft 合作伙伴关系提供,使用 Azure 托管的端点,并可选配置 Azure AI 内容安全层。查看 Foundry 目录中的特定模型卡,获取有关数据处理、保留和条款的最新详细信息。

Foundry 上的 Grok 与官方 OpenAI Python/TypeScript SDK、azure-ai-projects、LangChain、Semantic Kernel、LlamaIndex 以及大多数 OpenAI 兼容框架协同工作。支持流式传输、工具调用和结构化输出。

前提条件

开始之前,请确保您拥有:

  • 有效的 Azure 订阅。
  • 访问 Azure AI Foundry 的权限。
  • 创建或管理 Foundry 资源/项目和部署模型的足够权限,通常需要参与者角色或具有模型部署权限的自定义角色。
  • 可选但推荐:安装 Azure CLI 用于资源管理和身份验证测试。
  • 本指南示例所需的 Python 3.10+。

安装必需的包

bash
pip install -U openai azure-identity

可选,用于更高级的项目客户端模式:

bash
pip install azure-ai-projects

预配

Foundry 将工作组织为用于安全性、计费和网络连接的资源,以及用于部署和协作的项目。首先创建一个资源/项目,然后在其中部署一个或多个 Grok 模型实例。

您选择的部署名称将成为 API 请求中传递给 model 参数的值。

创建或选择 Foundry 资源和项目

  1. 导航到 Foundry 门户。
  2. 创建一个新的 Foundry 资源,或选择一个现有资源。
  3. 在资源内,如果您的工作流使用项目,则创建一个新项目。
  4. 配置访问管理:
    • 使用基于角色的访问控制 (RBAC) 的 Microsoft Entra ID。
    • 将认知服务 OpenAI 用户角色或等效角色分配给将调用模型的身份。
    • 可选地通过 Azure 虚拟网络配置私有网络。
  5. 记录您的资源名称和项目名称以备后用。

生成的端点基础将是:

text
https://{resource-name}.services.ai.azure.com/api/projects/{project-name}/openai/v1

部署 Grok 模型

  1. 在 Foundry 门户中,转到您的资源或项目,然后选择 模型 + 端点
  2. 点击 + 部署模型部署基础模型,或直接浏览模型目录并搜索"Grok"。
  3. 浏览或搜索目录中所需的 Grok 模型,例如 grok-4.3
  4. 查看模型卡,了解功能、上下文窗口、工具调用支持、安全评估、定价和部署选项。
  5. 点击 部署
  6. 配置部署设置:
    • 部署名称:选择清晰、稳定的名称,如 grok-4.3。此名称创建后无法更改,是您在 model 参数中使用的值。
    • 部署类型/SKU:选择 Serverless 用于按需付费工作负载,或选择预配吞吐量单位 (PTU) 用于可预测的高性能工作负载。
  7. 查看并选择 部署。等待部署达到 就绪/运行 状态。

部署完成后,您可以在内置的 Playground 中测试,查看生成的代码片段,如果启用了 API 密钥身份验证则可以管理密钥/端点,并监控使用情况和指标。

身份验证

Foundry 上的 Grok 使用 Azure 原生身份验证。推荐的方法是使用 DefaultAzureCredential 的 Microsoft Entra ID(无密钥)。根据您的资源配置,也可能支持来自门户的 API 密钥。

所有请求都发送到您的 Foundry 项目的 OpenAI 兼容端点:

text
https://{resource-name}.services.ai.azure.com/api/projects/{project-name}/openai/v1

推荐:Entra ID 身份验证

使用 azure.identityget_bearer_token_provider。这实现了无缝的 RBAC、托管身份,并避免了密钥管理。

python
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import OpenAI

project_endpoint = "https://YOUR-RESOURCE-NAME.services.ai.azure.com/api/projects/YOUR_PROJECT_NAME"
base_url = project_endpoint.rstrip("/") + "/openai/v1"

credential = DefaultAzureCredential()
token_provider = get_bearer_token_provider(
    credential,
    "https://ai.azure.com/.default",
)

client = OpenAI(
    base_url=base_url,
    api_key=token_provider,
)

response = client.responses.create(
    model="grok-4.3",  # your deployment name
    input="Explain the significance of Grok's tool-calling capabilities for building reliable agents. Be concise but insightful.",
    max_output_tokens=800,
)

print(response.output_text)

重要提示:

  • 为运行此代码的身份分配认知服务 OpenAI 用户或适当角色。
  • DefaultAzureCredential 通过 Azure CLI / VS Code、托管身份、服务主体和其他支持的流程处理本地开发。
  • 不需要 api-version 查询参数;/openai/v1 路径处理兼容性。

替代方案:API 密钥身份验证

如果您的 Foundry 资源在"密钥和端点"下公开了密钥,复制主密钥或辅助密钥,并将其直接用作 api_key

python
client = OpenAI(
    base_url=base_url,
    api_key="your-foundry-api-key-here",
)

在生产环境中优先使用 Entra ID + RBAC。切勿将密钥提交到源代码控制中,并定期轮换密钥。

进行首次 API 调用

简单推理调用

python
response = client.responses.create(
    model="grok-4.3",
    input="Walk through the first-principles reasoning to determine why reusable rockets dramatically reduce the cost of space access.",
    max_output_tokens=1500,
)
print(response.output_text)

工具调用示例

Grok 在工具使用方面表现出色。以下是并行工具调用的模式:

python
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "Get the current weather in a given location",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "City and country, e.g., San Francisco, CA",
                    },
                    "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
                },
                "required": ["location"],
            },
        },
    },
    {
        "type": "function",
        "function": {
            "name": "search_web",
            "description": "Search the web for recent information",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {"type": "string"},
                },
                "required": ["query"],
            },
        },
    },
]

response = client.responses.create(
    model="grok-4.3",
    input="What's the weather like in Palo Alto right now and any major tech news from today?",
    tools=tools,
    # parallel_tool_calls=True,  # enable if supported in your deployment
    max_output_tokens=1000,
)

print(response)

在实际的智能体循环中,执行工具调用并使用工具结果继续对话。

流式响应

python
stream = client.responses.create(
    model="grok-4.3",
    input="Write a short, helpful onboarding guide for a new engineer joining xAI.",
    max_output_tokens=600,
    stream=True,
)

for chunk in stream:
    if hasattr(chunk, "choices") and chunk.choices:
        delta = chunk.choices[0].delta
        if hasattr(delta, "content") and delta.content:
            print(delta.content, end="", flush=True)

从 Foundry 门户中的 Playground 开始进行快速提示迭代,然后转向代码。

关联 ID 和调试

Foundry 在响应头中包含标准的 Azure 请求标识符,如 request-idapim-request-idx-ms-request-id。在联系 Microsoft 或 xAI 支持时,请包含这些 ID 以及您的部署名称和大概的时间戳。

功能支持和能力

功能备注
推理强大的基础推理。"思考模式"风格的提示效果良好。
工具/函数调用原生支持可靠的智能体工作流。
结构化输出/JSON 模式支持。请求 response_format,或明确指示 JSON。
流式传输支持低延迟用户体验。
长上下文查看特定模型卡中的当前上下文窗口。
代码生成在代码生成和编辑任务中表现强劲。

安全性和负责任的 AI

Grok 模型包含 xAI 的安全训练和对齐。在 Foundry 上,Azure AI 内容安全可用,通常默认启用或易于集成。

在生产部署之前:

  • 查看 Foundry 目录中的完整模型卡和安全基准选项卡。
  • 使用定义安全边界和期望行为的清晰系统提示。
  • 在适当时实施 Azure 内容安全过滤器进行输入/输出过滤。
  • 进行您自己的红队测试和评估。
  • 监控使用情况和任何所需的缓解措施。

限制

  • api.x.ai 上的直接 xAI API 的功能对等性可能略有不同,特别是对于最新的实验性功能。
  • 验证您选择的模型/部署的视觉/多模态支持和确切参数可用性。
  • 速率限制和配额在 Azure 资源级别管理。

有关支持的参数和行为的权威列表,请参阅 Azure AI Foundry 内部的模型卡以及目录中链接的 xAI Grok 文档。

生产环境最佳实践

模型选择

  • 使用完整的 Grok 推理模型以获得最大推理深度和能力。
  • 对于简单任务,使用平衡的推理设置。
  • 选择符合您延迟、吞吐量和成本要求的部署设置。

有效提示 Grok

  • 在需要时鼓励逐步推理。
  • 指定期望的输出格式。
  • 使用清晰的工具模式。

成本管理

  • 监控 Azure 成本管理 + 计费中的支出。
  • 对于突发或实验性工作负载使用 serverless;对于稳定的高吞吐量使用 PTU。
  • 根据预期的流量模式调整模型和部署类型。

安全性和合规性

  • 优先使用 Entra ID + RBAC 而非长期密钥。
  • 在需要时使用私有端点/VNet 注入。
  • 使用关联 ID 记录请求以便审计。

可观察性

  • 集成 Azure Monitor、Application Insights 或 Log Analytics。
  • 按部署跟踪令牌使用情况、延迟和错误率。

故障排除

问题检查内容
401 未授权缺少或不正确的 Entra 角色;错误的令牌范围;检查 DefaultAzureCredential 链。
404 未找到/模型未找到错误的部署名称;必须与您在门户中创建的名称完全匹配。
部署卡在"运行中"检查区域配额、资源运行状况、门户通知,或尝试重新部署。
响应缓慢或高延迟考虑使用预配吞吐量。检查到 Azure 区域的网络路径。
工具调用未按预期执行验证工具模式以及是否为该部署启用了/支持并行工具调用。
内容被过滤/阻止查看 Azure 内容安全配置和您的系统提示。如需要,调整安全阈值。

后续步骤

  • 使用您 Foundry 项目内的 Playground。
  • 将 Grok 与 Azure AI Agent Service 或流行框架(如 LangChain、Semantic Kernel 和 CrewAI)结合使用。
  • 为生产系统添加检索、记忆和编排层。
  • 使用 Foundry 跟踪和您内部的评估工具来评估和改进行为。
  • 从直接 xAI API 迁移时,更新身份验证和端点配置。大多数提示和工具模式只需进行最小更改即可转移。

本文档为 docs.x.ai 全站中文翻译,由 AI 自动翻译生成。代码示例请以原文为准。