一、项目背景
在 AIGC(生成式人工智能)时代,大语言模型(LLM)如 GPT 系列不仅能生成文本、图片,还能辅助我们完成结构化数据分析任务。本项目通过 Node.js 调用 OpenAI API,对一段销售数据进行自然语言查询,实现“用对话方式获取业务洞察”——无需写 SQL 或 Excel 公式,只需提问,AI 自动分析并生成报告。
二、技术栈与环境搭建
✅ 核心依赖
openai:官方 SDK,用于调用 GPT 模型。dotenv:加载.env文件中的环境变量,安全存储 API 密钥。
🚀 初始化项目(推荐使用 pnpm)
bash
编辑
npm init -y
pnpm add dotenv openai
💡 为什么用
pnpm?
- 更快安装速度
- 硬链接节省磁盘空间
- 避免
node_modules膨胀
🔐 环境变量管理(.env)
env
编辑
OPENAI_API_KEY=sk-xxxxxx
通过 dotenv.config({ path: '.env' }) 自动注入到 process.env,避免密钥硬编码。
三、代码实现
1. 初始化 OpenAI 客户端
js
编辑
import OpenAI from 'openai';
import { config } from 'dotenv';
config({ path: '.env' });
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: 'https://api.agicto.cn/v1' // 可选:使用国内代理加速
});
2. 构造 Prompt(提示词)
js
编辑
const prompt = `
You are an AI assistant that generates sales reports based on the given sales data.
Here is the sales data:
${reference_data}
Please generate a report to answer the following question:
${query}
`;
✨ Prompt 设计要点:
- 角色设定:
You are...明确身份(销售分析师)- 数据边界:用换行清晰分隔数据与问题
- 任务指令:具体、可执行、带业务语境
3. 调用模型并输出
js
编辑
const response = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: 'user', content: prompt }],
max_tokens: 1024,
temperature: 0.1 // 降低随机性,提高分析准确性
});
console.log(response.choices[0].message.content);
四、实际运行效果
当我们执行以下查询:
js
编辑
main(saleData, '根据上述销售数据,采取哪种销售方法非常有效?');
AI 返回了如下结构化分析报告:
📊 销售数据汇总
iPhone 13:
- 2023-01-01: 总收入 = 600,000
- 2023-01-02: 总收入 = 480,000
- 2023-01-03: 总收入 = 696,000
iPhone 13 总销售额 = 1,776,000
iPhone 14:
- 2023-01-01: 总收入 = 400,000
- 2023-01-02: 总收入 = 480,000
- 2023-01-03: 总收入 = 624,000
iPhone 14 总销售额 = 1,504,000
🔍 销售趋势分析
- iPhone 13 的销量呈明显上升趋势:从 100 → 80 → 120,尤其在 1 月 3 日达到峰值。
- iPhone 14 销量相对平稳但偏低:从 50 → 60 → 80,虽有增长,但总量仍低于 iPhone 13。
💡 值得注意的是:iPhone 13 在 1 月 3 日单价从 6000 降至 5800,但销量反增,总收入不降反升(48 万 → 69.6 万),说明价格策略调整有效。
🎯 销售方法有效性结论
- 产品定位成功
iPhone 13 凭借更高的性价比或更强的市场接受度,成为销售主力。 - 动态定价策略奏效
适度降价(5800 元)显著刺激了销量增长,验证了“以价换量”的可行性。 - iPhone 14 需策略优化
尽管也降价(8000 → 7800),但销量提升有限,可能需加强宣传、捆绑销售或渠道优化。
💡 业务建议
- ✅ 继续主推 iPhone 13:加大库存与营销资源倾斜。
- 🛠️ 重新评估 iPhone 14 策略:考虑限时折扣、以旧换新、或与配件捆绑销售。
- 📈 建立数据监控机制:每日跟踪销量、单价、收入变化,快速响应市场反馈。
🌟 关键洞察:
针对 iPhone 13 的销售方法(如灵活定价)非常有效,而 iPhone 14 则需进一步优化策略。
五、提示工程(Prompt Engineering)核心思想
| 原则 | 实践体现 |
|---|---|
| 明确角色 | “You are an AI assistant that generates sales reports...” |
| 提供上下文 | 完整 CSV 数据作为输入,边界清晰 |
| 具体指令 | “采取哪种销售方法非常有效?” → 引导模型进行归因分析 |
| 控制输出风格 | temperature: 0.1 确保输出专业、稳定、少幻觉 |
🌟 提示词是 AI 项目的“核心代码” 。有时候,优化 prompt 比调模型更有效!
六、总结与思考
- AIGC 不仅是“聊天”,更是“智能分析工具” :LLM 能理解结构化数据并输出业务洞察。
- 安全第一:API Key 必须通过
.env管理,禁止硬编码。 - 模块化设计:
main.mjs作为单点入口,便于测试与扩展。 - Prompt 是可工程化的资产:好的提示词能直接决定项目成败。
🚀 下一步优化方向:
- 将分析结果自动保存为 Markdown 或 PDF 报告
- 添加错误处理(网络异常、API 限流)
- 支持从 CSV 文件动态读取数据
- 引入多轮对话,支持追问(如“为什么 iPhone 14 销量低?”)
附:关键概念速记
process.env:Node.js 环境变量对象.mjs:ES 模块语法(支持import/export)temperature:控制输出随机性(0 = 确定性,1 = 创意性)- AIGC = AI Generated Content(生成式人工智能)
✅ 结语:
通过一段简洁的代码 + 精心设计的提示词,我们让 AI 成为了“数据分析师”。这不仅是技术的胜利,更是人机协作新范式的体现——你负责提问,AI 负责思考。
你可以将本笔记保存为
prompt-engineering-sales-analysis.md,作为项目文档或学习资料。