使用 OpenAI + Prompt 构建智能电商AI客服
引言
随着OpenAI平台和Prompt工程技术的逐渐成熟,现代AI技术为构建更加智能、灵活且人性化的电商客服系统提供了可能。本文将展示如何利用OpenAI的强大功能和精心设计的提示(Prompt),结合Node.js环境,创建一个能够分析用户情绪、识别商品信息及品牌的AI客服系统。
实现效果
我们的目标是让AI客服根据用户的反馈总结出以下信息:
- 用户的情绪:正面或负面
- 用户是否表达愤怒:是或否
- 用户购买的商品
- 商品的品牌
例如,对于下面这段关于灯具产品的评论:
需要一盏漂亮的灯放在我的卧室,这盏灯有额外的存储空间,而且价格也不太高。
很快就收到了。我们灯的灯串在运输过程中断了,公司很乐意给我们寄来一根新的。
几天之内就到了。组装起来很容易。
我缺少一个零件,所以我联系了他们的支持人员,他们很快就给我找到了缺失的零件!
在我看来,Lumina 是一家关心客户和产品的好公司!!
我们将构造一个Prompt,要求大模型解析上述文本,并返回结构化的JSON对象作为回应。
实现过程
1. 初始化项目
首先,我们需要初始化一个新的Node.js项目,并自动配置默认设置以加快开发速度:
npm init -y
这条命令会生成一个包含基本项目元数据的package.json文件。
2. 安装依赖包
接下来,安装必要的依赖包,包括用于调用OpenAI API的客户端库和管理环境变量的工具:
npm install openai dotenv
openai:允许与OpenAI的各种API进行交互。dotenv:帮助加载环境变量,确保敏感信息不会暴露于代码中。
3. 创建AI聊天接口
为了实现对大型语言模型(LLM)、用户输入、Prompt以及随机性的调用,我们定义了一个通用的异步函数get_completion:
import OpenAI from "openai";
import dotenv from "dotenv";
// 加载环境变量
dotenv.config();
const { OPENAI_API_KEY, OPENAI_API_BASE_URL } = process.env;
// 创建OpenAI实例
const client = new OpenAI({ apiKey: OPENAI_API_KEY, baseURL: OPENAI_API_BASE_URL });
// 创建通用LLM聊天完成接口函数
const get_completion = async (prompt, model = "gpt-3.5-turbo") => {
const messages = [{ role: "user", content: prompt }];
// 调用OpenAI API获取响应
const response = await client.chat.completions.create({
model,
messages,
temperature: 0 // 控制输出的随机性
});
return response.choices[0].message.content;
};
4. 示例应用
最后,通过一段具体的代码示例,演示如何使用精心设计的Prompt来解析客户评论并提取有价值的信息:
const main = async () => {
const lamp_review = `
需要一盏漂亮的灯放在我的卧室,这盏灯有额外的存储空间,而且价格也不太高。
很快就收到了。我们灯的灯串在运输过程中断了,公司很乐意给我们寄来一根新的。
几天之内就到了。组装起来很容易。
我缺少一个零件,所以我联系了他们的支持人员,他们很快就给我找到了缺失的零件!
在我看来,Lumina 是一家关心客户和产品的好公司!!
`;
const prompt = `
从评论文本中识别以下项目:
- 情绪(正面或负面)
- 评论者是否表达愤怒?(是或否)
- 评论者购买的商品
- 制造商品的公司
评论以三个反引号分隔。
将您的回复格式化为 JSON 对象,其中“情绪”、“愤怒”、“商品”和“品牌”作为键。
如果信息不存在,请使用“未知”作为值。
让您的回复尽可能简短。
将愤怒值格式化为布尔值。
评论文本: '''${lamp_review}'''
`;
const response = await get_completion(prompt);
console.log(response);
};
main();
总结
本文详细描述了如何利用OpenAI的API和Prompt工程技术来构建一个智能电商AI客服系统。通过这个过程,我们不仅实现了高效的服务能力,还展示了如何根据用户反馈分析其情绪、识别商品信息及品牌等关键要素。这种方法不仅提升了电商客服系统的智能化水平,也为未来的创新和发展提供了新的思路和技术支持。