搜索

搜索 HiAPI 模型、工具和资源。

返回博客
教程5 分钟阅读

如何通过 hiapi API 调用 gpt-6-luna:curl、Python 与可运行请求

Chat Completions 与 Responses 两种接法,流式、工具调用、严格 JSON、推理档位的实测请求,以及实际复现的报错。

hiapigpt-6-lunaAPI 接入大语言模型

要做什么

在 hiapi 上跑通一条 gpt-6-luna 请求:一条 curl,一个 Python 客户端,再讲几个和其他 GPT-6 模型表现不同的参数。你需要一个 API key,在控制台创建,快速开始里有 key 的配置说明。下面所有请求和响应都在 2026-10-30 对线上接口实际跑过。

先确认模型 id

curl -s https://api.hiapi.ai/v1/models -H "Authorization: Bearer $HIAPI_API_KEY" \
  | python3 -c "import sys,json; print([m['id'] for m in json.load(sys.stdin)['data'] if 'luna' in m['id']])"

输出:['gpt-5.6-luna', 'gpt-6-luna']。请原样使用 gpt-6-luna,不带 .1(gpt-6.1-sol 和 gpt-6.1-terra 才带)。gpt-5.6-luna 是另一个更早的模型。模型页在 gpt-6-luna。

最小请求:Chat Completions

curl -s https://api.hiapi.ai/v1/chat/completions \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-6-luna","messages":[{"role":"user","content":"Reply with exactly: luna ok"}]}'

真实响应(只保留关键字段):

{"model":"gpt-6-luna","object":"chat.completion",
 "choices":[{"index":0,"message":{"role":"assistant","content":"luna ok"},"finish_reason":"stop"}],
 "usage":{"prompt_tokens":12,"completion_tokens":7,"total_tokens":19}}

这条路由不需要传 stream。这是它和下面 Responses 路由最实际的区别。已有的 OpenAI 兼容代码,改 base URL 和 key 就能接。

Python(只用标准库)

import json, os, urllib.request

req = urllib.request.Request(
    "https://api.hiapi.ai/v1/chat/completions",
    data=json.dumps({
        "model": "gpt-6-luna",
        "messages": [
            {"role": "system", "content": "用一句话回答。"},
            {"role": "user", "content": "100 万 token 的上下文窗口适合做什么?"},
        ],
    }).encode(),
    headers={
        "Authorization": "Bearer " + os.environ["HIAPI_API_KEY"],
        "Content-Type": "application/json",
    },
)
r = json.load(urllib.request.urlopen(req, timeout=90))
print(r["choices"][0]["message"]["content"])
print(r["usage"]["prompt_tokens"], r["usage"]["completion_tokens"])

timeout 建议留足,推理档位高时单次请求耗时会明显变长。Luna 是推理模型,默认档位是 medium,一句话的回答也可能消耗远多于可见文字的 completion token,详见下面「推理档位和计费」。

流式输出

Chat 路由传 stream: true 即得到标准的 chat.completion.chunk SSE 流:

curl -sN https://api.hiapi.ai/v1/chat/completions \
  -H "Authorization: Bearer $HIAPI_API_KEY" -H "Content-Type: application/json" \
  -d '{"model":"gpt-6-luna","stream":true,"stream_options":{"include_usage":true},
       "messages":[{"role":"user","content":"Say hi"}]}'

实测首个 chunk 的 delta 是空内容加 role:"assistant",之后才是 "Hi"。解析时不要假设第一个 chunk 就有文字。

Responses 路由(必须流式)

/v1/responses 也能用,但有两个限制,我都直接撞到过:

curl -sN https://api.hiapi.ai/v1/responses \
  -H "Authorization: Bearer $HIAPI_API_KEY" -H "Content-Type: application/json" \
  -d '{"model":"gpt-6-luna","stream":true,"instructions":"Be terse.",
       "reasoning":{"effort":"low"},
       "input":[{"role":"user","content":"Name one use for a 1M context window."}]}'
import json, os, subprocess

body = {"model": "gpt-6-luna", "stream": True, "reasoning": {"effort": "low"},
        "input": [{"role": "user", "content": "Name one use for a 1M context window."}]}
out = subprocess.run(
    ["curl", "-sN", "https://api.hiapi.ai/v1/responses",
     "-H", "Authorization: Bearer " + os.environ["HIAPI_API_KEY"],
     "-H", "Content-Type: application/json", "-d", json.dumps(body)],
    capture_output=True, text=True, timeout=120).stdout
for line in out.splitlines():
    if line.startswith("data:"):
        ev = json.loads(line[5:])
        if ev.get("type") == "response.completed":
            r = ev["response"]
            print(r["output"][-1]["content"][0]["text"], r["usage"])

