使用 Node.js 和 OpenAI 实现情感分析功能
介绍
Node.js
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它使得在服务器端运行 JavaScript 成为可能。由于其非阻塞式 I/O 和事件驱动的特性,Node.js 能够高效地处理大量并发连接,适用于构建高性能、可扩展的网络应用程序。Node.js 也具有丰富的生态系统,提供了大量的模块和工具,方便开发者快速构建各种类型的应用。
想象一下,你正在用 JavaScript 编写网页的前端代码,让网页看起来漂亮并且与用户互动。那么,Node.js 就像是 JavaScript 的超级英雄,它让你可以在服务器上运行 JavaScript 代码,从而创建强大的、高性能的网络应用程序。Node.js 让开发者可以用同一种语言(JavaScript)来编写前端和后端的代码,这样就更方便了!
OpenAI
OpenAI 是一个人工智能研究实验室,致力于推动人工智能的发展,并将其带给全球。他们开发了一系列强大的人工智能模型和工具,包括语言模型、自然语言处理工具等。其中,GPT(Generative Pre-trained Transformer)系列模型是 OpenAI 最著名的成果之一,它们能够生成高质量的自然语言文本,用于各种应用领域,如自动摘要、语言翻译、对话生成等。
OpenAI 就像是人工智能的魔法工坊,他们研发了各种神奇的 AI 工具,比如能够聊天、写作、理解语言的 AI 模型。其中最有名的就是 GPT(Generative Pre-trained Transformer)系列模型,它们可以像人一样写文章、回答问题,甚至进行对话!
情感分析的重要性
情感分析是一种自然语言处理技术,旨在识别和理解文本中所表达的情绪和情感。在现代应用中,情感分析具有重要的作用,市场营销、社交媒体分析、客户服务、舆情监控等方面
通过结合 Node.js 和 OpenAI,我们可以构建出一个“能懂人心”的系统,帮助我们更好地理解和应对现实世界中的各种情感和需求。接下来,我们将探讨如何利用这些技术来实现情感分析功能,并展示它们在我们日常生活中的实际应用。
准备工作
1. 安装 Node.js
Node.js 是一个基于 JavaScript 的运行时环境,用于在服务器端运行 JavaScript 代码。要安装 Node.js,可以按照以下步骤进行:
- 访问 Node.js 官方网站:nodejs.org/
- 下载适用于你操作系统的 Node.js 安装包,并按照提示进行安装。
- 安装完成后,你可以在命令行终端中运行
node -v
命令来验证 Node.js 是否成功安装。如果成功安装,将显示安装的 Node.js 版本号。
2. 初始化项目
在开始之前,我们需要初始化一个 Node.js 项目。
- 在命令行终端中,使用
npm init -y
命令快速生成一个默认的package.json
文件,用于管理项目的依赖和元数据。
3. 安装 OpenAI 包
OpenAI 提供了一个 Node.js 包,用于与他们的 API 进行交互。你可以按照以下步骤安装 OpenAI 包:
- 在命令行终端中,使用 npm 命令安装 OpenAI 包:
npm install openai
4. 获取 OpenAI API 密钥
要使用 OpenAI 的服务,你需要一个 API 密钥。你可以在 OpenAI 的官方网站注册并获取 API 密钥。 可以按照以下步骤创建并设置 OpenAI API 密钥:
- 访问 OpenAI 的官方网站,并创建一个账户:openai.com/
- 登录你的 OpenAI 账户,在账户设置中找到 API 密钥。
- 复制你的 API 密钥,并妥善保存。
5. 创建 .env 文件
为了保护你的 OpenAI API 密钥和其他敏感信息,我们将它们存储在一个名为 .env
的文件中。.env
文件是一个用来存储环境变量和敏感信息的文件,在项目中非常常见。
- 在你的项目根目录下,创建一个名为
.env
的文件。 - 在
.env
文件中,添加以下内容,并将你的 API 密钥替换为实际的密钥:
OPENAI_API_KEY=your-api-key-here
代码实现
1. 引入本地 openai 模块 和 设置系统环境变量
require('dotenv').config();
const OpenAI = require('openai');
这两行代码首先引入了 dotenv
模块,用于读取 .env
文件中的环境变量。然后引入了 openai
模块,这个模块是用来与 OpenAI API 进行交互的。通过调用 config()
方法,我们加载了 .env
文件中定义的环境变量。
2. 实例化 OpenAI 客户端
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: 'https://api.chatanywhere.tech/v1'
});
在这段代码中,我们使用 new
关键字实例化了一个 OpenAI 客户端。我们传入了一个包含 API 密钥和基础 URL 的对象作为参数。API 密钥是从环境变量中获取的,这样就可以保护敏感信息,并且使用了特定的基础 URL。
3. 定义异步函数 main() 来执行任务
async function main() {
// ... 代码
}
在这里,我们定义了一个名为 main
的异步函数,它将用于执行我们的任务。这样做是为了确保我们的代码在异步操作完成后执行,以便获取结果。
4. 为 AI 提供实例,分析
let prompt = `
判断一下用户的评论情感是正面的还是负面的:
评论:买的银色版真的好看,一天就到了,晚上就开始拿起来玩系统很丝滑流畅,做工精细、
扎实,手感细腻,很精致,华为一如既往的好品质。
情感:正面
评论:随意降价,不予保价,服务态度差
情感:负面
`
let myPrompt = `
${prompt}
评论:实话说,iPhone越来越没有创新了,你买我不推荐,散了
情感:
`
5. 发送评论并获取情感分析结果
const chatCompletion = await client.chat.completions.create({
messages: [{ role: 'user', content: myPrompt }],
model: 'gpt-3.5-turbo',
});
在这一部分,我们调用了 OpenAI 客户端的 chat.completions.create
方法,这个方法用于发送聊天消息并获取 AI 生成的回复。我们传入了一个包含用户消息内容的对象数组作为参数,并指定了使用的模型。使用 await
关键字确保在获取完整个聊天结果后才继续执行后续代码。
6. 输出情感分析结果
console.log(chatCompletion.choices[0]);
最后,我们将通过 console.log()
方法输出情感分析的结果。这个结果是从 OpenAI 返回的聊天消息中提取的,其中包含了对用户评论的情感判断结果。
代码整合:
// 引入本地(node_modules) openai 模块 依赖node-fetch等
// package.json 项目描述文件,里面定义了项目名称、版本号、作者等信息。dependencies
// 类 require 关键字
// 系统环境变量
// 进程的环境变量
require('dotenv').config();
const OpenAI = require('openai');
// 实例化OpenAI
const client = new OpenAI({
// key
api_Key: process.env.OPENAI_API_KEY,
// proxy 代理
baseURL: 'https://api.chatanywhere.tech/v1'
});
async function main() {
// 根据用户发表的评论,正面/负面
let prompt = `
判断一下用户的评论情感是正面的还是负面的:
评论:买的银色版真的好看,一天就到了,晚上就开始拿起来玩系统很丝滑流畅,做工精细、
扎实,手感细腻,很精致,华为一如既往的好品质。
情感:正面
评论:随意降价,不予保价,服务态度差
情感:负面
`
let myPrompt = `
${prompt}
评论:实话说,iPhone越来越没有创新了,你买我不推荐,散了
情感:
`
// client openai实例
// chat 是以聊天的方式
// completions AIGC open 生成正面或者负面,LLM 大模型来完成
// AI 自然语言处理 GC 生成内容
const chatCompletion = await client.chat.completions.create({
// 聊天的上下文
messages: [{ role: 'user', content: myPrompt }],
// 模型
// gpt-3.5-turbo-0301
model: 'gpt-3.5-turbo',
// n: 1
})
console.log(chatCompletion.choices[0]);
}
main();
整个代码完成了与 OpenAI 进行交互,并使用其提供的模型来进行情感分析任务。
总结
以上便是Node.js 和 OpenAI 实现情感分析的过程。通过配置环境变量和 API 密钥,我们能够与 OpenAI 进行交互,并使用其提供的模型来执行情感分析任务。我们详细介绍了代码实现的步骤,包括环境配置、代码编写以及功能扩展的可能性。情感分析在市场营销、客户服务、社交媒体监控等领域具有广泛的应用价值,通过本文所述的方法,开发人员可以轻松地利用现有工具来处理自然语言数据,并更好地理解用户情感。
如果你觉得有学到东西,希望点赞收藏。
转载自:https://juejin.cn/post/7370895432567947314