外观
OpenAI SDK
Nexly API 兼容 OpenAI SDK。迁移现有项目时,通常只需要修改 API Key、Base URL 和模型 ID。
开始前确认
完成以下检查后再运行 SDK 示例:
NEXLY_API_KEY已设置,并能请求/v1/models。NEXLY_MODEL使用模型列表返回的真实id。- Base URL 为
https://nexly.guangnian.xin,无需添加/v1。
如果还没有完成这些步骤,请先阅读快速开始。
迁移配置
| OpenAI SDK 配置 | Nexly 填写内容 |
|---|---|
api_key / apiKey | NEXLY_API_KEY 环境变量 |
base_url / baseURL | https://nexly.guangnian.xin |
model | NEXLY_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 openai2. 创建请求
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 等临时错误进行带退避的有限重试。
不要自动重试认证错误、参数错误或不存在的模型。更多建议请查看错误处理。
