一文教你使用Node.js脚本调用OpenAi API接口实现对话功能
前言
随着AI的发展,各行各业将迎来颠覆性改变,AIGC时代即将到来。作为程序员,更应该积极拥抱新时代。本期介绍的内容是,如何在项目中使用OpenAI API的接口 实现对话功能
。
介绍
OpenAI 是一个人工智能公司,他们开发了一系列先进的自然语言处理模型,其中包括 GPT(Generative Pre-trained Transformer)系列模型。在本次示例中,使用的是 OpenAI 的 GPT-3.5 Turbo 模型,它是 GPT 系列中的一个变种,具有更高的性能和效率。
通过 OpenAI 提供的 API,开发者可以利用这些先进的自然语言处理模型来实现各种应用,例如对话生成、文本摘要、语言翻译等。在这段代码中,使用了 OpenAI 提供的对话生成功能,即利用 GPT-3.5 Turbo 模型来生成对话回复。
通过调用 OpenAI 的 API,开发者可以将复杂的自然语言处理任务交给这些强大的模型来处理,从而节省了大量的开发时间和资源,并且能够获得高质量的结果。这使得开发者能够更轻松地构建出智能对话系统、智能客服系统、文本生成工具等应用,提升用户体验和系统的智能化程度。
是不是觉得很炫酷?话不多说直接上车!
准备事项
1. node
在本项目中,使用OpenAi接口需要用到node安装OpenAi库,(注意:必须使用新版本的node老版本的会报错)
。可在命令行输入node -v 查看node是否安装完成以及node的版本号。
2. github账号
在注册完GitHub账号之后,进入地址github.com/chatanywher…
申请获得免费的key此时便可得到本账号的key(GitHub必须注册超过7天才可获得key)
Node.js代码的编写
注意:该项目需保证电脑处于科学上网状态
环境搭建
1.初始化后端工程
在终端打开创建的项目目录,输入指令npm init -y
初始化后端工程
初始化成功后会出现文件package.json
如下示例:
2. 安装OpenAi库
在终端输入指令npm i openai
将openai库安装至本项目中。成功安装后会出现以下情况:
代码详解
const OpenAI = require('openai')
// 实例化
const client = new OpenAI({
apiKey: 'xxxxxx', // xxx为GitHub授权的每个账号的key值
baseURL: 'https://api.chatanywhere.tech/v1'
})
async function main() {
const chatCompletion = await client.chat.completions.create(
{
messages: [{ role: 'user', content: '你是谁创造的?' }],
model: 'gpt-3.5-turbo'
}
)
console.log(chatCompletion.choices[0]);
}
main()
运行结果如下:
通过以上代码,便可以实现对OpenAi接口的访问,此时我们便可以在项目中使用大模型。
那么上述代码都起到什么作用呢?
-
const OpenAI = require('openai') 导入的是一个用于与OpenAI API进行通信的Node.js库,这种操作通常在后端项目中进行,以便服务器端能够与外部服务进行交互。
-
const client = new OpenAI({ apiKey: '...', baseURL: '...' }) 实例化了一个OpenAI客户端,用于向OpenAI的API发送请求。这也是在后端进行的操作。
apiKey
: 这是一个用于认证和授权访问 OpenAI API 的密钥。在这个例子中,密钥是硬编码的,但在实际应用中,你应该将它存储在环境变量或配置文件中,以保证安全性。baseURL
: 这是 OpenAI API 的基础 URL。在这个例子中,使用是https://api.chatanywhere.tech/v1
,而不是 OpenAI 官方的 API 地址。这可能是因为使用了某种代理或中间层服务。
- 属性 role:
在此项目中role的属性为user,意思是当前项目所扮演的角色是用户,可以根据我们输入的content
属性来调用OpenAi接口返回内容。
4.content属性:
content属性包含来自role的消息文本,大模型根据content值的不同响应出不同的内容,如以下示例:
async function main() {
const chatCompletion = await client.chat.completions.create(
{
messages: [{ role: 'user', content: '你是谁?' }],
model: 'gpt-3.5-turbo'
}
)
console.log(chatCompletion.choices[0]);
}
async function main() {
const chatCompletion = await client.chat.completions.create(
{
messages: [{ role: 'user', content: '请你简单介绍一下你自己' }],
model: 'gpt-3.5-turbo'
}
)
console.log(chatCompletion.choices[0]);
}
总的来说,这段代码使用 OpenAI 的语言模型 API 来生成对问题 "xxx" 的回复。它首先初始化一个 OpenAI 客户端,然后调用 chat.completions.create
方法,传入问题作为消息历史记录,并指定使用 gpt-3.5-turbo
模型。最后,它打印出模型生成的第一个回复选择。
这样我们就实现了利用大模型实现对话生成的简单应用。
本篇文章就到此为止啦,希望通过这篇文章能对你了解OpenAI API 实现对话生成
有所帮助,本人水平有限难免会有纰漏,欢迎大家指正。如觉得这篇文章对你有帮助的话,欢迎点赞收藏加关注,感谢支持🌹🌹。
转载自:https://juejin.cn/post/7368753329667604543