用 OpenAI API 给你的前端项目加点 AI 魔法
大家好!我是小林,一名211高校的计算机专业研究生,平时喜欢折腾各种新技术,也热衷于写技术博客帮助刚入门的同学。今天这篇教程,就是源于我当初学 AI 接口时踩过的坑——当时想找一个从零开始、手把手教你怎么在前端调用 OpenAI API 的文章,结果要么太理论,要么直接跳过环境配置,让人一头雾水。
所以,我决定自己写一篇真正“零基础友好”的实战指南。无论你是刚学完 HTML/CSS 的前端小白,还是正在准备面试、想在简历上加个“AI 功能”的求职者,这篇文章都能让你在 1 小时内,把 GPT 能力集成到自己的网页里!
特别提醒:本教程会结合一个超实用的小场景——面试题挑战助手,让你边学边做出一个能自动生成/解析面试题的小工具。既练了 API 调用,又为面试做了准备,一举两得!
为什么你需要学会用 OpenAI API?
简单说,OpenAI API 是你接入大模型能力的“钥匙”。通过它,你可以让自己的程序:
- 自动生成文本(比如写邮件、出题目)
- 理解用户输入(比如聊天机器人)
- 分析内容(比如总结文章、判断情感)
而对前端开发者来说,这意味着:你的网页不再只是静态展示,而是能“思考”和“对话”!
📌 注意:虽然 API 本身是后端调用的,但为了教学清晰,我们会先用最简单的前端直连方式演示原理(仅限开发测试!),后面会说明生产环境的正确做法。
第一步:准备工作——5分钟搞定开发环境
别担心,你不需要装一堆复杂的东西。我们只需要:
- 一个现代浏览器(Chrome / Edge / Firefox)
- 一个代码编辑器(推荐 VS Code)
- 一个 OpenAI 账号(免费注册)
1. 注册 OpenAI 账号并获取 API Key
- 打开 https://platform.openai.com
- 点击右上角 Sign Up 注册(可用 Google 账号快速登录)
- 登录后,点击右上角头像 → View API keys
- 点击 Create new secret key,复制生成的密钥(形如
sk-xxxxxx)
⚠️ 重要安全提示:这个 Key 相当于你的“密码”,绝对不能泄露给任何人,也不能直接放在前端代码里上线!我们后面会讲如何安全使用。
2. 创建项目文件夹
在电脑上新建一个文件夹,比如叫 openai-interview-helper,里面放一个 index.html 文件。
现在,你的目录结构应该是这样:
openai-interview-helper/
└── index.html
第二步:理解核心概念(用大白话)
在写代码前,先搞懂几个关键术语:
| 术语 | 解释 | 类比 |
|---|---|---|
| API | 应用程序接口,就是别人提供的一套“功能按钮” | 像餐厅的菜单,你点菜(发请求),厨房做菜(返回结果) |
| API Key | 身份凭证,证明你是合法用户 | 相当于会员卡,没卡不让点菜 |
| Model(模型) | 具体的 AI 引擎,比如 gpt-3.5-turbo |
不同厨师,有的擅长川菜(写代码),有的擅长粤菜(写文案) |
| Prompt(提示词) | 你给 AI 的指令 | 你对厨师说“来一份微辣的宫保鸡丁” |
我们这次要用的是 Chat Completions API,它是专门用来做“对话”的接口。你给它一段对话历史,它就接着往下说。
第三步:动手实战——做一个“前端面试题挑战”小工具
我们的目标:做一个网页,用户点击“出一道题”,AI 就生成一道前端面试题;再点“看解析”,AI 就给出详细解答。
步骤 1:搭建基础 HTML 页面
打开 index.html,粘贴以下代码:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>前端面试题挑战</title>
<style>
body {
font-family: Arial, sans-serif;
max-width: 800px;
margin: 40px auto;
padding: 20px;
background: #f9f9f9;
}
button {
padding: 10px 20px;
margin: 10px 5px;
font-size: 16px;
cursor: pointer;
}
#question, #answer {
background: white;
padding: 15px;
margin: 20px 0;
border-radius: 8px;
min-height: 60px;
}
.hidden { display: none; }
</style>
</head>
<body>
<h1>🎯 前端面试题挑战助手</h1>
<div>
<button id="generateBtn">出一道题</button>
<button id="explainBtn" class="hidden">看解析</button>
</div>
<div id="question"></div>
<div id="answer" class="hidden"></div>
<script>
// 后面在这里写 JavaScript
</script>
</body>
</html>
保存后,用浏览器打开这个 HTML 文件,你会看到一个清爽的界面,但按钮还没功能。
步骤 2:用 JavaScript 调用 OpenAI API
💡 提示:为了简化,我们先在前端直接调用(仅用于本地测试!)。实际项目必须通过后端中转,否则 Key 会暴露。
在 <script> 标签里添加以下代码(记得替换 YOUR_API_KEY 为你自己的 Key):
// ❗❗ 仅用于本地学习!不要提交到 GitHub 或部署到线上 ❗❗
const API_KEY = 'YOUR_API_KEY_HERE';
const MODEL = 'gpt-3.5-turbo';
async function callOpenAI(messages) {
const response = await fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${API_KEY}`
},
body: JSON.stringify({
model: MODEL,
messages: messages,
max_tokens: 300 // 限制回答长度
})
});
const data = await response.json();
return data.choices[0].message.content.trim();
}
这段代码做了什么?
- 定义了一个
callOpenAI函数 - 用
fetch向 OpenAI 发送 POST 请求 - 把对话历史
messages传过去 - 返回 AI 生成的文本
步骤 3:实现“出一道题”功能
继续在 <script> 里添加:
const questionDiv = document.getElementById('question');
const answerDiv = document.getElementById('answer');
const generateBtn = document.getElementById('generateBtn');
const explainBtn = document.getElementById('explainBtn');
let currentQuestion = '';
generateBtn.addEventListener('click', async () => {
try {
// 构造提示词:明确要求生成前端面试题
const messages = [
{ role: 'system', content: '你是一个资深前端面试官,请出一道有深度的前端面试题,只输出题目,不要解释。' }
];
const question = await callOpenAI(messages);
currentQuestion = question;
questionDiv.textContent = question;
explainBtn.classList.remove('hidden'); // 显示“看解析”按钮
answerDiv.classList.add('hidden'); // 隐藏答案
} catch (error) {
console.error('出错啦:', error);
questionDiv.textContent = '生成失败,请检查 API Key 是否正确';
}
});
现在点击“出一道题”,如果一切正常,你会看到一道像这样的题目:
请解释 Vue 3 中的 Composition API 与 Options API 的区别,并说明何时应该使用哪种?
步骤 4:实现“看解析”功能
再加一段代码:
explainBtn.addEventListener('click', async () => {
try {
const messages = [
{ role: 'system', content: '你是一个经验丰富的前端导师,请针对以下面试题给出清晰、深入的解析,包含核心概念、常见误区和最佳实践。' },
{ role: 'user', content: currentQuestion }
];
const answer = await callOpenAI(messages);
answerDiv.textContent = answer;
answerDiv.classList.remove('hidden');
} catch (error) {
console.error('解析失败:', error);
answerDiv.textContent = '解析失败,请重试';
answerDiv.classList.remove('hidden');
}
});
搞定!现在你的小工具已经能:
- 点“出一道题” → AI 生成前端面试题
- 点“看解析” → AI 给出详细答案
第四步:新手常见问题 & 避坑指南
Q1:为什么我点了按钮没反应?控制台报错?
可能原因:
- API Key 没替换,或者复制多了空格
- 浏览器阻止了跨域请求(CORS)
🔒 重要说明:OpenAI API 默认不允许浏览器直接调用(出于安全考虑)。你在本地
file://协议下打开 HTML 可能能跑通,但一旦部署到网站就会失败!
解决方案:
- 本地测试:用 VS Code 安装 Live Server 插件,用
http://localhost:5500打开页面 - 线上部署:必须通过自己的后端中转请求(见下文)
Q2:如何安全地在真实项目中使用?
绝对不要把 API Key 放在前端代码里!
正确做法是:
用户浏览器 → 你的后端服务器 → OpenAI API
↑
(你的后端保管 Key)
例如,用 Node.js 写一个简单接口:
// server.js (Node.js + Express)
const express = require('express');
const axios = require('axios');
const app = express();
app.use(express.json());
app.post('/api/ask', async (req, res) => {
try {
const response = await axios.post(
'https://api.openai.com/v1/chat/completions',
req.body,
{
headers: {
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json'
}
}
);
res.json(response.data);
} catch (error) {
res.status(500).json({ error: '请求失败' });
}
});
app.listen(3000);
然后前端只调用自己的 /api/ask,Key 安全地存在服务器环境变量里。
Q3:费用会不会很高?
OpenAI 按 token 计费。gpt-3.5-turbo 大约 $0.002 / 1K tokens(输入+输出)。
一道面试题 + 解析 ≈ 300 tokens → 成本约 $0.0006,也就是 0.004元人民币。完全不用担心!
第五步:下一步学习建议
恭喜你!你已经迈出了接入 AI 能力的第一步。接下来可以:
- 升级项目:把当前工具改造成 React/Vue 组件
- 增加功能:让用户选择“React”、“Vue”、“JavaScript”等方向
- 学习后端:用 Node.js / Python 写一个安全的 API 中转层
- 探索更多 API:试试
text-embedding-ada-002做语义搜索,或 DALL·E 生成图片
我当初学的时候,就是从这样一个小 demo 开始,后来把它做成了简历上的亮点项目,面试官都眼前一亮!
总结:AI 不是魔法,而是新工具
通过这篇教程,你不仅学会了如何调用 OpenAI API,更重要的是——你掌握了“用 AI 增强产品”的思维模式。
记住:
- 前端负责交互和体验
- 后端负责安全和逻辑
- AI 负责智能和内容生成
三者结合,就能做出既酷炫又实用的应用。
最后提醒:永远不要在前端硬编码 API Key!这是每个开发者都要守住的安全底线。
如果你觉得这篇教程有帮助,欢迎分享给正在找实习/准备面试的朋友。也欢迎关注我的博客,我会持续更新更多“手把手”实战教程!
祝你 coding 顺利,面试一把过!💪

评论 0