Skip to content

Curl 调用示例

当你不确定工具配置是否正确时,最稳妥的方式是先用 curl 直接测试 Waihub 接口。

提示

这里使用的密钥来自 Waihub 后台的“令牌管理”。为了安全,文档示例中只保留脱敏后的占位值,不展示真实密钥。

调用方式

bash
curl -N https://waihub.top/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxx" \
  -d '{
    "model": "gpt-5.4",
    "stream": true,
    "messages": [
      {
        "role": "user",
        "content": "你是什么模型"
      }
    ]
  }'

这是我实际验证过可以持续返回文本内容的写法。返回会是 SSE 数据流,正文在每条 data: 里的 choices[0].delta.content 中。

当前结论

  • gpt-5.4 当前可用的 curl 写法是:Bearer + stream: true
  • claude-sonnet-4-6 当前可用的 curl 写法是:直接传 Authorization: sk-...,并使用非流式 chat/completions
  • GPT-5.4 Stream 可以正常看到 delta.content
  • claude-sonnet-4-6 在非流式 chat/completions 下可以直接返回完整文本

GPT-5.4 Stream 返回片段

下面是我实际验证得到的脱敏返回片段:

text
data: {"choices":[{"delta":{"role":"assistant","content":"我是"}}]}
data: {"choices":[{"delta":{"role":"assistant","content":" Open"}}]}
data: {"choices":[{"delta":{"role":"assistant","content":"AI"}}]}
data: {"choices":[{"delta":{"role":"assistant","content":" 的"}}]}
data: [DONE]

Claude 非流式返回示例

下面是按真实调用结果整理后的脱敏返回示例:

json
{
  "id": "req_xxxxxxxxxxxxxxxxxxxxxxxx",
  "object": "chat.completion",
  "created": 0,
  "model": "claude-sonnet-4-6",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "你好!很高兴见到你!有什么我可以帮助你的吗?",
        "reasoning_content": null,
        "tool_calls": null
      },
      "finish_reason": "stop",
      "native_finish_reason": "stop"
    }
  ],
  "usage": {
    "completion_tokens": 31,
    "total_tokens": 41,
    "prompt_tokens": 10
  }
}

注意

不同模型在当前 Waihub / newapi 链路上的可用调用方式并不完全一样。gpt-5.4 目前建议走流式,而 claude-sonnet-4-6 可以直接走非流式。

你应该确认的内容

  • HTTP 状态码是否为 200
  • 当前模型对应的 Authorization 写法是否正确
  • gpt-5.4 是否显式设置了 "stream": true
  • 如果走 gpt-5.4,是否能在 delta.content 里看到文本
  • 如果走 claude-sonnet-4-6,是否能直接在 message.content 里拿到文本
  • 调用的模型名是否为 Waihub 当前实际支持的名称

推荐用途

  • 首次验证 API Key 是否生效
  • 排查第三方客户端配置错误
  • 测试新模型是否已经可调用
  • 判断当前模型在该中转上是否必须依赖流式返回

Waihub Documentation