首页/AI/AI 应用速查/官方 SDK 用法速记(Python / Node.js)

官方 SDK 用法速记(Python / Node.js)

官方 SDK 封装鉴权、重试、超时与流式迭代:Python 用 openai / anthropic 包,Node.js 用 openai / @anthropic-ai/sdk;排错时可开日志看原始请求。

AI 应用速查AI更新于 2026-10-13

官方 SDK 用法速记

官方 SDK 把鉴权、重试、超时、流式解析这些重复工作封装掉了:Python 与 Node 的用法高度相似,都是先构造客户端,再调用资源方法,返回值是带类型的对象。直接手写 HTTP 请求并非不行,但重试、退避、流式解析与错误分类都要自己实现一遍。选 SDK 的关键收益,就在于这些边界情况的处理已经过验证。

基本信息

Python 包官方提供的对话与嵌入客户端包
Node 包官方 Node 客户端,支持 ESM 与 CommonJS
鉴权客户端初始化时读环境变量,避免硬编码
内置能力自动重试、超时、流式迭代、类型定义
可调参数最大重试次数、超时时间、基础地址
异步支持Python 有异步客户端,Node 天然异步

两端常用写法对照

操作PythonNode
初始化构造客户端并读取环境变量new 客户端并传入密钥
调用资源方法加关键字参数资源方法加对象参数
流式开启流式后迭代返回对象开启流式后用异步迭代
用量读取返回对象的用量字段读取返回对象的用量字段
异常按异常类型分支处理按异常状态码分支处理
自定义地址初始化时传入基础地址初始化时传入基础地址

典型使用场景

  • 业务服务接入:在封装层统一处理鉴权、重试与日志
  • 流式对话:用 SDK 的迭代接口直接消费增量
  • 批处理脚本:脚本里循环调用并累计用量
  • 异步服务:高并发场景用异步客户端提高吞吐
  • 本地调试:用 SDK 快速验证提示词与参数

Python 最小调用

Python 最小调用
from openai import OpenAI
client = OpenAI(timeout=30, max_retries=3)   # 密钥由环境变量提供
r = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "你好"}],
)
print(r.choices[0].message.content)          # 文本结果
print(r.usage)                               # 用量统计,便于成本核算

Node 侧等价写法

Node 侧等价写法
import OpenAI from "openai";
const client = new OpenAI({ timeout: 30000, maxRetries: 3 });
const r = await client.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "你好" }],
});
console.log(r.choices[0].message.content);
// 流式:把 stream 设为 true,用异步迭代逐块消费增量
SDK 的默认重试只覆盖可恢复错误:参数与鉴权类错误不会重试,这类问题要直接暴露到日志与告警里,而不是靠等待自动恢复。
升级 SDK 主版本前先看变更说明:资源方法与参数命名偶有调整,生产环境应锁定版本,并在测试环境先跑一轮再发布。

易错点

  • 把密钥写进代码而不是读环境变量:密钥随代码流转,泄露风险成倍放大
  • 给 SDK 设置过短超时:长回答与大上下文请求被中途掐断,表现为随机失败
  • 依赖默认重试却不设上限:连续失败时进程长时间阻塞却无人察觉
  • 不做版本锁定就升级:参数与返回结构变化会让线上代码直接异常

数据来源与参考

  • openai-python GitHub;openai-node GitHub;Anthropic SDK 文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