在我的上一篇文章《Cursor 一年深度开发实践:前端开发的效率革命🚀》结尾,我曾展望AI时代可能会催生"超级个体",取代传统的产品经理+前后端协作模式。但坦白说,作为一名前端开发者,当AI浪潮来临之初,我的第一反应和大多数同行一样:这是算法工程师的领域,离我很远。
面对那些充斥着复杂公式的技术论文,我一度认为:即便花时间学习这些知识,我也不可能转行去和科班出身的算法工程师竞争。与其钻研这些"用不上"的AI技术,不如继续深耕老本行,把React原理、性能优化和工程化这些看家本领练得更扎实。
直到某天,我决定亲自探究一下所谓的 AI 应用开发到底有多复杂,却意外地发现:一个功能完整的聊天机器人(如下图),其核心逻辑竟然只需要30行代码就能实现。

这一发现让我瞬间意识到:在 AI 应用的浪潮中,能够深刻理解产品、具备工程化思维和全链路能力的前端开发者,不仅不会掉队,反而很可能在 AI 应用层开发中焕发职业生涯的第二春。
理解 AI 应用核心实现
30 行代码实现聊天机器人
可以先快速浏览以获得大致印象,如有疑惑再继续深入阅读。
js
import readline from 'readline';
const API_KEY = process.env.API_KEY;
const messages = [{ role: 'system', content: '你是一个前端高手,能帮我解答前端开发中遇到的问题。' }];
while (true) {
const input = await new Promise((resolve) => {
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.question('用户: ', (msg) => {
resolve(msg);
rl.close();
});
});
messages.push({ role: 'user', content: input });
const res = await fetch(
'https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${API_KEY}`,
},
body: JSON.stringify({ model: 'qwen-plus', messages }),
}
);
const reply = (await res.json()).choices[0].message.content;
messages.push({ role: 'assistant', content: reply });
console.log('AI助手:', reply + '\n');
}
获取模型服务
所谓 AI 应用(现在也多称为"大模型应用"),其核心就是通过 API 调用大模型服务。对于个人开发者而言,入门门槛已大大降低,阿里云、火山引擎、智谱AI等平台均提供了免费的 tokens 额度,足以用于学习和原型开发。
各平台官网都提供了详尽的开发文档。本文将以阿里云的千问(qwen)模型 为例进行演示。在开始编码前,我们只需理解两个最核心的概念:API Key 与 baseUrl。
1. API Key:你的身份凭证
API Key 相当于你调用大模型服务的"密码"或"令牌"。它用于在 HTTP 请求头中进行身份认证,确保只有授权的用户才能访问服务。
- 获取方式:在对应云平台注册并开通服务后,通常可以在控制台的"密钥管理"页面创建。
- 安全须知 :这是一个高度敏感的字符串,绝不能 直接硬编码在前端代码或公开的仓库中。正确的做法是将其设置为环境变量:
const API_KEY = process.env.API_KEY;
2. baseUrl:服务的地址
baseUrl 是你所要调用的 API 服务的接口地址。不同平台的 API 地址各不相同。比如本文代码中使用的通义千问的接口地址为: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
Node.js实现基础对话能力
在引入AI能力之前,我们先构建一个纯本地的对话系统框架:

js
import readline from 'readline';
// 主对话循环
while (true) {
// 获取用户输入
const input = await new Promise((resolve) => {
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.question('用户: ', (msg) => {
resolve(msg);
rl.close();
});
});
// 模拟AI回复(后续会替换为真实API调用)
const mockReply = `已收到您的输入: "${input}"`;
// 输出AI回复
console.log('AI助手:', mockReply + '\n');
}
运行步骤
- 将代码保存为
hello_ai.mjs文件:因为需要直接在顶层使用await,所以需要ES Module。 - 在终端执行
node hello_ai.mjs - 开始与模拟AI对话
技术要点解析
-
readline模块:命令行交互的核心- Node.js内置模块,专门处理命令行输入输出
createInterface创建读写接口,question方法实现问答式交互
-
while(true):持续对话的引擎- 无限循环确保对话可以一直进行
- 每次迭代完成一次完整的"输入-处理-输出"周期
- 这是所有交互式命令行应用的经典架构模式
-
异步流程控制
- 使用
await等待用户输入完成 - 确保代码执行顺序符合交互逻辑
- 使用
✨调用大模型服务
至此,我们已经完成了前期准备:申请了大模型服务,并构建了基础的对话循环。现在只需将两部分连接起来------将对话上下文和模型参数发送到服务端。
对于通义千问模型,必选的核心参数只有两个:

