迁移指南
从 OpenAI、Anthropic Claude 或 Gemini 迁移到 Grok 时,重点不是简单替换模型名,而是确认接口路径、状态管理、工具调用、搜索能力、图像输入和结构化输出配置。
从 OpenAI 迁移到 Grok
Grok 的 /v1/responses 与 OpenAI Responses API 形态接近,迁移成本通常较低。
| OpenAI | Grok |
|---|---|
/v1/responses | /v1/responses |
Authorization: Bearer | Authorization: Bearer |
input | input |
previous_response_id | previous_response_id |
tools | tools |
text.format / response_format | text.format |
baseURL: https://api.openai.com/v1 | baseURL: https://xikapi.com/v1 |
从 Claude 迁移到 Grok
| Anthropic Claude | Grok |
|---|---|
/v1/messages | /v1/responses |
x-api-key | Authorization: Bearer |
顶层 system | system 消息 |
messages | input |
tool_use / tool_result | tool call / tool result |
max_tokens | max_output_tokens |
从 Gemini 迁移到 Grok
| Gemini | Grok |
|---|---|
/v1beta/models/{model}:generateContent | /v1/responses |
key 查询参数 | Authorization: Bearer |
systemInstruction | system 消息 |
contents[].parts | input 内容块 |
functionCall / functionResponse | tool call / tool result |
generationConfig.maxOutputTokens | max_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_image 和 input_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 - 需要最新信息的任务是否启用搜索工具