Skip to content

OpenAI SDK ​

Nexly API 兼容 OpenAI SDK。迁移现有项目时,通常只需要修改 API Key、Base URL 和模型 ID。

开始前确认 ​

完成以下检查后再运行 SDK 示例:

  1. NEXLY_API_KEY 已设置,并能请求 /v1/models。
  2. NEXLY_MODEL 使用模型列表返回的真实 id。
  3. Base URL 为 https://nexly.guangnian.xin,无需添加 /v1。

如果还没有完成这些步骤,请先阅读快速开始。

迁移配置 ​

OpenAI SDK 配置Nexly 填写内容
api_key / apiKeyNEXLY_API_KEY 环境变量
base_url / baseURLhttps://nexly.guangnian.xin
modelNEXLY_MODEL 环境变量

不要在 Base URL 后拼接 /v1 或 /chat/completions。本页沿用 Nexly 的兼容入口约定;SDK 将自行生成接口路径,与手写 HTTP 示例中的完整 /v1/... URL 不是同一类配置。客户端版本差异与排错方法见地址类型说明。

Python ​

1. 安装 SDK ​

bash
python -m pip install --upgrade openai

确认安装版本:

bash
python -m pip show openai

2. 创建请求 ​

python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NEXLY_API_KEY"],
    base_url="https://nexly.guangnian.xin",
    timeout=60.0,
    max_retries=2,
)

completion = client.chat.completions.create(
    model=os.environ["NEXLY_MODEL"],
    messages=[
        {"role": "system", "content": "你是一个专业的编程助手。"},
        {"role": "user", "content": "只回复:SDK 连接成功"},
    ],
)

print(completion.choices[0].message.content)

3. 使用流式输出 ​

python
stream = client.chat.completions.create(
    model=os.environ["NEXLY_MODEL"],
    messages=[{"role": "user", "content": "讲一个短故事"}],
    stream=True,
)

for chunk in stream:
    # 用量等附加事件可能没有 choices,不将它们当作文本片段。
    if not chunk.choices:
        continue
    content = chunk.choices[0].delta.content
    if content:
        print(content, end="", flush=True)

Node.js ​

1. 安装 SDK ​

bash
npm install openai

使用 ESM import 时,项目的 package.json 应包含:

json
{
  "type": "module"
}

2. 创建请求 ​

javascript
import OpenAI from 'openai'

if (!process.env.NEXLY_API_KEY || !process.env.NEXLY_MODEL) {
  throw new Error('请先设置 NEXLY_API_KEY 和 NEXLY_MODEL')
}

const client = new OpenAI({
  apiKey: process.env.NEXLY_API_KEY,
  baseURL: 'https://nexly.guangnian.xin',
  timeout: 60_000,
  maxRetries: 2,
})

const completion = await client.chat.completions.create({
  model: process.env.NEXLY_MODEL,
  messages: [{ role: 'user', content: '只回复:SDK 连接成功' }],
})

console.log(completion.choices[0].message.content)

3. 使用流式输出 ​

javascript
const stream = await client.chat.completions.create({
  model: process.env.NEXLY_MODEL,
  messages: [{ role: 'user', content: '讲一个短故事' }],
  stream: true,
})

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? '')
}

判断是否成功 ​

  • 非流式请求返回 choices[0].message.content。
  • 流式请求持续产生 delta.content,并正常结束。
  • Nexly API 控制台的 使用记录中出现对应模型的请求记录。

如果 SDK 报错,可以先用同一组 Key 和模型执行最小 cURL 诊断。cURL 成功但 SDK 失败时,重点检查 SDK 版本、Base URL 和代理配置。

超时与重试 ​

生成较长内容时可能需要更久。请根据业务设置合理超时,并只对 408、429、500、502、503、504 等临时错误进行带退避的有限重试。

不要自动重试认证错误、参数错误或不存在的模型。更多建议请查看错误处理。

Nexly API · OpenAI 兼容接口服务