Appearance
Python / Node.js SDK
DuckMans 可通过 OpenAI SDK 的自定义 Base URL 接入。本页示例只从环境变量读取 API Key,不会把 Key 写进源代码。
模型占位符
把所有 YOUR_MODEL_ID 替换为 DuckMans 后台中当前 Key 和分组实际可用的模型 ID。建议先调用 GET /models 获取;示例值不是可直接调用的真实模型名。
示意图:Key 只保存在服务端环境变量,SDK Base URL 固定到 /v1;可复制的地址、命令和代码仍以正文为准。
准备环境变量
bash
old_stty=$(stty -g)
trap 'stty "$old_stty"' EXIT INT TERM
printf "DuckMans API Key: "
stty -echo
IFS= read -r DUCKMANS_API_KEY
stty "$old_stty"
trap - EXIT INT TERM
printf '\n'
export DUCKMANS_API_KEYpowershell
$secureKey = Read-Host "DuckMans API Key" -AsSecureString
$env:DUCKMANS_API_KEY = [System.Net.NetworkCredential]::new("", $secureKey).Password
Remove-Variable secureKey示意图:SDK 根据所调用方法追加 Endpoint,不能手工把完整端点放进 Base URL;可复制的地址、命令和代码仍以正文为准。
Python
安装 SDK:
bash
python -m pip install --upgrade openaiChat Completions
python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DUCKMANS_API_KEY"],
base_url="https://duckmans.com/v1",
)
completion = client.chat.completions.create(
model="YOUR_MODEL_ID",
messages=[
{"role": "user", "content": "只回复 ok"},
],
)
print(completion.choices[0].message.content)Responses(按支持情况使用)
仅当当前客户端、Key 分组和渠道支持 Responses 时使用:
python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DUCKMANS_API_KEY"],
base_url="https://duckmans.com/v1",
)
response = client.responses.create(
model="YOUR_MODEL_ID",
input="只回复 ok",
)
print(response.output_text)Node.js
安装 SDK:
bash
npm install openai以下示例使用 ESM;项目的 package.json 需要包含 "type": "module",或将文件保存为 .mjs。
Chat Completions
js
import OpenAI from "openai";
const apiKey = process.env.DUCKMANS_API_KEY;
if (!apiKey) throw new Error("DUCKMANS_API_KEY is not set");
const client = new OpenAI({
apiKey,
baseURL: "https://duckmans.com/v1",
});
const completion = await client.chat.completions.create({
model: "YOUR_MODEL_ID",
messages: [
{ role: "user", content: "只回复 ok" },
],
});
console.log(completion.choices[0].message.content);Responses(按支持情况使用)
仅当当前客户端、Key 分组和渠道支持 Responses 时使用:
js
import OpenAI from "openai";
const apiKey = process.env.DUCKMANS_API_KEY;
if (!apiKey) throw new Error("DUCKMANS_API_KEY is not set");
const client = new OpenAI({
apiKey,
baseURL: "https://duckmans.com/v1",
});
const response = await client.responses.create({
model: "YOUR_MODEL_ID",
input: "只回复 ok",
});
console.log(response.output_text);Base URL 不要填成 Endpoint 路径或完整请求地址
SDK 配置项使用:
text
https://duckmans.com/v1不要填写 https://duckmans.com/v1/chat/completions 或 https://duckmans.com/v1/responses。SDK 会根据调用的方法追加 Endpoint 路径;手动追加会形成错误路径。
选择哪种 SDK 方法
- 当前路线明确支持 Chat Completions:使用
client.chat.completions.create(...)。 - 当前路线明确支持 Responses:可以使用
client.responses.create(...)。 - 尚未确认:先用最小
curl请求测试,或查看客户端和后台分组说明,不要把 Responses 当作默认能力。
遇到异常时,先记录 HTTP 状态码和响应中的错误类型,再查看 API 排错。
