帮助中心 返回首页
返回首页

大模型 API 使用指南

概述

NextAI Code 提供与 OpenAI 和 Anthropic SDK 完全兼容的大模型 API,支持文本对话、多模态输入、工具调用、流式输出等功能。

使用场景

场景 说明
开发自己的应用 构建聊天机器人、AI 助手、智能客服等产品
集成到现有系统 将 AI 能力嵌入 ERP、CRM、内部工具等
批量自动化处理 脚本批量翻译、摘要生成、数据处理等
配置第三方工具 支持 OpenAI/Anthropic API 的其他工具

兼容格式

兼容格式 端点 适用场景
OpenAI SDK /v1/chat/completions GPT 系列、通用对话
Anthropic SDK /v1/messages Claude 系列、扩展思考

提示:两种格式可以混用,根据你的 SDK 偏好和模型需求选择。


认证

所有请求需携带 API Key。访问 令牌管理页面 创建新令牌(以 sk- 开头)。

OpenAI 格式

Authorization: Bearer sk-xxxxx

Anthropic 格式

x-api-key: sk-xxxxx
anthropic-version: 2023-06-01

注意:Anthropic 格式也支持 Authorization: Bearer 方式。


支持的模型

获取模型列表

GET https://www.nextai-code.com/v1/models

响应示例

{
  "object": "list",
  "data": [
    {"id": "gpt-4o", "object": "model", "owned_by": "openai"},
    {"id": "claude-sonnet-4-20250514", "object": "model", "owned_by": "anthropic"}
  ]
}

获取单个模型

GET https://www.nextai-code.com/v1/models/{model_id}

OpenAI 格式 API

端点信息

属性
URL POST https://www.nextai-code.com/v1/chat/completions
认证 Bearer Token
Content-Type application/json

请求参数

参数 类型 必填 说明
model string 模型名称
messages array 消息列表
stream boolean 流式输出
max_tokens integer 最大输出 token
max_completion_tokens integer 最大输出 token(优先级高于 max_tokens)
temperature float 温度 (0-2)
top_p float 核采样 (0-1)
top_k integer Top-K 采样
n integer 生成数量
stop string/array 停止序列(最多 4 个)
frequency_penalty float 频率惩罚 (-2 到 2)
presence_penalty float 存在惩罚 (-2 到 2)
seed integer 随机种子
logprobs boolean 返回对数概率
top_logprobs integer 返回 top N 对数概率 (0-20)
tools array 工具定义
tool_choice string/object 工具选择策略
parallel_tool_calls boolean 允许并行工具调用
response_format object 响应格式
stream_options object 流式选项
reasoning_effort string 推理强度(推理模型专用)

消息格式

文本消息

{"role": "system", "content": "You are a helpful assistant."}
{"role": "user", "content": "Hello!"}
{"role": "assistant", "content": "Hi there!"}

多模态消息

{
  "role": "user",
  "content": [
    {"type": "text", "text": "描述这张图片"},
    {"type": "image_url", "image_url": {"url": "https://...", "detail": "high"}}
  ]
}

支持的内容类型

type 说明
text 文本
image_url 图片 URL 或 Base64
input_audio 音频 Base64
video_url 视频 URL
file 文件

工具调用

定义工具

{
  "model": "gpt-4o",
  "messages": [{"role": "user", "content": "北京天气如何?"}],
  "tools": [{
    "type": "function",
    "function": {
      "name": "get_weather",
      "description": "获取天气信息",
      "parameters": {
        "type": "object",
        "properties": {
          "location": {"type": "string", "description": "城市名"}
        },
        "required": ["location"]
      }
    }
  }]
}

模型返回工具调用

{
  "choices": [{
    "message": {
      "role": "assistant",
      "tool_calls": [{
        "id": "call_xxx",
        "type": "function",
        "function": {"name": "get_weather", "arguments": "{\"location\":\"北京\"}"}
      }]
    },
    "finish_reason": "tool_calls"
  }]
}

传回工具结果

收到 finish_reason: "tool_calls" 后,调用工具并传回结果:

{
  "model": "gpt-4o",
  "messages": [
    {"role": "user", "content": "北京天气如何?"},
    {"role": "assistant", "content": null, "tool_calls": [
      {"id": "call_xxx", "type": "function", "function": {"name": "get_weather", "arguments": "{\"location\":\"北京\"}"}}
    ]},
    {"role": "tool", "tool_call_id": "call_xxx", "content": "北京今天晴,25°C"}
  ]
}

响应格式

非流式响应

