进阶阅读时长 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
相关教程
相关评测
OpenAI API 完全指南
一份面向 OpenAI API 生态的系统性入门指南,深入覆盖 GPT、DALL·E、Whisper 三大模型系列。从账号注册、密钥管理到首次 API 调用、提示词设计模式和成本优化策略均有详细讲解,适合初次接触 OpenAI 平台的开发者按图索骥。
OpenAI Cookbook
OpenAI Cookbook 是官方示例代码与实用指南集合,专注于 OpenAI API 的实际开发。内容涵盖嵌入、RAG、函数调用到微调等真实场景模式,提供可直接运行的笔记本,开发者可将其直接改造用于生产应用。
OpenRouter API
OpenRouter 提供统一 API,通过单一 OpenAI 兼容端点将请求路由到众多厂商的数百个大语言模型。它简化了模型切换,提供透明定价并自动处理故障转移——适合需要灵活性但不想管理多个 API key 的开发者。
LangChain 框架教程
一份深入 LangChain 框架的实战教程,系统讲解其架构与核心模块——Chains、Agents、Memory,并配合大量代码示例。还涵盖 RAG 集成、自定义工具开发和调试策略,适合已不满足于简单提示词、希望构建生产级 LLM 应用的开发者。