项目引入openai走向AIGC的一次体验

前言

今年是AGI元年,我们可以明显感受到AI技术增长进入了一个全新的阶段,我们的国产新能源也大肆引入大模型,属于我们的时代来了...昨天是高考的第一天,记得一个考生说当地高考作文是AI发展如此迅猛,是否会取代人类?就程序员的角度来看,AI始终是AI,我们可以借助强大的大模型能力,用于帮助我们的工作、学习、生活,万物皆智能,但是程序员永远不会被取代,技术曲线的陡峭与让更多人享受到AI强大生产力之间还有非常大的差距,只是掌握前沿技术的大家将接住时代的一波红利,走的更远...

浅谈AIGC为什么赋予了前后端新的机会?openai为什么会带来变革?一个,用从用户的角度来看,我们的体验完全不一样了,传统的搜索引擎,数据噪声大、广告多、内容不精确,始终根据文本匹配做数据迁移,而openai刷新了一亿用户新纪录,它更懂我们,更懂程序员。再一个,我们以传统方式编写代码时,时感语言还是有一定的界限,方向和道路更不相同,前端的同学也想把玩一下nlp任务时总是束手无策,但是现在,搭上openai的开发,我们也可以迅速完成nlp任务,可以预见,未来,一定是属于全栈的时代,前后端界限将被打破。

接下来,以前端做一个简单的情感分析为例,我们一起体验一把引入openai走向AIGC。

1.初始化

  1. node执行npm init -y命令,将项目初始化为一个后端项目

初始化后便会出现一个package.json,这是一个项目描述文件,他的主要作用是定义项目信息,包括项目的名称、版本、描述等等,管理项目的依赖,我们项目比如后续我们引入openai,他就会存在一个openai的依赖,只要项目描述文件在并且存在这个依赖,即便我们删除了包,也可以通过node执行npm i 重新下载依赖,除此之外,他还配置项目相关脚本,如启动脚本、测试脚本等。

项目描述文件中包含了很多字段,常见的字段:

  • "name":项目名称。
  • "version":项目版本号。
  • "description":项目描述。
  • "dependencies":生产环境依赖的模块。
  • "devDependencies":开发环境依赖的模块。
  • "scripts":定义各种可执行的脚本命令。

2. 获取OPENAI_API_KEY

为了能够使用openai相关服务,我们首先需要获取一下这个apikey,这里给大家分享一个开源项目,开源免费获取密钥chatanywhere/GPT_API_free: Free ChatGPT API Key,免费ChatGPT API,支持GPT4 API(免费),ChatGPT国内可用免费转发API,直连无需代理。可以搭配ChatBox等软件/插件使用,极大降低接口使用成本。国内即可无限制畅快聊天。 (github.com)

3. 安装openai模块

node 复制代码
// node执行
npm i openai

终端执行这个命令,是通过node package manager(npm) 来安装openai这个模块,安装后就能将openai相关功能和代码继承到我们的项目当中,以便在项目中使用 OpenAI 提供的各种接口和方法来进行与人工智能相关的操作,比如调用 OpenAI 的模型进行文本生成等。

4. 项目引入openai

安装好了之后我们还需要引入自己的项目,就像我们导库需要import xx。

js 复制代码
const OpenAI = require('openai')

5. 安装dotenv,方便管理环境变量

dotenv 模块主要是用于更方便地加载和管理额外的自定义环境变量配置文件(通常是 .env 文件)到 process.env 中,增强对环境变量配置的灵活性和可管理性。

node 复制代码
// node终端执行
npm install dotenv

引入dotenv,我们的password、key等等私密性信息,不应该直接明文写入代码,可以创建一个.env文件,然后将这些敏感信息放入。

js 复制代码
// 类 require关键字
// 系统环境变量
// 进程的环境变量
require('dotenv').config();

提到这里,就不得不说一下项目中的.gitignore文件,我们的敏感文件、比较大的包其实都不需要上传到git上,如果上传,造成信息泄露以及文件过大,这些包其实别人可以自行下载,因此gitignore文件我们需要声明禁止上传

6. 实例化openai

js 复制代码
const OpenAI = require('openai')
// 实例化
// AI全栈开发
// prompt -> GPT-API-free ->openai 
const client = new OpenAI({
    // 使用权限
    apiKey: process.env.OPENAI_API_KEY,
    // proxy chatanywhere
    baseURL: 'https://api.chatanywhere.tech/v1'
})
  • 我们的api去哪里请求服务?baseURL

7. 使用openai服务

js 复制代码
async function main() {
    let prompt = `
        判断一下用户的评论情感上是正面的还是负面的
        评论:买的银色版真好看,一天就到了,晚上就开始拿起来玩,
        系统很漂亮,很流畅,还支持蓝牙耳机,还支持蓝牙耳机,还支持蓝牙耳机,
        还支持蓝牙耳机,还支持蓝牙耳机。
        情感:正面
        评论:随意降价,不予保价,态度差
        情感:负面 
    `
    let myPrompt = `
    ${prompt}
    评论:实话说,iphone越来越没有新意了,你买我不推荐,散了
    情感:
    `

    // client openai实例
    // chat 以聊天的方式
    // competions AIGC 生成正面或者负面,LLM大模型来完成
    // AI 自然语言处理,GC生成内容
    // create 创建一个对话
    const chatCompletion = await client.chat.completions.create({
        // 聊天的上下文 多轮
        messages: [{ role: 'user', content: myPrompt }],
        model: 'gpt-3.5-turbo',
        n: 1
    })
    console.log(chatCompletion.choices[0]);
}


main();

通过评论获取情感(正面/负面),原本已有一些prompt了,我们通过拼接,最后还有一个情感没有分析,我们希望通过openai分析出来。

我们可以通过openai创建一个聊天完成请求。

  • client.chat.completions.create(...):通过指定的客户端对象来发起聊天完成的操作。
  • messages 数组定义了聊天的消息内容,这里包含了一个用户角色的消息,内容为 myPrompt
  • model 指定了使用的模型,这里是 gpt-3.5-turbo
  • n 表示要生成的回复数量。
  • 最后,将生成的结果中的第一个选择打印到控制台。

效果图:

小结

以上就是一次将openai引入项目的简单体验,通过openai,做一次情感分析。那么除此之外,我们这里是创建了一个聊天请求,事实上openai还有很多实用功能可以满足我们各项需求,大家可以自行摸索。

相关推荐
DREAM依旧12 分钟前
隐马尔科夫模型|前向算法|Viterbi 算法
人工智能
GocNeverGiveUp25 分钟前
机器学习2-NumPy
人工智能·机器学习·numpy
alikami1 小时前
【若依】用 post 请求传 json 格式的数据下载文件
前端·javascript·json
B站计算机毕业设计超人1 小时前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
学术头条1 小时前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
18号房客1 小时前
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·sklearn
wakangda2 小时前
React Native 集成原生Android功能
javascript·react native·react.js
feifeikon2 小时前
机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)
人工智能·机器学习·线性回归
吃杠碰小鸡2 小时前
lodash常用函数
前端·javascript
游客5202 小时前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