{
  "id": "chatcmpl-xxx",
  "object": "chat.completion",
  "created": 1734567890,
  "model": "gpt-4o",
  "choices": [{
    "index": 0,
    "message": {"role": "assistant", "content": "你好!"},
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 5,
    "total_tokens": 15
  }
}

流式响应

设置 stream: true

data: {"id":"chatcmpl-xxx","choices":[{"index":0,"delta":{"role":"assistant"}}]}

data: {"id":"chatcmpl-xxx","choices":[{"index":0,"delta":{"content":"你"}}]}

data: {"id":"chatcmpl-xxx","choices":[{"index":0,"delta":{"content":"好"}}]}

data: {"id":"chatcmpl-xxx","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: [DONE]

提示:设置 stream_options: {"include_usage": true} 可在流式响应最后获取 usage 信息。

推理模型

以下模型支持深度推理功能:

模型系列 模型示例
o 系列 o1, o1-mini, o3, o3-mini, o4-mini
GPT-5 系列 gpt-5, gpt-5.1, gpt-5.2

reasoning_effort 参数

说明 适用场景
none 不使用推理 简单问答
minimal 极少推理 延迟敏感场景
low 轻度推理 简单问题
medium 中度推理 一般问题
high 深度推理 复杂推理、数学证明
xhigh 最深度推理 极复杂问题(GPT-5.2+)

请求示例

{
  "model": "gpt-5.2",
  "messages": [{"role": "user", "content": "证明根号2是无理数"}],
  "reasoning_effort": "high"
}

响应示例

{
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "我来证明根号2是无理数...(最终答案)",
      "reasoning_content": "让我思考这个问题...(推理过程)"
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 500,
    "completion_tokens_details": {"reasoning_tokens": 400}
  }
}

推理模型限制

推理模型不支持以下参数:

不支持的参数 替代方案
temperature 使用 reasoning_effort
top_p 不适用
presence_penalty 不适用
frequency_penalty 不适用
logprobs / top_logprobs 不适用
max_tokens 使用 max_completion_tokens

注意:传入不支持的参数会返回错误。


Anthropic 格式 API

端点信息

属性
URL POST https://www.nextai-code.com/v1/messages
认证 x-api-key 或 Bearer Token
Content-Type application/json

与 OpenAI 格式的差异

特性 OpenAI 格式 Anthropic 格式
系统提示词 messagesrole: "system" 独立的 system 参数
max_tokens 可选参数 必填参数
温度范围 0-2 0-1
图片格式 image_url.url source.datasource.url
工具定义 parameters input_schema
停止原因 finish_reason: "stop" stop_reason: "end_turn"

请求参数

参数 类型 必填 说明
model string 模型名称
max_tokens integer 最大输出 token
messages array 消息列表
system string/array 系统提示词
temperature float 温度 (0-1)
top_p float 核采样
top_k integer Top-K 采样
stream boolean 流式输出
stop_sequences array 停止序列
tools array 工具定义
tool_choice object 工具选择策略
thinking object 扩展思考配置
metadata object 元数据

消息格式

文本消息

{"role": "user", "content": "Hello!"}
{"role": "assistant", "content": "Hi!"}

多模态消息

Base64 格式

{
  "role": "user",
  "content": [
    {"type": "text", "text": "描述这张图片"},
    {
      "type": "image",
      "source": {
        "type": "base64",
        "media_type": "image/jpeg",
        "data": "/9j/4AAQ..."
      }
    }
  ]
}

URL 格式

{
  "type": "image",
  "source": {
    "type": "url",
    "url": "https://example.com/image.jpg"
  }
}

提示缓存 (Prompt Caching)

提示缓存允许缓存大量上下文,在后续请求中复用,节省约 90% 的输入成本

缓存配置

TTL 说明 写入成本 读取成本
5m 5 分钟(默认) 125% 10%
1h 1 小时 200% 10%

提示:每次缓存命中会重置计时器。请求频率高于 5 分钟一次推荐使用默认 5 分钟缓存。

最小缓存长度

模型 最小 token 数
Claude Opus 4/4.1, Sonnet 4/4.5 1024 tokens
Claude Haiku 4.5 4096 tokens
Claude Haiku 3/3.5 2048 tokens

使用示例

{
  "role": "user",
  "content": [
    {
      "type": "text",
      "text": "这是一段很长的参考文档...",
      "cache_control": {"type": "ephemeral", "ttl": "1h"}
    },
    {
      "type": "text",
      "text": "请根据上述文档回答:xxx"
    }
  ]
}

响应中的缓存统计

{
  "usage": {
    "input_tokens": 100,
    "output_tokens": 50,
    "cache_creation_input_tokens": 2048,
    "cache_read_input_tokens": 0
  }
}

扩展思考 (Extended Thinking)

扩展思考让模型在回答前进行深度推理,适合复杂数学、代码分析、策略规划等任务。

请求示例

{
  "model": "claude-sonnet-4-20250514",
  "max_tokens": 16000,
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  },
  "messages": [{"role": "user", "content": "分析这段代码的时间复杂度并优化"}]
}

