使用OpenAI API进行情感分析的JavaScript实现
前言
今天我们来聊聊如何使用OpenAi进行评论的情感分析,通过使用Ai进行对评论的情感分析可以大大减少人力成本。下面来我将带领大家来了解如何使用LLM
对用户评论进行情感分析。
情感分析的作用
- 情感智能分析:通过调用OpenAI的API,尤其是GPT-3.5-turbo模型,能够对用户发表的评论进行实时分析,判断其情感是正面、负面还是中立。
- 客户服务优化:在客服系统中,此功能可以帮助快速识别用户的情绪,从而生成合适的回复,提高客户满意度和响应速度。
- 数据驱动决策:收集和分析大量的用户反馈可以帮助企业理解产品的市场反应,为产品改进或营销策略提供数据支持。
- 自动化处理:自动处理评论减轻了人工审核的工作负担,尤其适用于处理大量用户反馈的场景。
- 实时监控:能够实时监测用户情绪变化,及时发现潜在的公关危机或热点话题。
- 提高效率:通过AI技术,提高了处理和响应用户评论的效率,使得企业能够更快地对市场动态做出反应。
如何实现?
一. 初始化后端工程npm init -y
用终端打开项目文件夹,输入指令 npm init -y
初始化成功后会出现packager.json
文件,如下所示:
二.导入项目所需要的库
1. npm i openai
npm i openai
或 npm install openai
是一个命令,用于在Node.js项目中安装openai
这个包。openai
包通常是用来与OpenAI的API接口交互的客户端库,允许开发者在Node.js环境中方便地调用OpenAI提供的各种服务,
执行这个命令会做以下几件事:
- 下载和安装包:从npm(Node Package Manager)仓库下载
openai
包及其依赖到项目的node_modules
目录。 - 更新
package.json
:如果在命令后面加上-S
(或--save
),它还会将openai
添加到dependencies
字段,记录为项目依赖。
安装完成后,你可以在项目中通过require('openai')
来导入和使用这个库,进而调用OpenAI的API服务。
成功导入openai库如图所示:
2. npm i dotenv
npm i dotenv
或 npm install dotenv
是一个命令,用于在Node.js项目中安装dotenv
这个包。dotenv
是一个流行的npm模块,它的主要作用是加载.env
文件中的环境变量到process.env
对象中,使得这些变量在Node.js应用程序中可用。
执行这个命令会做以下事情:
- 下载和安装包:从npm仓库下载
dotenv
包并将其安装到项目的node_modules
目录。 - 更新
package.json
:如果加上-S
(或--save
),它会将dotenv
添加到dependencies
字段,记录为项目依赖。 - 配置环境变量:在项目中创建一个名为
.env
的文件,将敏感信息(如API密钥、数据库连接字符串等)存储在这个文件中,而不是硬编码在源代码中,这样可以保护这些信息不被公开。 - 加载环境变量:在应用程序启动时,通过
require('dotenv').config();
加载.env
文件中的变量,使其可以在代码中通过process.env.VARIABLE_NAME
的形式访问。
这样做的好处包括:
- 安全:避免将敏感信息暴露在版本控制系统中。
- 灵活:在不同环境中(如开发、测试和生产)可以使用不同的环境变量。
- 方便:简化配置管理,不需要在代码中手动设置或导入变量。
通过此指令,可以时env中的文件不向外处暴露,将需要隐藏的变量只保留在本地可以很大的提高项目的安全性能。
代码的编写
require('dotenv').config();
const OpenAI = require('openai');
const client = new OpenAI({
// 使用权限
apiKey: process.env.OPENAI_API_KEY,
// proxy
baseURL: 'https://api.chatanywhere.tech/v1'
})
-
加载环境变量:
require('dotenv').config();
:这行代码引入了dotenv
模块并调用其config
方法,目的是加载.env
文件中的环境变量。.env
文件通常存放敏感信息,如API密钥,它不在版本控制系统中提交,以保证安全性。
-
引入OpenAI模块:
const OpenAI = require('openai');
:这行代码引入了openai
模块,它是OpenAI官方提供的Node.js客户端库,用于与OpenAI API进行交互。
-
实例化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]);
}
-
声明
prompt
变量:- 定义了一个字符串
prompt
,包含了两段带有情感标签的评论,用于演示API如何工作。
- 定义了一个字符串
-
创建
myPrompt
变量:myPrompt
是prompt
的扩展,它将原prompt
中的两条评论合并,并添加了一个新的评论,但没有给出情感标签。这代表了用户实际提交的评论,用于分析其情感。
-
调用OpenAI API:
- 使用
client.chat.completions.create
方法调用OpenAI API的chat
接口,以完成一个聊天式的情感分析任务。 messages
参数是一个数组,包含一个对象,模拟用户向AI发送的消息,role
设为user
,content
设为myPrompt
。model
参数指定了使用gpt-3.5-turbo
模型,这是一个强大的预训练语言模型。n
参数设置为1,意味着只请求一个结果。
- 使用
-
接收并处理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 实现情感分析
有所帮助,本人水平有限难免会有纰漏,欢迎大家指正。如觉得这篇文章对你有帮助的话,欢迎点赞收藏加关注,感谢支持🌹🌹。
转载自:https://juejin.cn/post/7369165310181867560