跳转到内容

Python、Node.js 与 cURL

配置 WUDI_API_KEY,选择当前 Key 可用的文本模型。示例中的模型可以替换,但不能随意改写 ID。生成请求会按实际使用计费。

终端窗口
python -m pip install openai
import os
from openai import OpenAI, APIStatusError
client = OpenAI(
api_key=os.environ["WUDI_API_KEY"],
base_url="https://wudiapi.com/v1",
timeout=120, max_retries=0,
)
try:
result = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role":"user","content":"解释一个 API 的用途。"}],
)
print(result.choices[0].message.content)
print(result.usage)
except APIStatusError as error:
print("HTTP", error.status_code, error.message)
终端窗口
npm install openai

将以下内容保存为 .mjs 文件,用 Node.js 运行:

import OpenAI from 'openai';
if (!process.env.WUDI_API_KEY) throw new Error('请配置 WUDI_API_KEY');
const client = new OpenAI({
apiKey: process.env.WUDI_API_KEY,
baseURL: 'https://wudiapi.com/v1',
timeout: 120000,
maxRetries: 0,
});
try {
const response = await client.chat.completions.create({
model: 'deepseek-v4.1-flash',
messages: [{ role: 'user', content: '解释一个 API 的用途。' }],
});
console.log(response.choices[0]?.message?.content);
console.log(response.usage);
} catch (error) {
console.error('请求失败', error.status, error.message);
}

使用原生 HTTP 方法可避免复杂的 JSON 引号转义:

终端窗口
$env:WUDI_API_KEY = '替换为你的WuDi_API_Key'
$headers = @{ Authorization = "Bearer $env:WUDI_API_KEY" }
$body = @{
model = 'deepseek-v4.1-flash'
messages = @(@{ role = 'user'; content = '你好,请简要回答。' })
stream = $false
} | ConvertTo-Json -Depth 10
Invoke-RestMethod -Uri 'https://wudiapi.com/v1/chat/completions' `
-Method Post -Headers $headers -ContentType 'application/json; charset=utf-8' `
-Body ([Text.Encoding]::UTF8.GetBytes($body))
终端窗口
curl --fail-with-body https://wudiapi.com/v1/chat/completions \
-H "Authorization: Bearer $WUDI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek-v4.1-flash","messages":[{"role":"user","content":"你好"}]}'

在服务端校验用户输入、限制请求大小与并发,并将错误分类处理。不要把带 Key 的完整请求头写入日志。需要流式见流式输出,使用 Responses 见专用示例。