提示budget_tokens 最小 1024,最大 128000。从 1024 开始测试,根据任务复杂度逐步增加。

响应示例

{
  "content": [
    {
      "type": "thinking",
      "thinking": "让我分析这段代码...时间复杂度是O(n²)..."
    },
    {
      "type": "text",
      "text": "这段代码的时间复杂度是 O(n²),建议使用哈希表优化..."
    }
  ],
  "stop_reason": "end_turn"
}

扩展思考限制

限制 说明
不兼容 temperature 扩展思考时不能设置
不兼容 top_k 扩展思考时不能使用
top_p 受限 只能设置为 0.95-1.0
工具调用限制 仅支持 autonone

工具调用

定义工具

{
  "model": "claude-sonnet-4-20250514",
  "max_tokens": 1024,
  "tools": [{
    "name": "get_weather",
    "description": "获取天气信息",
    "input_schema": {
      "type": "object",
      "properties": {
        "location": {"type": "string", "description": "城市名称"}
      },
      "required": ["location"]
    }
  }],
  "messages": [{"role": "user", "content": "北京天气如何?"}]
}

模型返回工具调用

{
  "content": [{
    "type": "tool_use",
    "id": "toolu_xxx",
    "name": "get_weather",
    "input": {"location": "北京"}
  }],
  "stop_reason": "tool_use"
}

传回工具结果

{
  "messages": [
    {"role": "user", "content": "北京天气如何?"},
    {"role": "assistant", "content": [
      {"type": "tool_use", "id": "toolu_xxx", "name": "get_weather", "input": {"location": "北京"}}
    ]},
    {"role": "user", "content": [
      {"type": "tool_result", "tool_use_id": "toolu_xxx", "content": "北京今天晴,25°C"}
    ]}
  ]
}

工具选择策略

tool_choice 说明
{"type": "auto"} 模型自动决定(默认)
{"type": "any"} 强制调用任意工具
{"type": "tool", "name": "xxx"} 强制调用指定工具
{"type": "none"} 禁止调用工具

响应格式

非流式响应

{
  "id": "msg_xxx",
  "type": "message",
  "role": "assistant",
  "content": [{"type": "text", "text": "你好!"}],
  "model": "claude-sonnet-4-20250514",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 10,
    "output_tokens": 5
  }
}

流式响应

event: message_start
data: {"type":"message_start","message":{"id":"msg_xxx","role":"assistant"}}

event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"你好"}}

event: content_block_stop
data: {"type":"content_block_stop","index":0}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":5}}

event: message_stop
data: {"type":"message_stop"}

示例代码

Python - OpenAI SDK

from openai import OpenAI

client = OpenAI(
    api_key="sk-xxxxx",
    base_url="https://www.nextai-code.com/v1"
)

# 基础对话
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "你好"}]
)
print(response.choices[0].message.content)

# 流式输出
stream = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "讲个故事"}],
    stream=True
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Python - Anthropic SDK

import anthropic

client = anthropic.Anthropic(
    api_key="sk-xxxxx",
    base_url="https://www.nextai-code.com"
)

# 基础对话
message = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    messages=[{"role": "user", "content": "你好"}]
)
print(message.content[0].text)

# 带缓存的对话
message = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    system=[{
        "type": "text",
        "text": "你是专业助手...",
        "cache_control": {"type": "ephemeral"}
    }],
    messages=[{"role": "user", "content": "问题"}]
)
print(f"缓存创建: {message.usage.cache_creation_input_tokens}")
print(f"缓存命中: {message.usage.cache_read_input_tokens}")

cURL

OpenAI 格式

curl https://www.nextai-code.com/v1/chat/completions \
  -H "Authorization: Bearer sk-xxxxx" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-4o","messages":[{"role":"user","content":"你好"}]}'

Anthropic 格式

curl https://www.nextai-code.com/v1/messages \
  -H "x-api-key: sk-xxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-sonnet-4-20250514","max_tokens":1024,"messages":[{"role":"user","content":"你好"}]}'

JavaScript

const response = await fetch('https://www.nextai-code.com/v1/chat/completions', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sk-xxxxx',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'gpt-4o',
    messages: [{role: 'user', content: '你好'}]
  })
});
const data = await response.json();
console.log(data.choices[0].message.content);

错误处理

HTTP 状态码

状态码 说明 处理建议
400 请求参数错误 检查请求体格式
401 认证失败 检查 API Key
403 权限不足 确认账户权限
429 请求频率超限 降低请求频率
500 服务器错误 稍后重试

OpenAI 格式错误响应

{
  "error": {
    "message": "错误描述",
    "type": "invalid_request_error",
    "param": "model",
    "code": "model_not_found"
  }
}

Anthropic 格式错误响应

{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "错误描述"
  }
}