在现代互联网开发中,全栈工程师已经成为企业尤其是创业团队中不可或缺的角色。全栈工程师不仅要掌握前端开发技能,还要能够胜任后端服务、数据库操作,以及系统部署与优化。而随着 AI 技术的快速发展,AI 助力的全栈开发正在成为一种趋势,使得开发效率和应用智能化水平都得到了显著提升。本文将通过一个完整的 AI 全栈应用开发案例,详细介绍从前端、后端到 AI 模型调用的全流程实践。
一、全栈工程师的技能结构
从岗位职责来看,全栈工程师需要覆盖以下几个方面:
-
前端工程师技能
- 熟悉 HTML、CSS、JavaScript 基础
- 熟练掌握现代前端框架,如 Vue、React
- 能够进行页面布局和交互设计
-
后端工程师技能
- 掌握 Go、Node.js 等后端语言
- 熟悉 RESTful API 设计与开发
- 数据库操作能力,如 MySQL、MongoDB
-
AI 应用开发技能
- 使用 AI 接口进行自然语言处理
- 将 AI 功能集成到前后端交互中
- 能够处理 JSON 数据、调用模型接口生成内容
-
全栈能力
- 端到端设计:从前端请求到后端数据,再到 AI 模型的响应
- 异步处理与 API 调用
- 项目部署与调试
可以看到,现代全栈工程师不仅要会开发,还要懂得如何将 AI 技术融入到实际业务中,实现智能化应用。
二、全栈应用示例概述
本文示例是一个 用户问答系统,前端展示用户表格并提供问题输入框,用户输入问题后,通过 AI 模型分析用户数据返回回答。应用分为三个模块:
- 前端 (frontend) :HTML + Bootstrap + JavaScript
- 后端 (backend) :JSON Server 提供数据 API
- LLM 模块 (llm) :调用 OpenAI 接口处理自然语言请求
下面我们逐一分析各模块实现。
三、前端实现
前端使用 HTML + Bootstrap 构建页面,同时通过 JavaScript 与后端和 AI 模型交互。
1. 页面结构
页面布局采用 Bootstrap 网格系统:
<div class="container">
<div class="row col-md-6 col-md-offset-3">
<table class="table table-striped" id="user_table">
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>家乡</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
<div class="row">
<form name="aiForm">
<div class="form-group">
<label for="questionInput">请输入问题:</label>
<input type="text" class="form-control" id="questionInput" name="question" required placeholder="请输入问题">
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">提交</button>
</div>
</form>
</div>
<div class="row" id="message"></div>
</div>
通过表格展示用户信息,通过表单输入问题,最后将 AI 返回的答案展示在 #message 元素中。
2. 前端逻辑
前端主要逻辑包括:
- 获取用户数据:通过
fetch从后端 JSON Server 获取用户数据并渲染到表格中 - 提交问题:用户在表单输入问题后,前端将用户数据和问题一起发送到 LLM 后端接口
- 显示结果:将 AI 返回的答案展示在页面中
核心 JavaScript 实现如下:
const oForm = document.forms["aiForm"];
const oBody = document.querySelector('#user_table tbody');
const oBtn = document.querySelector(".btn");
let users;
oForm.addEventListener("submit", (event) => {
event.preventDefault();
const question = oForm["question"].value;
if(!question) {
alert("请输入问题");
return;
}
oBtn.disabled = true;
fetch(`http://localhost:1314/?question=${question}&data=${JSON.stringify(users)}`)
.then(res => res.json())
.then(data => {
oBtn.disabled = false;
document.getElementById('message').innerHTML = data.result;
});
});
// 获取用户数据
fetch('http://localhost:3001/users')
.then(res => res.json())
.then(data => {
users = data;
oBody.innerHTML = data.map(user => `
<tr>
<td>${user.id}</td>
<td>${user.username}</td>
<td>${user.hometown}</td>
</tr>
`).join("");
});
通过这种方式,前端实现了与后端的数据交互以及 AI 结果展示。
四、后端实现
后端采用 JSON Server 模拟 API 服务,这是一种快速搭建 RESTful 接口的方式,非常适合前端调试或原型开发。
1. 数据文件
users.json:
{
"users": [
{ "id": 1, "username": "aaa", "hometown": "赣州" },
{ "id": 2, "username": "bbb", "hometown": "吉安" },
{ "id": 3, "username": "ccc", "hometown": "南昌" },
{ "id": 4, "username": "ddd", "hometown": "宜春" }
]
}
2. 启动 JSON Server
package.json 中的脚本配置如下:
"scripts": {
"dev": "json-server --watch users.json --port 3001"
}
运行 npm run dev 后,后端会在 http://localhost:3001/users 提供完整的用户数据接口。
这种方式适合在前端开发阶段快速搭建数据服务,不依赖完整数据库,减少环境配置成本。
五、LLM 模块实现
LLM 模块负责调用 AI 接口,将用户问题和数据交给模型处理,然后返回智能回答。
1. 使用 OpenAI API
使用 openai 官方 SDK,配置 API Key 并调用 GPT 模型:
import OpenAI from 'openai';
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const getCompletion = async (prompt, model = 'gpt-3.5-turbo') => {
const messages = [{ role: 'user', content: prompt }];
const result = await client.chat.completions.create({
model,
messages,
temperature: 0.1
});
return result.choices[0].message.content;
};
2. 搭建 HTTP 服务
使用 Node.js 内置 http 模块搭建服务端接口,处理前端请求:
import http from 'http';
import url from 'url';
http.createServer(async (req, res) => {
res.setHeader('Access-Control-Allow-Origin', '*');
const parsedUrl = url.parse(req.url, true);
const prompt = `
${parsedUrl.query.data}
请根据上面的JSON数据,回答 ${parsedUrl.query.question} 这个问题。
`;
const result = await getCompletion(prompt);
res.status = 200;
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify({ result }));
}).listen(1314);
前端通过 fetch 请求该接口,即可获取 AI 生成的答案,实现完整的问答功能。
六、全栈实践总结
通过这个案例,可以总结全栈开发的几个关键点:
-
前后端分离
前端通过fetch获取数据和发送请求,后端通过 RESTful API 提供数据接口,互不依赖技术栈,便于维护和扩展。 -
快速原型开发
JSON Server 使得前端能够快速拿到数据接口,减少了初期数据库设计和搭建的成本,适合快速迭代。 -
AI 模型集成
将 OpenAI API 融入后端服务,实现自然语言处理功能,使应用从传统数据展示转向智能交互。 -
端到端数据流
数据从 JSON 文件 -> 后端接口 -> 前端表格渲染 -> 用户输入 -> AI 模型处理 -> 返回结果 -> 前端展示,形成完整闭环。 -
现代全栈工程师能力体现
- 前端展示与交互能力
- 后端 API 架构与数据服务能力
- AI 模型调用与智能化应用能力
- 异步处理与端到端集成能力
七、结语
全栈工程师不再只是前端和后端的简单组合,而是贯穿整个技术栈的解决方案提供者。通过 AI 的加持,全栈工程师不仅能实现功能性开发,还能让应用智能化、可交互,提升产品价值。
本文示例从前端展示、后端数据服务到 AI 模型调用,完整展现了一个 AI 全栈应用的开发流程。无论是学习实践还是实际项目开发,都能够为开发者提供参考和启发。
未来,随着 AI 技术的普及,全栈工程师的工作内容将更加多元化,具备 AI 能力的全栈开发者将成为抢手人才。