TL;DR
- Grok 4.7 是 xAI 面向编码和 agentic 任务的文本模型,已在 HiAPI 上线,打开模型页可以直接开聊,新用户注册送 200 积分。
- 平台价 $0.84 输入 / $2.52 输出(每 1M tokens,缓存读 $0.21),约为官方价的 4.2 折。一次 2K 输入 + 1K 输出的请求约 $0.0042;按 3K 总 token 的中等请求(约 $0.0084/次)算,$10 能跑约 1200 次。
- 最快调用:
POST https://api.hiapi.ai/v1/chat/completions,model写grok-4.7,现有 OpenAI SDK 代码只改 base_url 和 model 两个值。
Grok 4.7 是什么,新在哪
2026-09-21 发布的 Grok 4.7 是 xAI 当前的默认推荐模型,主打编码、agentic 任务和知识工作。官方自报的 Terminal-Bench 4.0 成绩从 4.6 的 20.3% 提到 38.0%,接近翻倍(自报口径)。对调用方来说,值得关心的变化有四个:
- 编码和 agentic 是主打场景:官方同步把它接进了 Cursor、GitHub Copilot 这类编码工具,长时程任务规划能力是这个版本的重点。
- 四档推理:
reasoning_effort支持 low / medium / high / xhigh,默认 high;思考过程走reasoning_content字段单独回传,方便你决定是否展示。 - JSON 对象 + 工具调用:
response_format: {"type": "json_object"}强制合法 JSON 输出,函数调用走标准 OpenAI tools 格式,做结构化抽取和 agent 循环不用额外包装。 - 500K 上下文:一次请求能塞下整套代码库或大段文档。
真实成品:一段 pandas 数据分析代码
下面这段输出是我们在 HiAPI 上用 Grok 4.7 实跑拿到的(完整提示词见下方链接)。任务是分析一份电商订单数据:月度 GMV、用户累计消费 Top 20、新用户首单趋势,且 created_at 是字符串。模型 18.5 秒完成,代码完整可运行,主动处理了字符串日期转换:
# ---------- 0. 日期处理:字符串转 datetime ----------
df["created_at"] = pd.to_datetime(df["created_at"], errors="coerce")
df = df.dropna(subset=["created_at", "amount", "user_id"])
# 只统计有效订单(按实际业务调整 status 取值)
df_valid = df[df["status"] == "paid"].copy()
# ---------- 1. 每个月的 GMV 和订单数 ----------
df_valid["month"] = df_valid["created_at"].dt.to_period("M")
monthly = (
df_valid.groupby("month", as_index=False)
.agg(GMV=("amount", "sum"), order_count=("order_id", "count"))
.sort_values("month")
)
这次实跑输入 3440 tokens、输出 1427 tokens,按平台价约 $0.007。想要同样的效果,直接点 用这个提示词在模型页跑一遍 →
两条上手路线
路线一:浏览器,3 步,零代码
- 打开 Grok 4.7 模型页,登录或注册(新用户送 200 积分)。
- 在对话框粘贴你的提示词,比如点 这个链接,提示词已自动填好。
- 直接发送,额度按实际 token 用量扣。
路线二:API,3 步,接入你的应用
- 在 HiAPI 控制台创建一把 API Key。
- 把下面 curl 里的
YOUR_HIAPI_API_KEY换成你的 Key,跑通。 - 把
model固定为grok-4.7,messages换成你的业务输入,收工。
curl:第一次调用
curl https://api.hiapi.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_HIAPI_API_KEY" \
-d '{
"model": "grok-4.7",
"messages": [
{"role": "system", "content": "You are a senior backend engineer."},
{"role": "user", "content": "Explain what a database connection pool is in two sentences."}
],
"reasoning_effort": "high",
"max_tokens": 2000
}'
返回里 choices[0].message.content 是正文,reasoning_content 是思考过程;usage.completion_tokens_details.reasoning_tokens 单独告诉你这次推理烧了多少 token。要流式就把 "stream": true 加进去,按 SSE 解析。
Python:非流式 + 流式
非流式,用 requests 就够:
import requests
resp = requests.post(
"https://api.hiapi.ai/v1/chat/completions",
headers={"Authorization": "Bearer YOUR_HIAPI_API_KEY"},
json={
"model": "grok-4.7",
"messages": [
{"role": "user", "content": "Write a Python function that merges two sorted lists into one sorted list."}
],
"reasoning_effort": "medium",
"max_tokens": 4000,
},
timeout=120,
)
resp.raise_for_status()
data = resp.json()
print(data["choices"][0]["message"]["content"])
流式注意两点:先来的 delta.reasoning_content 是思考过程,后面 delta.content 才是正文;usage 只在最后一个 chunk 里(choices 为空),以 data: [DONE] 结束:
import json
import requests
with requests.post(
"https://api.hiapi.ai/v1/chat/completions",
headers={"Authorization": "Bearer YOUR_HIAPI_API_KEY"},
json={
"model": "grok-4.7",
"messages": [{"role": "user", "content": "Plan a Redis-based online presence system."}],
"reasoning_effort": "high",
"stream": True,
},
stream=True,
timeout=300,
) as resp:
resp.raise_for_status()
for line in resp.iter_lines(decode_unicode=True):
if not line or not line.startswith("data:"):
continue
payload = line[len("data:"):].strip()
if payload == "[DONE]":
break
chunk = json.loads(payload)
if not chunk["choices"]:
print("\nusage:", chunk["usage"]) # 最后一个 chunk 才有 usage
continue
delta = chunk["choices"][0]["delta"]
if delta.get("reasoning_content"):
print(delta["reasoning_content"], end="", flush=True)
elif delta.get("content"):
print(delta["content"], end="", flush=True)
参数表
| 字段 | 必填 | 取值 | 说明 |
|---|---|---|---|
| model | 是 | grok-4.7 | 固定写这个 ID |
| messages | 是 | OpenAI 格式消息数组 | system / user / assistant / tool 角色都支持 |
| reasoning_effort | 否 | low / medium / high / xhigh,默认 high | 推理强度;思考过程在 reasoning_content 回传 |
| max_tokens | 否 | 正整数 | 输出上限,包含 reasoning tokens,设小了会先截断思考 |
| response_format | 否 | {"type": "json_object"} | 强制输出合法 JSON,适合结构化抽取 |
| tools | 否 | OpenAI function calling 数组 | 工具调用,支持多轮 tool 结果回传 |
| stream | 否 | true / false,默认 false | SSE 流式;usage 在最后一个 chunk |
你会遇到的报错
从其他模型迁代码时最容易踩的坑:grok-4.7 不支持 frequency_penalty、presence_penalty、stop 三个参数,带了会直接 400。reasoning_effort 只认 low / medium / high / xhigh 四档,写错值接口会原样返回 reasoning_effort: is outside allowed values;协议之外的字段也传不进去,我们探测时加了一个未注册字段,接口返回 request.zz: unregistered public parameter。
处理办法很简单:删掉这三个参数、把档位写对,重发。其他 4xx 先看 error.code 再动代码,别猜。
上线前注意
- reasoning tokens 按输出计费。
high档一次回答可能包含上万 token 的思考过程,它们按 $2.52/M 计入账单。简单任务把reasoning_effort降到low或medium,是最直接的省钱开关;usage.completion_tokens_details.reasoning_tokens可以单独核对这个数。 - 200K 整请求跳档。prompt 达到 200K tokens(合同阈值 199,999)后,整笔请求按长文价计:输入 $1.68 / 输出 $5.04 / 缓存读 $0.42,是常规档的两倍。常规流量保持在 200K 以下,别把整库代码无脑塞进去。
- 缓存读只要正价的四分之一。重复的长 system prompt 和多轮会话前缀会自动命中缓存,缓存读 $0.21/M(正价 $0.84/M 的四分之一)。做 agent 循环时保持前缀稳定,账单会明显好看。
常见问题
Grok 4.7 和 Grok 4.6 怎么选? 平台价完全一样($0.84/$2.52)。复杂编码和 agentic 任务选 4.7(官方默认推荐),简单任务想省 token 可以留 4.6。详细对照见 Grok 4.7 vs Grok 4.6。
支持流式输出吗?
支持,标准 SSE。注意 usage 只在最后一个 chunk 里返回,前面 chunk 的 usage 都是空的。
reasoning_content 要额外付费吗? 不用单独开开关,但它产生的 reasoning tokens 计入输出用量、按输出价计费,所以档位越高账单越厚。
上下文 500K 是输入上限吗? 500K 是输入加输出合计的窗口。输入接近 200K 时会触发长文价,详见上面「上线前注意」。
想继续深入:价格算账看 Grok 4.7 API 多少钱,5 个可直接复制的场景提示词看 Grok 4.7 提示词大全,上一代的用法见 Grok 4.6 模型页。复制上面的 pandas 提示词,去 模型页 跑你的第一次调用。





