SDK 接入与重试
使用 DGlink 的 Base URL、客户密钥和幂等请求编号
这里使用 OpenAI 兼容聊天协议,不是 Gemini 原生协议。只对已发布价格和已开通的型号调用;不要将 EvoLink 密钥交给本站客户。以下示例是可运行的接入结构,不表示已经替你的 SDK 版本完成真实付费验收。
Python
安装 openai 后,先设置 DEELINK_API_BASE_URL(含 /v1)和 DEELINK_API_KEY:
import os
import uuid
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DEELINK_API_KEY"],
base_url=os.environ["DEELINK_API_BASE_URL"],
max_retries=0,
timeout=210.0,
)
request_id = str(uuid.uuid4())
print("保存本次请求编号:", request_id)
result = client.chat.completions.create(
model="gemini-2.5-flash",
messages=[{"role": "user", "content": "只回复:连接成功"}],
max_tokens=64,
extra_headers={"Idempotency-Key": request_id},
)
print(result.choices[0].message.content)
print(result.usage)JavaScript / Node.js
安装 openai 后,在 Node.js 服务端运行,不能把客户 Key 写进公开网页:
import { randomUUID } from 'node:crypto';
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.DEELINK_API_KEY,
baseURL: process.env.DEELINK_API_BASE_URL,
maxRetries: 0,
timeout: 210_000,
});
const requestId = randomUUID();
console.log('保存本次请求编号:', requestId);
const result = await client.chat.completions.create(
{
model: 'gemini-2.5-flash',
messages: [{ role: 'user', content: '只回复:连接成功' }],
max_tokens: 64,
},
{ headers: { 'Idempotency-Key': requestId } }
);
console.log(result.choices[0].message.content);
console.log(result.usage);流式、重放与账单
- 客户 API 支持
stream: true;网页 Playground 当前是非流式文本。流式请求可加stream_options: { include_usage: true }。不要把收到第一段文字视为已经完成结算。 - 网络错误、读取中断、超时、409 或待核对状态:保留同一请求编号,按文本 API查询状态;不要自动生成新 UUID 重试。不是所有 OpenAI 兼容工具都允许配置幂等头和关闭重试,不能承诺任意客户端直接可用。
finish_reason: length表示输出达到限制,不等于上游失败;已有输出仍可能计费。- 图片、视频使用本站异步任务协议。提交一次后轮询任务,结果归档后再下载,不用 OpenAI 图片同步返回结构猜测结果。
- 用量页查询已结算记录;待处理和失败异步任务见任务记录。暂无记录不等于上游没有收到请求。