用 Prompt Engineering 驱动 AI 自动生成销售分析报告

73 阅读5分钟

用 Prompt Engineering 驱动 AI 自动生成销售分析报告

在本篇实战笔记中,我将带你从零开始,使用 OpenAI API 构建一个能自动分析销售数据并生成专业报告的 AI 助手。
这不仅是一次简单的 API 调用练习,更是对 Prompt Engineering(提示工程) 核心理念的深入实践——如何通过精心设计的指令,引导大模型输出高质量、结构化、可落地的业务洞察。


一、项目背景与目标

设想这样一个场景:每天都有大量销售数据产生,但人工汇总、分析、撰写报告既耗时又容易出错。
我们希望借助 AI 的能力,自动完成以下任务

  • 按产品统计总销售额;
  • 识别销量变化趋势;
  • 判断不同定价或促销策略的实际效果。

最终目标是:输入原始数据 + 一个问题,AI 输出一份简洁、准确、有业务价值的自然语言报告


二、技术实现准备

我们使用 JavaScript(Node.js 环境)调用 OpenAI 兼容接口,并通过环境变量管理密钥。

import OpenAI from 'openai';
import { config } from 'dotenv';

// 加载 .env 文件中的环境变量
config({ path: '.env' });

// 初始化 OpenAI 客户端(兼容 AGICTO 平台)
const client = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
  baseURL: 'https://api.agicto.cn/v1' // 使用国内代理加速访问
});

说明

  • dotenv 用于安全加载 API 密钥;
  • baseURL 指向 AGICTO 提供的 OpenAI 兼容接口,提升国内访问稳定性。

三、数据准备与 Prompt 设计

1. 销售数据(CSV 格式)

我们将数据以字符串形式嵌入代码,便于演示:

const saleData = `销售数据:
日期,产品,销量,单价,总收入
2023-01-01,iPhone 13,100,6000,600000
2023-01-01,iPhone 14,50,8000,400000
2023-01-02,iPhone 13,80,6000,480000
2023-01-02,iPhone 14,60,8000,480000
2023-01-03,iPhone 13,120,5800,696000
2023-01-03,iPhone 14,80,7800,624000
`;

注意:虽然实际项目中数据可能来自数据库或文件,但此处用字符串模拟,聚焦 Prompt 本身。

2. 核心函数:动态构建 Prompt 并调用模型

const main = async (reference_data, query) => {
  const prompt = `
你是一名专业的销售数据分析助手,请基于以下销售数据,回答用户提出的问题。

【销售数据】
${reference_data}

【用户问题】
${query}

请用中文撰写一份简洁、准确、有逻辑的分析报告,包含必要的计算过程和结论。
`;

  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);
};

关键设计点

  • 明确角色(“专业销售数据分析助手”);
  • 用分隔符(如【】)清晰划分数据、任务与输出要求;
  • 强调“包含计算过程”,避免模型直接给出结论而缺乏依据。

四、测试用例与效果验证

测试 1:计算总销售额

main(saleData, '根据上述销售数据,计算 iPhone 13 和 iPhone 14 的总销售额各是多少?');

预期输出示例

iPhone 13 总销售额为 1,776,000 元,iPhone 14 为 1,504,000 元。
(附详细加总过程)

测试 2:评估销售策略有效性

main(saleData, '根据上面的销售数据,哪一种销售策略更有效?请结合价格、销量和收入进行分析。');

预期输出示例

尽管 iPhone 14 单价更高,但 iPhone 13 在降价后(5800 元)销量显著提升(120 台),单日收入反超 iPhone 14。
表明适度降价可有效刺激需求,提升整体营收。

💡 实际运行中,模型能准确识别“1月3日 iPhone 13 降价”这一关键事件,并据此推断策略效果。

运行结果示例图:

image.png


五、Prompt Engineering 的五大关键原则

通过本项目,我们可以提炼出高质量 Prompt 的设计方法论:

原则说明本例体现
1. 角色设定清晰告诉模型“你是谁”“你是一名专业的销售数据分析助手”
2. 上下文结构化用空行、标题、符号分隔不同信息块使用【销售数据】【用户问题】等标签
3. 指令具体明确避免模糊请求,直接提问“计算总销售额”而非“帮我看看数据”
4. 输出格式引导指定语言、长度、是否含计算过程“用中文撰写……包含必要的计算过程”
5. 控制随机性低 temperature 保证一致性temperature: 0.1

经验总结
Prompt 不是“问问题”,而是“设计任务”。
一个优秀的 Prompt,本质上是一份给 AI 的微型工作说明书


六、总结与延伸思考

这个看似简单的例子,揭示了大模型落地的核心逻辑:

  • 模型能力 ≠ 实际效果:再强的模型,也需要精准的指令才能发挥价值;
  • Prompt 是人机协作的桥梁:它决定了 AI 是“诗人”还是“分析师”;
  • 可复用性是工程化的起点:通过模板化 ${data} + ${query},我们已具备构建自动化报告系统的雏形。

📌 最后送你一句话
“写好 Prompt,不是让 AI 更聪明,而是让你更会指挥它。”


后续可拓展方向

  • 支持 Excel/CSV 文件上传解析;
  • 集成到企业微信/钉钉机器人,实现日报自动推送;
  • 结合可视化库(如 Chart.js)生成图文报告;
  • 添加多轮对话能力,支持追问(如“为什么 iPhone 13 销量突增?”)。