Skip to content

迁移指南

从 OpenAI、Anthropic Claude 或 Gemini 迁移到 Grok 时,重点不是简单替换模型名,而是确认接口路径、状态管理、工具调用、搜索能力、图像输入和结构化输出配置。

从 OpenAI 迁移到 Grok

Grok 的 /v1/responses 与 OpenAI Responses API 形态接近,迁移成本通常较低。

OpenAIGrok
/v1/responses/v1/responses
Authorization: BearerAuthorization: Bearer
inputinput
previous_response_idprevious_response_id
toolstools
text.format / response_formattext.format
baseURL: https://api.openai.com/v1baseURL: https://xikapi.com/v1

从 Claude 迁移到 Grok

Anthropic ClaudeGrok
/v1/messages/v1/responses
x-api-keyAuthorization: Bearer
顶层 systemsystem 消息
messagesinput
tool_use / tool_resulttool call / tool result
max_tokensmax_output_tokens

从 Gemini 迁移到 Grok

GeminiGrok
/v1beta/models/{model}:generateContent/v1/responses
key 查询参数Authorization: Bearer
systemInstructionsystem 消息
contents[].partsinput 内容块
functionCall / functionResponsetool call / tool result
generationConfig.maxOutputTokensmax_output_tokens

Chat Completions 与 Responses API 差异

Grok 兼容 Chat Completions,但新项目建议优先使用 Responses API。

Chat Completions:

json
{
  "model": "grok-4.3-latest",
  "messages": [
    { "role": "system", "content": "You are a customer support assistant" },
    { "role": "user", "content": "Draft a reply for me" }
  ]
}

Responses API:

json
{
  "model": "grok-4.3-latest",
  "input": [
    { "role": "system", "content": "You are a customer support assistant" },
    { "role": "user", "content": "Draft a reply for me" }
  ]
}

状态管理差异

Responses API 可以通过 previous_response_id 延续上一轮状态。迁移时要决定:

  • 是否让上游保存对话状态
  • 是否由你的服务端保存完整历史
  • 是否需要关闭服务端状态存储
  • 日志中是否能追踪每轮响应 ID

工具调用差异

迁移时需要检查:

  • 工具定义字段名
  • 参数 schema
  • 工具调用 ID 的传递
  • 工具结果如何回填
  • 是否使用 Web Search 或 X Search
  • 多工具并发或顺序调用逻辑

图像输入差异

Grok 视觉输入使用 input_imageinput_text 内容块。

json
{
  "input": [
    {
      "role": "user",
      "content": [
        {
          "type": "input_image",
          "image_url": "https://example.com/image.png"
        },
        {
          "type": "input_text",
          "text": "What is in this image?"
        }
      ]
    }
  ]
}

迁移检查清单

  • 请求地址是否改为 https://xikapi.com/v1/responses
  • 鉴权头是否为 Authorization: Bearer
  • 模型名是否存在于 Xikapi 后台
  • 系统提示词是否改为 system 消息
  • 多轮上下文是自己保存还是使用 previous_response_id
  • 图像输入是否改为 input_image
  • 工具调用是否适配 Grok 的工具结果回填
  • 结构化输出是否使用 Responses API 的 text.format
  • 需要最新信息的任务是否启用搜索工具