likes
comments
collection
share

使用OpenAI API进行情感分析的JavaScript实现

作者站长头像
站长
· 阅读数 31

前言

今天我们来聊聊如何使用OpenAi进行评论的情感分析,通过使用Ai进行对评论的情感分析可以大大减少人力成本。下面来我将带领大家来了解如何使用LLM对用户评论进行情感分析。

情感分析的作用

  1. 情感智能分析:通过调用OpenAI的API,尤其是GPT-3.5-turbo模型,能够对用户发表的评论进行实时分析,判断其情感是正面、负面还是中立。
  2. 客户服务优化:在客服系统中,此功能可以帮助快速识别用户的情绪,从而生成合适的回复,提高客户满意度和响应速度。
  3. 数据驱动决策:收集和分析大量的用户反馈可以帮助企业理解产品的市场反应,为产品改进或营销策略提供数据支持。
  4. 自动化处理:自动处理评论减轻了人工审核的工作负担,尤其适用于处理大量用户反馈的场景。
  5. 实时监控:能够实时监测用户情绪变化,及时发现潜在的公关危机或热点话题。
  6. 提高效率:通过AI技术,提高了处理和响应用户评论的效率,使得企业能够更快地对市场动态做出反应。

如何实现?

一. 初始化后端工程npm init -y

用终端打开项目文件夹,输入指令 npm init -y

初始化成功后会出现packager.json文件,如下所示:

使用OpenAI API进行情感分析的JavaScript实现

二.导入项目所需要的库

1. npm i openai

npm i openai 或 npm install openai 是一个命令,用于在Node.js项目中安装openai这个包。openai包通常是用来与OpenAI的API接口交互的客户端库,允许开发者在Node.js环境中方便地调用OpenAI提供的各种服务,

执行这个命令会做以下几件事:

  1. 下载和安装包:从npm(Node Package Manager)仓库下载openai包及其依赖到项目的node_modules目录。
  2. 更新package.json:如果在命令后面加上-S(或--save),它还会将openai添加到dependencies字段,记录为项目依赖。

安装完成后,你可以在项目中通过require('openai')来导入和使用这个库,进而调用OpenAI的API服务。

成功导入openai库如图所示:

使用OpenAI API进行情感分析的JavaScript实现

2. npm i dotenv

npm i dotenv 或 npm install dotenv 是一个命令,用于在Node.js项目中安装dotenv这个包。dotenv是一个流行的npm模块,它的主要作用是加载.env文件中的环境变量到process.env对象中,使得这些变量在Node.js应用程序中可用。

执行这个命令会做以下事情:

  1. 下载和安装包:从npm仓库下载dotenv包并将其安装到项目的node_modules目录。
  2. 更新package.json:如果加上-S(或--save),它会将dotenv添加到dependencies字段,记录为项目依赖。
  3. 配置环境变量:在项目中创建一个名为.env的文件,将敏感信息(如API密钥、数据库连接字符串等)存储在这个文件中,而不是硬编码在源代码中,这样可以保护这些信息不被公开。
  4. 加载环境变量:在应用程序启动时,通过require('dotenv').config();加载.env文件中的变量,使其可以在代码中通过process.env.VARIABLE_NAME的形式访问。

这样做的好处包括:

  • 安全:避免将敏感信息暴露在版本控制系统中。
  • 灵活:在不同环境中(如开发、测试和生产)可以使用不同的环境变量。
  • 方便:简化配置管理,不需要在代码中手动设置或导入变量。

通过此指令,可以时env中的文件不向外处暴露,将需要隐藏的变量只保留在本地可以很大的提高项目的安全性能。

使用OpenAI API进行情感分析的JavaScript实现

代码的编写

require('dotenv').config();

const OpenAI = require('openai');

const client = new OpenAI({
    // 使用权限
    apiKey: process.env.OPENAI_API_KEY,
    // proxy 
    baseURL: 'https://api.chatanywhere.tech/v1'
})

  1. 加载环境变量

    • require('dotenv').config();:这行代码引入了dotenv模块并调用其config方法,目的是加载.env文件中的环境变量。.env文件通常存放敏感信息,如API密钥,它不在版本控制系统中提交,以保证安全性。
  2. 引入OpenAI模块

    • const OpenAI = require('openai');:这行代码引入了openai模块,它是OpenAI官方提供的Node.js客户端库,用于与OpenAI API进行交互。
  3. 实例化OpenAI客户端

    • const client = new OpenAI({...});:创建一个OpenAI客户端实例,用于后续调用API。
    • apiKey: process.env.OPENAI_API_KEY,:将从process.env中读取的OPENAI_API_KEY作为参数,这是调用OpenAI API所需的认证密钥。
    • baseURL: 'https://api.chatanywhere.tech/v1',:设置了基础URL,可能用于自定义API请求的地址,但在这个例子中,它是一个替代或代理服务器,而非OpenAI的官方API地址。

