Skip to content

cURL 示例

所有 kukuai.fyi API 都可以直接用 cURL 调用,方便快速验证、写 shell 脚本或在 CI 里做健康检查。

所有 kukuai.fyi API 都可以直接用 cURL 调用,方便快速验证、写 shell 脚本或在 CI 里做健康检查。

把环境准备好,确认 API Key 与网络都没问题:

将下方脚本里的 sk-xxx 替换为你在 https://kukuai.fyi 控制台创建的 API Key。

check.shbash

# 1. 准备 API Key
export KUKUAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx

# 2. 检查 API 是否可达(鉴权 + 网络)
curl -s -o /dev/null -w "%{http_code}\n" \
  https://www.kukuai.fyi/api-proxy/china/v1/models \
  -H "Authorization: Bearer $KUKUAI_API_KEY"
# 期望输出:200

列模型

组合 jq 提取 ID,便于在脚本中按需挑选:

bash

curl https://www.kukuai.fyi/api-proxy/china/v1/models \
  -H "Authorization: Bearer $KUKUAI_API_KEY" | jq '.data[].id'

调用 chat/completions

bash

curl https://www.kukuai.fyi/api-proxy/china/v1/chat/completions \
  -H "Authorization: Bearer $KUKUAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-7",
    "messages": [
      {"role": "system", "content": "You are a concise assistant."},
      {"role": "user", "content": "用 30 字介绍一下 kukuai.fyi"}
    ]
  }'

响应字段与 OpenAI 一致;完整字段定义见 POST /v1/chat/completions

流式响应

bash

# -N 关闭输出缓冲,按行实时打印 SSE
curl -N https://www.kukuai.fyi/api-proxy/china/v1/chat/completions \
  -H "Authorization: Bearer $KUKUAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-7",
    "stream": true,
    "messages": [{"role": "user", "content": "讲一个关于 API 网关的冷笑话"}]
  }'

退避重试脚本

生产场景中务必处理 429 / 5xx。下面是一个最小可运行的 bash 重试模板,方便嵌入 CI 或排障会话:

call.shbash

#!/usr/bin/env bash
# 简单的 429/5xx 退避重试示例
set -euo pipefail

call() {
  curl -sS -w "\n%{http_code}" \
    https://www.kukuai.fyi/api-proxy/china/v1/chat/completions \
    -H "Authorization: Bearer $KUKUAI_API_KEY" \
    -H "Content-Type: application/json" \
    -d "$1"
}

PAYLOAD='{"model":"claude-opus-4-7","messages":[{"role":"user","content":"hi"}]}'

for i in 1 2 3; do
  RESP=$(call "$PAYLOAD")
  CODE=$(echo "$RESP" | tail -n1)
  BODY=$(echo "$RESP" | sed '$d')

  if [ "$CODE" -lt 400 ]; then
    echo "$BODY"
    exit 0
  fi

  # 仅对可重试错误做退避
  case "$CODE" in
    408|429|500|502|503|504)
      sleep $((2 ** (i - 1)))
      ;;
    *)
      echo "Non-retryable error $CODE: $BODY" >&2
      exit 1
      ;;
  esac
done

echo "Exhausted retries" >&2
exit 1

关于错误码与各自的处理建议,请参阅 错误码 页。

统一 API 网关 · OpenAI Compatible