Swape.AISwape.AI Docs

cURL

使用 cURL 直接调用 OpenModel 支持的所有 API 格式

cURL 是测试和调用 OpenModel API 最简单的方式。无需安装任何 SDK,直接在命令行中操作。

准备工作

将 API Key 设置为环境变量,避免在每条命令中重复输入:

export OPENMODEL_API_KEY="om-your-api-key"

OpenAI 格式(Responses API)

基础请求

curl https://api.openmodel.ai/v1/responses \
  -H "Authorization: Bearer $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "input": "生命的意义是什么?"
  }'

流式响应

使用 -N 参数(或 --no-buffer)禁用输出缓冲,实时查看事件流:

curl -N https://api.openmodel.ai/v1/responses \
  -H "Authorization: Bearer $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "input": "写一首关于海洋的诗。",
    "stream": true
  }'

带系统指令

curl https://api.openmodel.ai/v1/responses \
  -H "Authorization: Bearer $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "instructions": "你是一个说话像海盗的助手。",
    "input": "给我讲讲天气。"
  }'

多轮对话

curl https://api.openmodel.ai/v1/responses \
  -H "Authorization: Bearer $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "input": [
      {"role": "user", "content": "我叫小明。"},
      {"role": "assistant", "content": "你好小明!有什么可以帮你的吗?"},
      {"role": "user", "content": "我叫什么名字?"}
    ]
  }'

Anthropic 格式(Messages API)

基础请求

curl https://api.openmodel.ai/v1/messages \
  -H "x-api-key: $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "用一个简单的例子解释递归。"}
    ]
  }'

流式响应

curl -N https://api.openmodel.ai/v1/messages \
  -H "x-api-key: $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 1024,
    "stream": true,
    "messages": [
      {"role": "user", "content": "写一篇关于人工智能的短文。"}
    ]
  }'

带系统提示词

curl https://api.openmodel.ai/v1/messages \
  -H "x-api-key: $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 1024,
    "system": "你是一位简洁的技术写手。请用要点回答。",
    "messages": [
      {"role": "user", "content": "TypeScript 相比 JavaScript 有哪些优势?"}
    ]
  }'

Token 计数

curl https://api.openmodel.ai/v1/messages/count_tokens \
  -H "x-api-key: $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "messages": [
      {"role": "user", "content": "这条消息有多少个 token?"}
    ]
  }'

Gemini 格式

基础请求

curl "https://api.openmodel.ai/v1beta/models/gemini-2.0-flash:generateContent?key=$OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {"parts": [{"text": "解释相对论。"}]}
    ]
  }'

流式响应

使用 streamGenerateContent 端点并添加 alt=sse 参数:

curl -N "https://api.openmodel.ai/v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key=$OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {"parts": [{"text": "写一个关于时间旅行者的故事。"}]}
    ]
  }'

多轮对话

curl "https://api.openmodel.ai/v1beta/models/gemini-2.0-flash:generateContent?key=$OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {"role": "user", "parts": [{"text": "2 + 2 等于多少?"}]},
      {"role": "model", "parts": [{"text": "2 + 2 = 4。"}]},
      {"role": "user", "parts": [{"text": "再乘以 3。"}]}
    ]
  }'

带系统指令

curl "https://api.openmodel.ai/v1beta/models/gemini-2.0-flash:generateContent?key=$OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "systemInstruction": {
      "parts": [{"text": "你是一个编程助手。"}]
    },
    "contents": [
      {"parts": [{"text": "写一个 Python 函数来反转字符串。"}]}
    ]
  }'

使用 jq 解析响应

jq 是一个命令行 JSON 处理器,可以方便地从 API 响应中提取特定字段。

# 提取 OpenAI 响应文本
curl -s https://api.openmodel.ai/v1/responses \
  -H "Authorization: Bearer $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "input": "用 3 种语言说你好。"
  }' | jq -r '.output[] | select(.type == "message") | .content[] | .text'

# 提取 Anthropic 响应文本
curl -s https://api.openmodel.ai/v1/messages \
  -H "x-api-key: $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "用 3 种语言说你好。"}
    ]
  }' | jq -r '.content[0].text'

# 提取 Gemini 响应文本
curl -s "https://api.openmodel.ai/v1beta/models/gemini-2.0-flash:generateContent?key=$OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {"parts": [{"text": "用 3 种语言说你好。"}]}
    ]
  }' | jq -r '.candidates[0].content.parts[0].text'

提取用量统计

# OpenAI 格式
curl -s https://api.openmodel.ai/v1/responses \
  -H "Authorization: Bearer $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "input": "你好!"
  }' | jq '.usage'

# Anthropic 格式
curl -s https://api.openmodel.ai/v1/messages \
  -H "x-api-key: $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "你好!"}]
  }' | jq '.usage'

实用技巧

保存响应到文件

curl -s https://api.openmodel.ai/v1/responses \
  -H "Authorization: Bearer $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "input": "生成一个用户资料的 JSON Schema。"
  }' > response.json

详细模式用于调试

使用 -v 查看请求和响应头信息,这在排查认证或连接问题时非常有用:

curl -v https://api.openmodel.ai/v1/responses \
  -H "Authorization: Bearer $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-4o", "input": "你好"}'

从文件加载请求体

对于复杂请求,可以将 JSON 请求体存储在文件中:

# 创建请求文件
cat > request.json << 'EOF'
{
  "model": "gpt-4o",
  "instructions": "你是一位数据分析师。",
  "input": "分析过去十年全球可再生能源的发展趋势。"
}
EOF

# 发送请求
curl https://api.openmodel.ai/v1/responses \
  -H "Authorization: Bearer $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d @request.json

设置超时

使用 --max-time 设置总超时时间,--connect-timeout 设置连接超时:

curl --max-time 120 --connect-timeout 10 \
  https://api.openmodel.ai/v1/responses \
  -H "Authorization: Bearer $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-4o", "input": "你好"}'

下一步

On this page