吴恩达Prompt 系列之AI客服

699 阅读4分钟

使用 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客服系统。通过这个过程,我们不仅实现了高效的服务能力,还展示了如何根据用户反馈分析其情绪、识别商品信息及品牌等关键要素。这种方法不仅提升了电商客服系统的智能化水平,也为未来的创新和发展提供了新的思路和技术支持。