1. 模型选择 (model)
我们选择 qwen-plus 作为本次演示的模型。
2. 对话上下文 (messages)
这是AI应用的核心机制,通过维护完整的对话历史来实现上下文理解:
js
const messages = [
{
role: 'system',
content:
'你是一个前端高手,能帮我解答前端开发中遇到的问题。我希望你的回答精简干练有技术范',
},
];
消息格式说明:
system: 系统级指令,设定AI的基础行为和角色user: 用户输入的消息assistant: AI的回复消息
完整的API调用流程:
js
// 用户输入后,将用户输入添加到上下文中
messages.push({ role: 'user', content: input });
// 调用AI助手
const res = await fetch(
'https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${API_KEY}`, // 使用API_KEY进行授权
},
body: JSON.stringify({ model: 'qwen-plus', messages }),
}
);
// 解析AI助手的回复
const reply = (await res.json()).choices[0].message.content;
// 将AI助手的回复添加到上下文中
messages.push({ role: 'assistant', content: reply });
console.log('AI助手:', reply + '\n');
现在,通过以下命令启动项目,就能得到本文开头展示的智能对话效果了:
bash
node --env-file=.env hello_ai.mjs
注意 :--env-file 参数需要 Node.js 20.0.0 或更高版本。如果你的 Node.js 版本较低,可以使用 dotenv 库加载环境变量。
思考
影响大模型应用体验的因素
我们实现的聊天机器人界面确实相对简陋,但这并不妨碍我们理解AI应用的核心工作原理。从实现过程中可以看到,与模型服务交互的关键要素集中在三个方面:
1. 模型
从笔者最早体验的模型 GPT-2 到现在的 Gemini 3,大语言模型已经完成了从"人工智障"到"超级智能助手"的质变。模型基座的能力决定了应用体验的上限------再优秀的产品设计也无法让落后模型产出高质量内容。
2. 提示词工程
在我们的示例中,仅用一行简单的系统提示词设定了AI的角色。然而在真实的AI应用中,提示词工程(Prompt Engineering) 远非如此简单,它是一门直接决定模型输出质量的深奥学问。
事实上,我个人在相当长一段时间里都认为提示词"意义不大"------坚信只要我能清晰、准确地描述需求,就能用好大模型。直到两件事彻底改变了我的看法:
一是看到了开源项目 System Prompts and Models of AI Tools,其中收集了众多知名AI应用的系统提示词。阅读后我才恍然大悟:这些成熟产品的"智能",很大程度上正是依赖于这些精心设计、细节丰富的"说明书"。它们不是简单的角色设定,而是包含了复杂的行为规范、输出格式约束、安全边界设定等一整套控制逻辑。
二是我老板聊起他家孩子与豆包APP中预设的奥特曼语音聊得热火朝天。这个看似简单的产品功能让我从市场需求的角度认识到:绝大多数用户并不具备"精确描述需求"的能力,他们需要的是开箱即用的、预设好角色和场景的智能体验。
这两个例子让我从技术实现 与产品设计两个维度,重新认识了提示词的价值:它不仅是技术人员挖掘模型潜力的工具,更是产品团队将AI能力转化为用户价值的核心桥梁。
3. 上下文管理
在简短对话中,上下文的影响并不明显。但随着对话轮次增加,历史信息的有效存储、检索和压缩将成为关键挑战:
- 如何从长对话中准确提取相关信息?
- 面对模型的上下文长度限制,如何智能压缩历史记录?
- 多轮对话中的信息一致性如何保证?
前端工程师的AI时代机遇
需要明确的是,一名前端工程师,首先应是一名合格的软件工程师。如果你的技能栈长期局限于"使用框架编写管理后台页面",而对计算机网络、操作系统、数据库等计算机基础知之甚少,那么你将面临的挑战可能并非来自AI,而是来自每年涌入就业市场的、具备扎实科班基础的应届生。
在此共识之上,我们再来看前端开发者在AI时代的独特机遇。与传统应用(如电商、直播)将业务逻辑和高并发压力集中于后端不同,AI原生应用下的游戏规则发生了改变:
在传统架构中,像电商秒杀、直播弹幕这类场景,核心复杂度在于后端的高并发、分布式事务和数据一致性,这通常是Java/Go等语言的强场,Node.js在其中确实存在生态和性能的局限性。
但在AI应用架构中:
- 计算压力转移:最消耗计算资源的模型推理由云服务商(如阿里云、OpenAI)承担
- 后端角色转变 :应用自身的后端被重构为轻量中台 ,核心职责是路由API请求、管理对话上下文、处理简单的业务状态
- 技术栈鸿沟消失:对于这类I/O密集型的轻量后台,Node.js的性能和开发效率反而成为优势
如此一来,一个计算机基础良好的前端工程师,实现全栈AI应用的技术门槛已大幅降低。
此外,在笔者所处的电商行业,无论是面向用户的推荐、广告、秒杀系统,还是后台的素材、订单管理,前端往往被定位为"界面的实现者"------核心业务逻辑完全由后端掌控。即便存在少数重前端的业务场景(如在线文档、设计工具、互动游戏),其对核心业务指标的影响也相对有限。
而AI应用有望改写这一传统模式。当所有开发者的底层都是调用相同的大模型服务时,产品的差异化竞争力就转移到了应用层------谁能为模型能力套上更优秀的"壳",谁就能赢得用户。
因此,前端工程师的机遇或许在于:将对交互与体验的深刻理解,转化为设计模型能力"交互架构"的优势,并凭借全栈技能,独立完成从创意到产品的端到端实现。这正是前端角色从界面实现者,向超级个体演进的关键一步。
结语
当然,生产级AI应用远非如此简单。后续我们将深入架构、上下文与提示词等核心领域,共同将原型演进为一个健壮的AI应用。这是一个系统工程,我们下一篇文章见。