本次结果:模型回答 Analyzing an entire codebase at once.,usage 为 input_tokens 24, output_tokens 13, reasoning_tokens 0。用量只在最后的 response.completed 事件里给出,需要计费统计就必须读到流的末尾。

Chat 和 Responses 怎么选

行为(2026-10-30 实测)/v1/chat/completions/v1/responses
不传 stream200,正常 JSON400 invalid_parameter,"stream: must be true"
stream: true200,chat.completion.chunk SSE200,SSE 事件,以 response.completed 结束
input 传字符串不适用(用 messages)400 invalid_parameter,"input: has incorrect type",必须用数组

已有 OpenAI 兼容代码用 Chat 路由最省事。如果你本来就在用 Responses 的请求结构,再选 Responses。

工具调用和 JSON 输出

Chat 路由支持函数调用。给一个 get_weather(city) 工具,提问 "Weather in Paris?":

"message":{"role":"assistant","content":"","tool_calls":[{"type":"function",
  "function":{"name":"get_weather","arguments":"{\"city\":\"Paris\"}"}}]},
"finish_reason":"tool_calls"

注意触发工具调用时 content 是空字符串,finish_reason 是 tool_calls,业务代码要先判断 tool_calls 再取文字。

严格 JSON 模式也可用。传 response_format: {"type":"json_schema", ... "strict":true},schema 含 city、country 两个必填字段并设 additionalProperties:false,提问 "Give a city and country for the Eiffel Tower.",返回内容恰好是 {"city":"Paris","country":"France"}。

我只测了单轮工具调用,没有测把工具结果回传的第二轮,也没有测并行工具调用。

推理档位和计费

定价接口里 reasoning_effort 有六档:none、low、medium(默认)、high、xhigh、max。同一个提示词("What is 17*23? Answer with the number only."),答案都是 391:

reasoning_effortcompletion tokensreasoning tokens耗时
none504.5 秒
high20134.3 秒

reasoning token 计入 completion token,所以一个很短的回答,计费量也可能高于可见文字。做信息抽取、分类、摘要这类任务,建议先用 none 或 low 试。我只测了这一道算术题,它说明的是计费机制,不能当作质量对比。这道题上两档耗时差异也在波动范围内,不能据此判断哪档更快。

Luna、Sol、Terra 怎么选

数据来自 2026-10-30 的线上 /api/pricing,当前价格以定价页为准:

  • 成本:Luna 的标准输入、输出单价约为 gpt-6.1-terra 的 1/10,约为 gpt-6.1-sol 的 1/20。
  • 上下文:三者都标注 1,050,000 token 上下文。输入超过 272,000 token 后 Luna 进入更高一档,输入单价翻倍,输出单价上涨一半。
  • 定位:按模型页描述,Luna 面向摘要、信息抽取、快速问答等高频批量任务;Terra 偏视觉推理和计算机操作;Sol 偏复杂编程和多步专业工作。
  • 延迟:我没有测出 Luna 更快。同一条 "Reply with exactly: luna ok" 请求在 Chat 路由上耗时约 5.1 秒。每个模型只有一个样本,只能当噪声看。选 Luna 的理由是价格,除非你自己的基准测试显示它更快。

我没有做三个模型之间的输出质量对比,所以本文不下这个结论。

我复现过的错误

  • key 无效:HTTP 401,permission_denied,提示 "This API key is invalid.",响应里带 request_id,联系支持时提供它。
  • 模型 id 写错(gpt-6-lunaa):HTTP 400,model_not_found,提示用 GET /v1/models 核对 id。
  • Responses 路由不传 stream:true,或 input 传字符串:就是上面表格里的两个 400。

需要小心的参数

  • 定价接口的参数约定里 temperature、top_p 标记为禁用。Chat 路由传 temperature: 0.2 返回了 200,但我没有验证它是否真的改变采样。需要确定性输出时不要依赖它。
  • 参数约定里 max_output_tokens 标记为禁用,但 Chat 路由上 max_tokens: 1 实测返回 finish_reason: "length" 且只产出 1 个 completion token,说明实际生效。reasoning token 同样计入上限,所以上限很小且推理档位高时,可能返回空内容。
  • 我没有测图片输入、接近 100 万 token 的超长输入,也没有测持续高并发。

相关阅读

常见问题

gpt-6-luna 的模型 id 是什么? gpt-6-luna,以 GET /v1/models 返回为准。

gpt-6-luna 必须流式吗? 只有 /v1/responses 必须。/v1/chat/completions 传不传 stream 都行。

支持工具调用和 JSON 输出吗? 支持。单轮函数调用和严格 json_schema 输出实测都成功。

多少钱? 按 token 计费,输入超过 272,000 token 后进入更高一档。具体见定价页。

现在就用 HiAPI 生成

选一个模型,输入你的提示词,直接查看生成结果。

HiAPI Blog

相关文章

HiAPI

现在就用 HiAPI 生成

开始生成