进阶阅读时长 8 分钟·
用 OpenAI API 构建你的第一个 AI 应用
理解了原理,接下来动手写代码。这篇教程以 Node.js 为例,带你用 OpenAI API 发送第一个对话请求,并了解流式输出、成本与错误处理等生产细节。
作者:AI Resource Hub
准备工作
首先在 OpenAI 平台注册并创建一个 API Key,然后把它保存到环境变量中,切勿硬编码进代码或提交到仓库。
export OPENAI_API_KEY="sk-..."安装 SDK
使用官方的 Node.js SDK 可以最快上手:
npm install openai发送第一个对话请求
下面的代码向 gpt-4o-mini 发送一条消息并打印回复。messages 数组承载对话历史,role 可以是 system、user 或 assistant。
import OpenAI from 'openai';
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const res = await client.chat.completions.create({
model: 'gpt-4o-mini',
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'Describe large language models in one sentence.' },
],
});
console.log(res.choices[0].message.content);使用流式输出
对话类应用通常需要"逐字打印"的效果,开启 stream 即可边生成边接收,显著改善体验。
const stream = await client.chat.completions.create({
model: 'gpt-4o-mini',
messages: [{ role: 'user', content: 'Write a short poem about spring' }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? '');
}成本与错误处理
API 按 token 计费,务必设置合理的 max_tokens 并监控用量;选择更小的模型(如 mini 系列)能大幅降低成本。
网络请求可能超时或限流,生产环境要加上重试、超时和异常捕获,并对用户输入做校验与内容审核。
构建多轮对话
单次 API 调用只能回答一个问题,但真实应用需要维持一段对话。关键是累积 messages 数组:每轮结束后把用户消息和助手回复依次追加,下一次调用时发送完整历史。system 消息始终放在第零位,贯穿全程锚定模型行为。
注意上下文窗口:每一轮都会增加 token,长对话中可以考虑对较早的消息做摘要或截断历史,以控制在窗口范围内并降低成本。
从原型到生产
上线前需要补齐几项生产要素:设置 max_tokens 上限以避免意外账单;为 429 限流错误实现指数退避重试;对高频提示词做缓存以节省 token;并添加结构化日志以追踪使用模式和排查问题。
OpenAIAPI应用开发Node.js