OpenAI API使用教程:快速接入AI能力
——零基础后端开发者也能上手的实战指南
大家好,我是你们的技术团队培训负责人。这几年带过不少应届生,发现很多同学在面试时被问到“有没有用过大模型 API”就一脸懵。其实,OpenAI API 并没有想象中那么难,只要你有基本的 JavaScript 和后端开发概念,就能快速上手。
我当初学的时候,也是一头雾水:API 是什么?密钥怎么用?为什么我的请求总是返回 401?今天我就用一个完整的项目案例,手把手带你从零开始接入 OpenAI 的 AI 能力,让你不仅能跑通代码,还能理解背后的逻辑——甚至能回答常见的面试题!
一、OpenAI API 是什么?能用来做什么?
简单说,OpenAI API 就是一个“远程调用 AI 模型”的服务。你不需要自己训练模型,只要发送一段文字(比如一个问题),它就会返回 AI 生成的答案。
常见用途包括:
- 智能客服问答
- 自动生成文章或摘要
- 代码辅助(比如解释一段代码)
- 面试模拟器(对,就是你现在看到的这个场景!)
💡 面试题小贴士:
“如何在后端集成第三方 AI 服务?”
答案关键词:HTTP 请求、API 密钥、异步处理、错误重试机制。
二、环境准备:5 分钟搭好开发环境
1. 注册 OpenAI 账号并获取 API Key
- 访问 https://platform.openai.com
- 登录后进入 API Keys 页面
- 点击 Create new secret key,复制生成的密钥(形如
sk-xxxxxx)
⚠️ 注意:这个密钥相当于你的“密码”,绝对不要提交到 GitHub!我们后面会教你怎么安全使用。
2. 创建本地项目
打开终端,执行以下命令:
mkdir openai-demo
cd openai-demo
npm init -y
npm install express axios dotenv
解释一下这三个包的作用:
express:轻量级 Node.js 后端框架axios:发送 HTTP 请求(比原生 fetch 更友好)dotenv:读取.env文件中的环境变量(用来存 API Key)
3. 创建 .env 文件(安全存放密钥)
在项目根目录创建 .env 文件:
OPENAI_API_KEY=你的密钥(sk-xxxxxx)
然后在代码中通过 process.env.OPENAI_API_KEY 读取,这样就不会泄露密钥了。
三、核心概念:用最简单的语言讲清楚
什么是“模型”(Model)?
OpenAI 提供多种 AI 模型,比如 gpt-3.5-turbo、gpt-4。你可以理解为不同“智商”和“价格”的 AI 助手:
gpt-3.5-turbo:便宜、快,适合大多数任务gpt-4:更聪明,但贵且慢
什么是“请求体”(Request Body)?
你发给 OpenAI 的数据结构,最关键的是 messages 字段:
{
model: "gpt-3.5-turbo",
messages: [
{ role: "user", content: "你好!" }
]
}
role可以是"user"(用户提问)、"assistant"(AI 回答)、"system"(系统指令)- 多轮对话就往
messages数组里追加消息
为什么用 POST 请求?
因为我们要“发送数据”给服务器,而 GET 请求只能传 URL 参数,不安全也不够用。
四、实战项目:做一个“AI 面试题生成器”
目标:用户访问 /ask?topic=JavaScript,返回一道关于 JavaScript 的面试题。
步骤 1:搭建基础 Express 服务器
创建 server.js:
// server.js
require('dotenv').config();
const express = require('express');
const axios = require('axios');
const app = express();
const PORT = 3000;
app.get('/ask', async (req, res) => {
const { topic } = req.query;
if (!topic) {
return res.status(400).json({ error: '请提供 topic 参数' });
}
// TODO: 调用 OpenAI API
});
app.listen(PORT, () => {
console.log(`服务器运行在 http://localhost:${PORT}`);
});
步骤 2:封装 OpenAI 调用函数
在 server.js 中添加一个函数:
async function askOpenAI(prompt) {
try {
const response = await axios.post(
'https://api.openai.com/v1/chat/completions',
{
model: 'gpt-3.5-turbo',
messages: [{ role: 'user', content: prompt }],
max_tokens: 150, // 控制回答长度
},
{
headers: {
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json'
}
}
);
return response.data.choices[0].message.content.trim();
} catch (error) {
console.error('OpenAI 调用失败:', error.response?.data || error.message);
throw new Error('AI 服务暂时不可用');
}
}
步骤 3:整合到路由中
修改 /ask 路由:
app.get('/ask', async (req, res) => {
const { topic } = req.query;
if (!topic) {
return res.status(400).json({ error: '请提供 topic 参数' });
}
try {
const prompt = `请生成一道关于 ${topic} 的中级前端开发面试题,并附带参考答案。`;
const answer = await askOpenAI(prompt);
res.json({ question: answer });
} catch (err) {
res.status(500).json({ error: err.message });
}
});
步骤 4:启动并测试
终端运行:
node server.js
然后浏览器访问:
http://localhost:3000/ask?topic=JavaScript
你可能会看到类似这样的返回:
{
"question": "问题:解释 JavaScript 中的闭包(Closure)是什么,并举例说明其应用场景。\n\n参考答案:闭包是指一个函数能够访问并操作其外部作用域中的变量……"
}
✅ 恭喜!你已经成功接入了 AI 能力!
五、新手常见问题解答(FAQ)
Q1:为什么总是返回 401 Unauthorized?
- 原因:API Key 错误或未正确读取。
- 解决:
- 检查
.env文件是否在项目根目录 - 确认
require('dotenv').config()在最顶部 - 重启服务器(
.env修改后需要重启)
- 检查
Q2:响应太慢怎么办?
- OpenAI 免费账户可能有速率限制。
- 解决方案:
- 添加 loading 提示(前端)
- 后端加超时控制:
axios.create({ timeout: 10000 })
Q3:如何支持多轮对话?
- 把整个对话历史(messages 数组)保存在内存或数据库中
- 每次请求都带上完整历史
// 示例:两轮对话
const messages = [
{ role: "user", content: "你好" },
{ role: "assistant", content: "你好!有什么我可以帮忙的吗?" },
{ role: "user", content: "JavaScript 闭包是什么?" }
];
Q4:费用怎么算?
OpenAI 按 token 计费(1 token ≈ 0.75 个英文单词)。gpt-3.5-turbo 价格约为 $0.002 / 1K tokens,非常便宜。
| 模型 | 输入价格(每 1K tokens) | 输出价格(每 1K tokens) |
|---|---|---|
| gpt-3.5-turbo | $0.0005 | $0.0015 |
| gpt-4 | $0.03 | $0.06 |
💡 建议:开发时用
gpt-3.5-turbo,上线再考虑是否升级。
六、学习建议与下一步
你现在已经掌握了 OpenAI API 的基本用法!但别止步于此,以下是进阶方向:
✅ 推荐实践项目
- AI 博客摘要器:输入博客 URL,返回摘要
- 代码解释器:粘贴一段代码,AI 逐行解释
- 简历优化助手:上传简历,AI 给出改进建议
📚 学习资源
- 官方文档:https://platform.openai.com/docs
- 免费额度:新用户通常有 $5 赠送额度(足够练习几百次)
⚠️ 避坑指南
- 永远不要把 API Key 写死在代码里
- 不要在前端直接调用 OpenAI API(会暴露密钥!必须走后端)
- 加错误处理:网络可能失败,AI 可能返回异常内容
结语
作为一名带过几十位应届生的老讲师,我想说:技术没有魔法,只有一步步拆解和实践。你今天完成的这个小项目,已经超过了 80% 只会背概念的面试者。
下次面试官问:“你用过 AI 吗?” 你可以自信地说:“我不仅用过,还把它集成到后端服务中,这是我的代码。”
加油,未来的全栈工程师!

评论 0