这段代码的主要目的是设置和初始化一个OpenAI客户端,以便后续能够安全地通过Node.js调用OpenAI的API服务。

async function main() {
    // 做一些高下立判的事情,nlp任务
    // 根据用户发表的评论,正面/负面 
    let prompt = `
    判断一下用户的评论情感上是正面的还是负面的
    评论: 买的银色版真的好看,一天就到了,晚上就拿起来玩系统很丝滑流畅,做工扎实,手感细腻,很精致哦华为一如既往的好品质
    情感:正面

    评论: 随意降价,不予保价,服务态度差
    情感:负面
    `

    let myPrompt = `
    ${prompt}
    评论:实话说,iPhone越来越没有创新了,你买我不推荐,散了
    情感:
    `
    // client openai实例
    // chat 是以聊天的方式
    // completions AIGC openai 生成正面或者负面, LLM大模型来完成
    //AI 自然语言处理 GC 生成内容
    const chatCompletion = await client.chat.completions.create({
        // 聊天的上下文 多轮
        // role 角色 user 用户向openai问问题 content
        messages: [{
            role: 'user',
            content: myPrompt
        }],
        model: 'gpt-3.5-turbo',
        n: 1
    })

    console.log(chatCompletion.choices[0]);

}

  1. 声明prompt变量

    • 定义了一个字符串prompt,包含了两段带有情感标签的评论,用于演示API如何工作。
  2. 创建myPrompt变量

    • myPromptprompt的扩展,它将原prompt中的两条评论合并,并添加了一个新的评论,但没有给出情感标签。这代表了用户实际提交的评论,用于分析其情感。
  3. 调用OpenAI API

    • 使用client.chat.completions.create方法调用OpenAI API的chat接口,以完成一个聊天式的情感分析任务。
    • messages参数是一个数组,包含一个对象,模拟用户向AI发送的消息,role设为usercontent设为myPrompt
    • model参数指定了使用gpt-3.5-turbo模型,这是一个强大的预训练语言模型。
    • n参数设置为1,意味着只请求一个结果。
  4. 接收并处理API响应

    • await关键字等待client.chat.completions.create的异步操作完成,并将结果赋值给chatCompletion
    • console.log(chatCompletion.choices[0]);打印出API返回的第一个完成结果。这个结果包含对新评论的情感分析结果。

完整代码如下:

// 引入本地的(node_modules) openai 依赖node-fetch
// package.json 项目描述文件 'dependencies'
// 前端 + 后端 + AI

// 系统环境变量
// 进程环境变量
require('dotenv').config();
// console.log(process.env);
// console.log(process.env.OPENAI_API_KEY);

const OpenAI = require('openai');

// 实例化OpenAI
// options 配置项
// AI全栈开发
// prompt -> GPT-API-free -> openai
const client = new OpenAI({
    //收费 : 使用权限
    apiKey: process.env.OPENAI_API_KEY,
    // proxy 
    baseURL: 'https://api.chatanywhere.tech/v1'
})

async function main() {
    // 做一些高下立判的事情,nlp任务
    // 根据用户发表的评论,正面/负面 
    let prompt = `
    判断一下用户的评论情感上是正面的还是负面的
    评论: 买的银色版真的好看,一天就到了,晚上就拿起来玩系统很丝滑流畅,做工扎实,手感细腻,很精致哦华为一如既往的好品质
    情感:正面

    评论: 随意降价,不予保价,服务态度差
    情感:负面
    `

    let myPrompt = `
    ${prompt}
    评论:实话说,iPhone越来越没有创新了,你买我不推荐,散了
    情感:
    `
    // client openai实例
    // chat 是以聊天的方式
    // completions AIGC openai 生成正面或者负面, LLM大模型来完成
    //AI 自然语言处理 GC 生成内容
    const chatCompletion = await client.chat.completions.create({
        // 聊天的上下文 多轮
        // role 角色 user 用户向openai问问题 content
        messages: [{
            role: 'user',
            content: myPrompt
        }],
        model: 'gpt-3.5-turbo',
        n: 1
    })

    console.log(chatCompletion.choices[0]);

}

main();

运行结果如下:

使用OpenAI API进行情感分析的JavaScript实现

这样我们就实现了利用大模型实现对评论的情感分析的简单应用。

本篇文章就到此为止啦,希望通过这篇文章能对你了解OpenAI API 实现情感分析有所帮助,本人水平有限难免会有纰漏,欢迎大家指正。如觉得这篇文章对你有帮助的话,欢迎点赞收藏加关注,感谢支持🌹🌹。

使用OpenAI API进行情感分析的JavaScript实现

转载自:https://juejin.cn/post/7369165310181867560
评论
请登录