一、代码全景图:5分钟看懂智能处理系统
先来看看我们如何用20行代码实现评论自动分析:
// 1. 导入工具包(就像准备厨具)
import OpenAI from "openai";
import dotenv from "dotenv";
// 2. 读取密码本(环境变量)
dotenv.config();
// 3. 创建AI助手(设置参数)
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY, // 钥匙
baseURL: process.env.OPENAI_API_BASE_URL // 服务器地址
});
// 4. 制作提问模板(重点!)
const buildPrompt = (review) => `
请扮演资深客服,分析这条评论:
${review}
需要提取:
1. 情绪(😊正面 / 😞负面)
2. 是否生气(✓是 / ✗否)
3. 提到的产品(比如:台灯、书桌)
4. 品牌名称(没有写填"未知")
请用这个格式回复:
{
"mood": "",
"angry": true/false,
"product": "",
"brand": ""
}
`;
// 5. 主程序(开始工作!)
const main = async () => {
const review = `
我看中的这款书桌能调节高度,但是收到货后发现边角有划痕。
联系客服后很快换了新,虽然耽误了时间,但处理态度不错。
品牌是StudyWell。
`;
const response = await openai.chat.completions.create({
model: "deepseek-chat",
messages: [{ role: "user", content: buildPrompt(review) }]
});
console.log("分析结果:", JSON.parse(response.choices[0].message.content));
}
main();
二、代码详解:像搭积木一样学习
2.1 环境配置(给AI发通行证)
dotenv.config(); // 读取.env文件
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY, // 钥匙
baseURL: process.env.OPENAI_API_BASE_URL // 服务器地址
});
简易理解:
.env文件就像密码本,保存着API密钥和地址- 不用把密码直接写代码里更安全
2.2 Prompt设计精髓(教AI做事)
const buildPrompt = (review) => `
分析这条评论:${review}
需要提取:
1. 情绪(正面/负面)→ 判断客户满意度
2. 是否生气 → 优先处理生气客户
3. 产品 → 统计热销商品
4. 品牌 → 竞品分析
格式要求:
{
"mood": "",
"angry": true/false,
"product": "",
"brand": ""
}
`;
吴恩达技巧实践:
✅ 明确步骤:像教新人一样分步骤说明
✅ 解释用途:告诉AI每个数据的作用
✅ 格式约束:规范输出方便程序处理
2.3 结果处理(让数据更好用)
JSON.parse(response.choices[0].message.content)
为什么要转JSON:
- 方便存入数据库
- 可以直接生成统计图表
- 手机APP也能轻松读取
三、运行效果:看看AI多聪明
输入评论:
我买的StudyWell护眼台灯不到一周就闪烁,
客服说是我家电压问题,明明其他电器都正常!
处理速度倒是很快,但检测报告一直没给我。
AI输出:
{
"mood": "负面",
"angry": true,
"product": "护眼台灯",
"brand": "StudyWell"
}
智能之处:
- 识别出"客服推卸责任"属于生气
- 准确提取产品类型
- 即使评论没有直接说"生气",也能从语气判断
四、常见问题解决指南
4.1 遇到报错怎么办?
| 错误现象 | 检查步骤 | 解决办法 |
|---|---|---|
| 返回乱码 | 1. 检查prompt里的格式要求 | 增加示例说明 |
| 漏掉部分信息 | 2. 确认是否用英文标点 | 统一使用中文标点 |
| 识别错误品牌 | 3. 查看原始评论是否有错别字 | 添加品牌白名单校验 |
4.2 让AI更听话的小技巧
// 在prompt中添加示例
const betterPrompt = `
示例:
评论:'''质量很差,但Deli客服处理很快'''
输出:{ "mood": "负面", "angry": false, "product": "未知", "brand": "Deli" }
现在分析这条新评论:'''
${review}
'''
`;
五、升级玩法:扩展你的AI助手
5.1 自动生成回复邮件
const replyPrompt = `
根据分析结果生成回复:
- 生气客户 → 先道歉再补偿
- 普通负面 → 提供解决方案
- 正面评价 → 感谢支持
当前分析:${analysisResult}
用亲切的口语化中文回复,不超过100字
`;
// AI可能回复:
"尊敬的客户,非常抱歉给您带来不好的体验...
5.2 数据统计功能
// 统计负面评价最多的品牌
const brands = results.filter(r => r.mood === '负面')
.map(r => r.brand);
const brandCount = _.countBy(brands);
六、吴恩达教授的三个代码秘诀
-
Prompt即文档
"把prompt当代码注释写,既指导AI又方便同事理解" -
渐进式复杂化
"先实现基础功能,再逐步添加错误处理等高级特性" -
实时测试验证
"每写3行prompt就测试一次,像调试代码一样调试AI"
动手练习:定制你的AI小秘书
任务:修改代码实现以下功能
- 增加价格区间分析(<500/500-1000/>1000)
- 识别客户是否提到会"推荐给朋友"
- 输出格式添加"推荐指数"星级(⭐️数量)
提示:
// 修改prompt部分即可!
const customPrompt = `
分析内容:...
新增要求:
5. 价格区间(根据提到的金额判断)
6. 推荐意愿(有提到推荐相关词为true)
...
`;
结语:你的第一个AI程序已上线
通过这个案例我们学会了:
✅ 用代码与AI对话的基本方法
✅ Prompt设计的实用技巧
✅ 处理结果的简单应用
下一步建议:
- 尝试处理真实电商评论
- 把结果保存到Excel表格
- 制作自动周报生成器
吴恩达教授说:"最好的学习方式是动手实践,现在你已经有了趁手的工具,快去创造吧!"