curl https://api.nodylink.com/v1/chat/completions \
-H "Authorization: Bearer sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6",
"messages": [
{"role": "system", "content": "你是一个专业的 AI 助手。"},
{"role": "user", "content": "用一句话介绍你自己。"}
]
}'
from openai import OpenAI
client = OpenAI(base_url="https://api.nodylink.com/v1", api_key="sk-你的密钥")
resp = client.chat.completions.create(
model="gpt-6",
messages=[
{"role": "system", "content": "你是一个专业的 AI 助手。"},
{"role": "user", "content": "用一句话介绍你自己。"},
],
)
print(resp.choices[0].message.content)
print(resp.usage)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.nodylink.com/v1",
apiKey: "sk-你的密钥",
});
const resp = await client.chat.completions.create({
model: "gpt-6",
messages: [
{ role: "system", content: "你是一个专业的 AI 助手。" },
{ role: "user", content: "用一句话介绍你自己。" },
],
});
console.log(resp.choices[0].message.content);
console.log(resp.usage);
{
"id": "chatcmpl-9f3b2c1a",
"object": "chat.completion",
"created": 1792000000,
"model": "gpt-6",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "我是一个 AI 助手,可以帮你解答问题、写作和分析数据。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 27,
"completion_tokens": 21,
"total_tokens": 48,
"prompt_tokens_details": {
"cached_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 0
}
}
}
{
"error": {
"message": "无效的令牌 (request id: 2026101412000012345678)",
"type": "new_api_error",
"param": "",
"code": ""
}
}
文本对话系列
对话补全(非流式)
兼容 OpenAI Chat Completions 协议,生成完成后一次性返回完整结果。
POST
/
v1
/
chat
/
completions
curl https://api.nodylink.com/v1/chat/completions \
-H "Authorization: Bearer sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6",
"messages": [
{"role": "system", "content": "你是一个专业的 AI 助手。"},
{"role": "user", "content": "用一句话介绍你自己。"}
]
}'
from openai import OpenAI
client = OpenAI(base_url="https://api.nodylink.com/v1", api_key="sk-你的密钥")
resp = client.chat.completions.create(
model="gpt-6",
messages=[
{"role": "system", "content": "你是一个专业的 AI 助手。"},
{"role": "user", "content": "用一句话介绍你自己。"},
],
)
print(resp.choices[0].message.content)
print(resp.usage)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.nodylink.com/v1",
apiKey: "sk-你的密钥",
});
const resp = await client.chat.completions.create({
model: "gpt-6",
messages: [
{ role: "system", content: "你是一个专业的 AI 助手。" },
{ role: "user", content: "用一句话介绍你自己。" },
],
});
console.log(resp.choices[0].message.content);
console.log(resp.usage);
{
"id": "chatcmpl-9f3b2c1a",
"object": "chat.completion",
"created": 1792000000,
"model": "gpt-6",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "我是一个 AI 助手,可以帮你解答问题、写作和分析数据。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 27,
"completion_tokens": 21,
"total_tokens": 48,
"prompt_tokens_details": {
"cached_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 0
}
}
}
{
"error": {
"message": "无效的令牌 (request id: 2026101412000012345678)",
"type": "new_api_error",
"param": "",
"code": ""
}
}
- 不传
stream或设为false时,接口在模型生成完毕后一次性返回完整 JSON。 - 请求参数与 对话补全(流式) 完全相同,本页只列出常用参数,并补充图片理解、工具调用和结构化输出的示例。
- 生成较长内容时建议使用流式,避免客户端或代理层超时。
curl https://api.nodylink.com/v1/chat/completions \
-H "Authorization: Bearer sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6",
"messages": [
{"role": "system", "content": "你是一个专业的 AI 助手。"},
{"role": "user", "content": "用一句话介绍你自己。"}
]
}'
from openai import OpenAI
client = OpenAI(base_url="https://api.nodylink.com/v1", api_key="sk-你的密钥")
resp = client.chat.completions.create(
model="gpt-6",
messages=[
{"role": "system", "content": "你是一个专业的 AI 助手。"},
{"role": "user", "content": "用一句话介绍你自己。"},
],
)
print(resp.choices[0].message.content)
print(resp.usage)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.nodylink.com/v1",
apiKey: "sk-你的密钥",
});
const resp = await client.chat.completions.create({
model: "gpt-6",
messages: [
{ role: "system", content: "你是一个专业的 AI 助手。" },
{ role: "user", content: "用一句话介绍你自己。" },
],
});
console.log(resp.choices[0].message.content);
console.log(resp.usage);
{
"id": "chatcmpl-9f3b2c1a",
"object": "chat.completion",
"created": 1792000000,
"model": "gpt-6",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "我是一个 AI 助手,可以帮你解答问题、写作和分析数据。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 27,
"completion_tokens": 21,
"total_tokens": 48,
"prompt_tokens_details": {
"cached_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 0
}
}
}
{
"error": {
"message": "无效的令牌 (request id: 2026101412000012345678)",
"type": "new_api_error",
"param": "",
"code": ""
}
}
鉴权
请求参数
array
必填
对话消息列表。每条消息包含
role(system、developer、user、assistant、tool)和 content。boolean
默认值:"false"
不传或设为
false,返回完整 JSON。number
采样温度,取值 0 到 2。
integer
生成内容的最大 token 数。
array
模型可以调用的函数列表。
object
输出格式,支持
json_object 和 json_schema。响应
string
本次补全的唯一 ID。
string
固定为
chat.completion。integer
创建时间,Unix 时间戳(秒)。
string
实际使用的模型。
array
object
使用示例
多轮对话
把历史消息按顺序放进messages,模型会基于上下文回答:
{
"model": "gpt-6",
"messages": [
{"role": "user", "content": "我叫小李。"},
{"role": "assistant", "content": "你好,小李!有什么可以帮你?"},
{"role": "user", "content": "我叫什么名字?"}
]
}
图片理解
支持视觉的模型可以在content 数组中传入图片。url 可以是公网链接,也可以是 data:image/png;base64,... 格式的 Base64 数据:
resp = client.chat.completions.create(
model="gpt-6",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "这张图片里有什么?"},
{"type": "image_url", "image_url": {"url": "https://example.com/cat.png"}},
],
}
],
)
工具调用
import json
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "查询指定城市的实时天气",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string", "description": "城市名称"}},
"required": ["city"],
},
},
}
]
messages = [{"role": "user", "content": "北京今天天气怎么样?"}]
resp = client.chat.completions.create(model="gpt-6", messages=messages, tools=tools)
call = resp.choices[0].message.tool_calls[0]
args = json.loads(call.function.arguments) # {"city": "北京"}
# 执行函数后,把结果作为 tool 消息回传
messages.append(resp.choices[0].message)
messages.append({"role": "tool", "tool_call_id": call.id, "content": "晴,22℃"})
final = client.chat.completions.create(model="gpt-6", messages=messages, tools=tools)
print(final.choices[0].message.content)
结构化输出
resp = client.chat.completions.create(
model="gpt-6",
messages=[{"role": "user", "content": "提取信息:张三,28 岁,上海"}],
response_format={
"type": "json_schema",
"json_schema": {
"name": "person",
"schema": {
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer"},
"city": {"type": "string"},
},
"required": ["name", "age", "city"],
},
},
},
)
print(resp.choices[0].message.content) # {"name":"张三","age":28,"city":"上海"}
工具调用和结构化输出的支持程度取决于具体模型,请在 模型广场 查看模型能力。

