curl https://api.nodylink.com/v1/responses \
-H "Authorization: Bearer sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6",
"instructions": "你是一个简洁的助手。",
"input": "用一句话解释什么是 RAG。",
"reasoning": {"effort": "medium"}
}'
from openai import OpenAI
client = OpenAI(base_url="https://api.nodylink.com/v1", api_key="sk-你的密钥")
resp = client.responses.create(
model="gpt-6",
instructions="你是一个简洁的助手。",
input="用一句话解释什么是 RAG。",
reasoning={"effort": "medium"},
)
print(resp.output_text)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.nodylink.com/v1",
apiKey: "sk-你的密钥",
});
const resp = await client.responses.create({
model: "gpt-6",
instructions: "你是一个简洁的助手。",
input: "用一句话解释什么是 RAG。",
reasoning: { effort: "medium" },
});
console.log(resp.output_text);
{
"id": "resp_68f1a2b3c4d5e6f7",
"object": "response",
"created_at": 1792000000,
"status": "completed",
"model": "gpt-6",
"output": [
{
"id": "rs_68f1a2b3c4d5e6f8",
"type": "reasoning",
"summary": []
},
{
"id": "msg_68f1a2b3c4d5e6f9",
"type": "message",
"role": "assistant",
"status": "completed",
"content": [
{
"type": "output_text",
"text": "RAG(检索增强生成)是先从知识库检索相关资料,再让模型基于这些资料生成回答的方法。",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 26,
"input_tokens_details": {"cached_tokens": 0},
"output_tokens": 188,
"output_tokens_details": {"reasoning_tokens": 128},
"total_tokens": 214
}
}
event: response.created
data: {"type":"response.created","response":{"id":"resp_68f1a2b3c4d5e6f7","status":"in_progress"}}
event: response.output_text.delta
data: {"type":"response.output_text.delta","item_id":"msg_68f1a2b3c4d5e6f9","output_index":1,"content_index":0,"delta":"RAG"}
event: response.output_text.done
data: {"type":"response.output_text.done","item_id":"msg_68f1a2b3c4d5e6f9","output_index":1,"content_index":0,"text":"RAG(检索增强生成)是……"}
event: response.completed
data: {"type":"response.completed","response":{"id":"resp_68f1a2b3c4d5e6f7","status":"completed","usage":{"input_tokens":26,"output_tokens":188,"total_tokens":214}}}
文本对话系列
Responses 接口
兼容 OpenAI Responses API,适用于推理模型、工具调用和 Codex CLI。
POST
/
v1
/
responses
curl https://api.nodylink.com/v1/responses \
-H "Authorization: Bearer sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6",
"instructions": "你是一个简洁的助手。",
"input": "用一句话解释什么是 RAG。",
"reasoning": {"effort": "medium"}
}'
from openai import OpenAI
client = OpenAI(base_url="https://api.nodylink.com/v1", api_key="sk-你的密钥")
resp = client.responses.create(
model="gpt-6",
instructions="你是一个简洁的助手。",
input="用一句话解释什么是 RAG。",
reasoning={"effort": "medium"},
)
print(resp.output_text)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.nodylink.com/v1",
apiKey: "sk-你的密钥",
});
const resp = await client.responses.create({
model: "gpt-6",
instructions: "你是一个简洁的助手。",
input: "用一句话解释什么是 RAG。",
reasoning: { effort: "medium" },
});
console.log(resp.output_text);
{
"id": "resp_68f1a2b3c4d5e6f7",
"object": "response",
"created_at": 1792000000,
"status": "completed",
"model": "gpt-6",
"output": [
{
"id": "rs_68f1a2b3c4d5e6f8",
"type": "reasoning",
"summary": []
},
{
"id": "msg_68f1a2b3c4d5e6f9",
"type": "message",
"role": "assistant",
"status": "completed",
"content": [
{
"type": "output_text",
"text": "RAG(检索增强生成)是先从知识库检索相关资料,再让模型基于这些资料生成回答的方法。",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 26,
"input_tokens_details": {"cached_tokens": 0},
"output_tokens": 188,
"output_tokens_details": {"reasoning_tokens": 128},
"total_tokens": 214
}
}
event: response.created
data: {"type":"response.created","response":{"id":"resp_68f1a2b3c4d5e6f7","status":"in_progress"}}
event: response.output_text.delta
data: {"type":"response.output_text.delta","item_id":"msg_68f1a2b3c4d5e6f9","output_index":1,"content_index":0,"delta":"RAG"}
event: response.output_text.done
data: {"type":"response.output_text.done","item_id":"msg_68f1a2b3c4d5e6f9","output_index":1,"content_index":0,"text":"RAG(检索增强生成)是……"}
event: response.completed
data: {"type":"response.completed","response":{"id":"resp_68f1a2b3c4d5e6f7","status":"completed","usage":{"input_tokens":26,"output_tokens":188,"total_tokens":214}}}
- 请求与响应格式与 OpenAI Responses API 一致,可以使用 OpenAI SDK 的
client.responses.create。 - 适合推理模型、函数调用、远程 MCP 等场景,也是 Codex CLI 使用的接口。
- 支持该接口的模型在 模型列表 的
supported_endpoint_types中包含openai-response。
curl https://api.nodylink.com/v1/responses \
-H "Authorization: Bearer sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6",
"instructions": "你是一个简洁的助手。",
"input": "用一句话解释什么是 RAG。",
"reasoning": {"effort": "medium"}
}'
from openai import OpenAI
client = OpenAI(base_url="https://api.nodylink.com/v1", api_key="sk-你的密钥")
resp = client.responses.create(
model="gpt-6",
instructions="你是一个简洁的助手。",
input="用一句话解释什么是 RAG。",
reasoning={"effort": "medium"},
)
print(resp.output_text)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.nodylink.com/v1",
apiKey: "sk-你的密钥",
});
const resp = await client.responses.create({
model: "gpt-6",
instructions: "你是一个简洁的助手。",
input: "用一句话解释什么是 RAG。",
reasoning: { effort: "medium" },
});
console.log(resp.output_text);
{
"id": "resp_68f1a2b3c4d5e6f7",
"object": "response",
"created_at": 1792000000,
"status": "completed",
"model": "gpt-6",
"output": [
{
"id": "rs_68f1a2b3c4d5e6f8",
"type": "reasoning",
"summary": []
},
{
"id": "msg_68f1a2b3c4d5e6f9",
"type": "message",
"role": "assistant",
"status": "completed",
"content": [
{
"type": "output_text",
"text": "RAG(检索增强生成)是先从知识库检索相关资料,再让模型基于这些资料生成回答的方法。",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 26,
"input_tokens_details": {"cached_tokens": 0},
"output_tokens": 188,
"output_tokens_details": {"reasoning_tokens": 128},
"total_tokens": 214
}
}
event: response.created
data: {"type":"response.created","response":{"id":"resp_68f1a2b3c4d5e6f7","status":"in_progress"}}
event: response.output_text.delta
data: {"type":"response.output_text.delta","item_id":"msg_68f1a2b3c4d5e6f9","output_index":1,"content_index":0,"delta":"RAG"}
event: response.output_text.done
data: {"type":"response.output_text.done","item_id":"msg_68f1a2b3c4d5e6f9","output_index":1,"content_index":0,"text":"RAG(检索增强生成)是……"}
event: response.completed
data: {"type":"response.completed","response":{"id":"resp_68f1a2b3c4d5e6f7","status":"completed","usage":{"input_tokens":26,"output_tokens":188,"total_tokens":214}}}
鉴权
请求参数
string | array
必填
模型输入。字符串等同于一条用户消息;数组形式可以包含多条消息和多模态内容:
[
{
"role": "user",
"content": [
{"type": "input_text", "text": "描述这张图片"},
{"type": "input_image", "image_url": "https://example.com/cat.png"}
]
}
]
string
系统指令,作用相当于 Chat Completions 中的
system 消息。boolean
默认值:"false"
是否以 SSE 流式返回。事件类型包括
response.created、response.output_text.delta、response.output_text.done、response.completed 等。integer
最大输出 token 数,包含推理 token。
array
工具列表。函数工具使用扁平结构:远程 MCP 工具:
{
"type": "function",
"name": "get_weather",
"description": "查询城市天气",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]
}
}
{
"type": "mcp",
"server_label": "deepwiki",
"server_url": "https://mcp.deepwiki.com/mcp",
"require_approval": "never"
}
string | object
工具调用策略:
auto、none、required,或 {"type": "function", "name": "..."}。object
文本输出配置。结构化输出写法:
{"format": {"type": "json_schema", "name": "...", "schema": {...}}}。number
采样温度。推理模型通常不支持。
string
上一轮响应的
id,用于多轮对话。是否可用取决于上游是否保存了该响应,建议在 input 中自行携带历史消息。boolean
是否让上游保存本次响应。
响应
string
响应 ID。
string
固定为
response。string
响应状态:
completed、incomplete、failed 等。array
object
函数调用
import json
tools = [{
"type": "function",
"name": "get_weather",
"description": "查询城市天气",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
}]
input_items = [{"role": "user", "content": "上海现在多少度?"}]
resp = client.responses.create(model="gpt-6", input=input_items, tools=tools)
call = next(item for item in resp.output if item.type == "function_call")
args = json.loads(call.arguments) # {"city": "上海"}
# 把模型输出和函数结果一起回传
input_items += resp.output
input_items.append({
"type": "function_call_output",
"call_id": call.call_id,
"output": json.dumps({"temperature": "18℃"}),
})
final = client.responses.create(model="gpt-6", input=input_items, tools=tools)
print(final.output_text)
在 Codex CLI 中使用
在~/.codex/config.toml 中添加:
model = "gpt-6"
model_provider = "nodylink"
[model_providers.nodylink]
name = "NODYLINK"
base_url = "https://api.nodylink.com/v1"
env_key = "NODYLINK_API_KEY"
wire_api = "responses"
NODYLINK_API_KEY 并运行 codex。
