进阶阅读时长 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

相关教程