一次完整的 Prompt Engineering 实战:让 AI 自动生成销售分析报告
在这篇笔记里,我分享一个用 OpenAI API 实现的实战案例 ------ 让 AI 自动分析销售数据并生成报告。
这个过程不仅能帮你理解如何编写和调用大模型接口,还能深入体会 Prompt Engineering(提示工程) 的重要性。
一、项目背景
我们希望用一段简单的 JavaScript 代码,让 AI 根据销售数据生成一份销售分析报告。
例如:
- 计算每种产品的总销售额;
- 判断哪种销售策略更有效。
二、代码实现
首先,导入依赖并配置环境变量:
php
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'
});
这里使用了:
- dotenv :管理
.env文件中的OPENAI_API_KEY - OpenAI SDK:与模型进行通信
三、准备数据与 Prompt
销售数据如下:
yaml
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:
ini
const main = async (reference_data, query) => {
const prompt = `
You are an AI data analysis assistant that generates sales
reports based on the given sales data.
Here is the sales data:\n ${reference_data} \n\n
Please generate a report to answer the following question:\n
${query}
`;
let 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);
};
四、运行测试
测试示例一:计算总销售额
less
main(
saleData,
'根据上述销售数据,计算iPhone 13和iPhone 14的总销售额各是多少?'
);
测试示例二:分析销售策略效果
less
main(
saleData,
'根据上面的销售数据,采取的哪个销售策略非常有效?'
);
运行后,模型会根据你的问题生成自然语言报告。
五、Prompt Engineering 的关键要点
在这个小项目中,Prompt 的编写决定了结果的质量。
一些经验总结:
- 身份设定
明确告诉模型它是谁(例如:"你是一名数据分析助手"),有助于输出更专业的内容。 - 上下文清晰
使用\n\n明确区分"任务说明""数据内容""问题"。 - 语言简洁
避免含糊的指令。比如不要说"请帮我分析一下",而是直接问:"哪种销售策略更有效?" - 可重复性
使用模板字符串${reference_data}+${query},方便不同数据与问题复用。 - 低温度输出
设置temperature: 0.1,让模型更偏向逻辑性和稳定性,而非创意。
六、总结
通过这个例子可以看到:
- Prompt 工程 是让大模型"听懂你话"的核心;
- 清晰的数据边界 + 明确的任务指令 能显著提升输出质量;
- 一个好的 Prompt,往往比模型本身更重要。
小结一句:
"Prompt 写得好,AI 就是你的超强助手;
Prompt 写不好,它就成了诗人。"