node学习openai库入门及使用(一)

2023-11-19

第一章 node学习openai库入门及使用(一)



前言

众所周知,目前chatgpt已成为各大看官工作中使用频率特高的工具,目前市面上有各种已经搭建好的chatgpt源,今天小编就来告诉各位看官如何搭建一个属于自己的chatgpt平台。


一、node.js的openai库是什么?

Node.js的openai库是一个基于JavaScript语言提供的调用openai模型的软件工具包,它在Node.js平台上提供了与openai模型的通信接口和相关的辅助功能。开发者可以使用这个库来训练模型、生成文本等操作。

二、使用步骤

1.引入库

代码如下(示例):
要引入Node.js的openai库,需要先在你的项目中安装该库。你可以使用 npm 包管理器在控制台中运行以下命令来安装:

npm install openai

安装完成后,你可以使用 require 函数来引入库,在代码中使用 openai 来创建模型实例(此处我使用的模型是gpt-3.5-turbo模型),例如:

const openai = require('openai');

// 创建模型实例
const model = new openai.Model({
  apiKey: 'YOUR_API_KEY_HERE', // 替换为你的openai API key
  modelId: 'YOUR_MODEL_ID_HERE' // 替换为你要使用的模型ID
});

2.发送请求

此处我使用axios发送POST请求,调用openai的API进行聊天回复
代码如下(示例):
1.导入axios库:
在Node.js中,可以使用npm包管理器来安装axios库,在命令行中执行以下命令来安装

npm install axios

安装完成后,在你的Node.js代码文件中,可以通过如下方式导入axios库:

const axios = require('axios')

2.定义一个包含一条消息的数组,表示用户发出的聊天消息,其中包含聊天的内容和角色:

const message = [
    {
        role: "user",
        content: "你好"
    }
];

3.使用async/await语法,定义一个立即执行的异步函数,使用try/catch语法,捕捉请求过程中可能发生的错误,并将结果输出到控制台:

(async () => {
    try {
        let res = await axios.post('https://腾讯云云函数生成的代理或域名/v1/chat/completions', {
            "messages": message,
            "model": "gpt-3.5-turbo",
            "max_tokens": 2048,
            "temperature": 0.5,
            "top_p": 1,
            "n": 1
        }, {
            headers: {
                "Content-Type": "application/json",
                "Authorization": "Bearer YOUR_API_KEY_HERE"
            }
        })
        console.log(res.data.choices[0].message.content);
    } catch (error) {
        console.log(error.message);
    }
})()

该代码可以作为参考进行调试和改进。请注意使用自己的openai API key,并根据需要调整模型参数。


参考: 腾讯云云函数+APi网关代理教学

总结

以上就是今天要讲的内容,本文介绍了如何使用Node.js的openai库以及axios库来搭建一个自己的chatgpt平台。其中,openai库可以方便地训练模型、生成文本等操作,而axios库则可以方便地发送HTTP请求。需要注意的是,开发者需要先在自己的项目中安装这两个库,并根据需要调整模型参数。同时,在使用API之前,需要获取自己的openai API key,并在请求中提供该key的授权信息。最终,开发者可以通过这个平台进行聊天回复等操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

node学习openai库入门及使用(一) 的相关文章

随机推荐

  • 二进制在数学中的妙用

    二进制在数学中的妙用 goal00001111搜集整理 十 八世纪初 莱布尼茨发明了二进制数 当时的他肯定没有预料到二进制在信息时代会有着如此广泛的应用 二进制数以其工作可靠 运算简单 逻辑严密 容易实现 等特点 成为了计算机的专用语言 在
  • linux下安装中文输入法及vim支持中文的方法

    最近折腾Ubuntu 之前一直是用英文显示系统 输入法也是Ubuntu14默认的拼音 一开始也没觉得不好 可是在vim编辑文档时 需要添加注释 这就显得十分不方便 所以花点时间来解决这个问题 一开始是想找vim如何支持中文的方法 网络上的各
  • Springboot Maven显示缺少org.junit.jupiter.api

    原因 spring boot 2 2 之前使用的是 Junit4 而后续的使用的是Junit5 导致缺少包 解决方法 导入包
  • C语言-多选题

    C语言多选题 1 若有字符串char string和缓冲区char buf MAX LEN string非空 并且缓冲区长度MAX LEN大于string的长度 则将字符串string复制到缓冲区buf 下列做法正确的是 AB A spri
  • CentOS 7查看磁盘空间

    CentOS如何查看硬盘大小 CentOS是一种基于Linux的操作系统 主要用于服务器端应用 在服务器管理中 硬盘大小是一个非常重要的指标 查看硬盘大小可以帮助系统管理员有效地管理硬盘空间和避免硬盘满了的情况 方法一 使用df命令 df命
  • Unity 用脚本操作常用UI控件(上)

    控件介绍 在界面系统的术语中 将一个具有独立状态 外观和操作的对象称为控件 例如 常用的交互控件有按钮 输入框 滑动条等 常见的非交互式控件有文本标签 图片等 Unity采用了父子物体和组件的设计思想 其每个界面控件 往往也是由游戏物体挂载
  • 虚拟内存的最大容量与实际容量区别

    虚拟内存的最大容量与实际容量区别 1 概念介绍 虚拟内存的最大容量是计算机的地址结构 CPU寻址范围决定的 虚拟内存的实际容量是内存与外存之和 CPU寻址范围 两者的最小值 2 例题介绍 某计算机的地址结构是64位 按字节编址 内存大小51
  • 找准边界,吃定安全

    潜在的网络威胁 网络安全挑战层出不穷 如何确保网络安全 山石云 景赋能中小企业安全运营 让安全更有效 找准边界 吃定安全 往期文章 从访问控制谈起 再看零信任模型 威胁情报加持 泛边界下的全局主动防御体系如何着手 流量剧增 看山石网科如何打
  • UWB与蓝牙AOA定位技术简要对比

    1 UWB基本原理 UWB 超宽带技术 是基于IEEE802 15 4a z标准的利用纳秒级窄脉冲进行数据传输的无线通信技术 主要服务于微位置 micro location a person s placement to within a
  • java中如何将Long类型转为Integer类型

    注意不能直接在前面加个 int 而是 将Long型转换为int型 这里的Long型是包装类型 Long a 10 int b a intValue 即long intValue
  • Hx711调试过程

    1 体重板子最开始出现的问题 无法下载程序 指示灯不亮 解决办法 检查电源复位晶振 发现晶振还有 boot键坏了 2 问题 下载进程序以后 板子通过串口发到电脑上的数据不变 解决办法 先是查了关于HX711的各种资料 了解到 HX711芯片
  • pycharm内存不足时如何修改设置?

    Help gt Find Action gt type VM Options gt Click Edit Custom VM Options Pycharm 2016 2 will open the appropriate vmoption
  • MFC中操作Word文档

    首先我们需要导入word类库 电脑上需要安装了word 左击项目 点击类向导 添加类 C 选择类型库中的MFC类 本文章案例可点击下载 然后选择文件 位置选择从office安装目录中找到MSWORD OLB文件 然后点击 gt gt 添加所
  • 源码探索-ArrayList

    ArrayList 继承与实现关系 数组的相关属性 ArrayList底层是一个Object 数组 既然是数组 那么底层的工具类大多是会用到Arrays工具类去实现 函数探索 来看看构造函数 有三个构造函数 分别对应不同的生成内容 来看看添
  • linux 2.6.30 内核编译 提示 ‘make[1]: *** [arch/x86/vdso/vdso.so.dbg] Error 1’ 错误

    linux 2 6 30 编译出现如下错误 解决方案 打开 linux 2 6 30 arch x86 vdso Makefile 文件 1 修改28行 将 m elf x86 64 修改为 m64 2 修改72行 将 m elf i386
  • 语音识别学习记录 [再谈频率混叠(定量分析、离散采样后频谱的周期延拓)]

    前几天在语音识别学习记录 传说中的频率混叠和Nyquist定理 定性理解 中简单理解了一下频率混叠的原因 但是也发现了很多不明白的问题 1 为什么信号经过傅里叶变换后在频域是关于y轴对称的 这个问题的回答已经写在语音识别学习记录 信号经傅里
  • vue的指令

    Vue 的指令 一 Vue 的指令 1 指令的概念 指令 Directives 是 vue 为开发者提供的模板语法 用于辅助开发者渲染页面的基本结构 vue 中的指令按照不同的用途可以分为如下 6 大类 内容渲染指令 属性绑定指令 事件绑定
  • SQL 查询指定行数的数据。

    今天遇到一个关于 查询指定行数的数据 的sql查询语句问题 突然发现以前没怎么接触过 刚才想起来了 赶紧看了下文档 又上网搜了下 有了下面的东西 不知道有没有什么地方不对 oracle 先看一下文档中关于any和all的例子 很不错噢 An
  • Pytorch 深度强化学习模型训练速度慢

    最近一直在用Pytorch来训练深度强化学习模型 但是速度一直很慢 Gpu利用率也很低 一 起初开始在训练参数 batch size 200 graph size 40 epoch size 100000 训练速度一个epoch要4h 人麻
  • node学习openai库入门及使用(一)

    第一章 node学习openai库入门及使用 一 文章目录 第一章 node学习openai库入门及使用 一 前言 一 node js的openai库是什么 二 使用步骤 1 引入库 2 发送请求 总结 前言 众所周知 目前chatgpt已