位置: IT常识 - 正文

把ChatGPT接入我的个人网站

编辑:rootadmin
把ChatGPT接入我的个人网站 效果图

推荐整理分享把ChatGPT接入我的个人网站,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

详细内容和使用说明可以查看我的个人网站文章 把ChatGPT接入我的个人网站

献给有外网服务器的小伙伴

如果你本人已经有一台外网的服务器,并且页拥有一个OpenAI API Key,那么下面就可以参照我的教程来搭建一个自己的ChatGPT。

需要的环境Centos7(其他服务器也行)nodejs把ChatGPT接入我的个人网站

这里主要用到了node环境,所有的代码也是由JavaScript编写

安装依赖库

首先需要安装OpenAI提供的js库——openai,使用npm安装即可

npm install openai

然后再安装一个用于后面管理js后台运行的库——forever

npm install forever编写代码const WebSocket = require('ws')const {Configuration, OpenAIApi} = require('openai')const wss = new WebSocket.Server({port:8080})const config = new Configuration({apiKey: 'OPENAI_API_KEY'}); //这里的OPENAI_API_KEY是你自己的keyconst openai = new OpenAIApi(config);const welcomeStr = "Hello,我是胡海龙,这是我基于OpenAI搭建的类似ChatWindow,你可以像使用ChatGPT一样来使用它,如何搭建以及源码可以联系我:hhlworkspace@qq.com";wss.on('connection', ws=>{ ws.on('message', async (message)=>{ if(message =='[$check$]'){ ws.send('[$alive$]') }else{ const completion = await openai.createCompletion({ model: 'text-davinci-003', prompt: ''+message, max_tokens: 2048, stream: true, user: 'huhailong1121' },{responseType: 'stream'}); completion.data.on("data",(data)=>{ const lines = data ?.toString() ?.split("\n") .filter((line) => line.trim() !== ""); for (const line of lines) { const message = line.replace(/^data: /, ""); if (message === "[DONE]") { break; // Stream finished } try { const parsed = JSON.parse(message); ws.send(parsed.choices[0].text) } catch (error) { console.error("Could not JSON parse stream message", message, error); } } }) } })})

上面的代码含义:开启一个Websocket服务,然后接收到用户发送的消息后,使用openai库发起请求,然后把返回的数据推给前端用户,前端用户接收的时候用解析markdown的组件接收就可以。下面主要说一下请求openai的部分

const {Configuration, OpenAIApi} = require('openai')const config = new Configuration({apiKey: 'OPENAI_API_KEY'});const openai = new OpenAIApi(config);const completion = await openai.createCompletion({ model: 'text-davinci-003', prompt: ''+message, max_tokens: 2048, stream: true, user: 'huhailong1121' },{responseType: 'stream'}); completion.data.on("data",(data)=>{ const lines = data ?.toString() ?.split("\n") .filter((line) => line.trim() !== ""); for (const line of lines) { const message = line.replace(/^data: /, ""); if (message === "[DONE]") { break; // Stream finished } try { const parsed = JSON.parse(message); ws.send(parsed.choices[0].text) } catch (error) { console.error("Could not JSON parse stream message", message, error); } } })

首先是引入openai库中的 Configuration, OpenAIApi,然后配置apiKey,配置好以后创建请求——openai.createCompletion,注意,这里要使用同步去处理以下,参数的含义:

model:使用的模型,目前新的模型是text-davinci-003prompt:用户的提问和需求max_tokens:这个参数决定了能一次返回多少长度的结果,如果不是用stream的话这个设置的小可能会导致结果被截断stream:是否使用流方式返回结果,我这里使用了流方式返回结果,因为这样可以给用户更全的数据,不会截断,而且不会造成长时间阻塞,可以实时的动态的生成结果,给用户的体验更好user:用户标识,这个不设置也可以,还有其他更多的参数可以参考网上的资料

使用流后需要对data进行监听,监听中将返回的流先转为字符串,然后通过换行截取,去掉头部的data字符串后剩余的可以转为一个json对象,其中choices数组里面的text就是我们要的结果,所以将它发送给用户即可。

前端代码相对简单,就是单纯的websocket接收数据,然后渲染,只是样式上需要设计和调整,如果有需要前端代码的小伙伴可以前往我的个人网站进行下载,注册登录后点击资源即可下载:

如果对你有帮助记得要点赞哦~~~。

本文链接地址:https://www.jiuchutong.com/zhishi/297377.html 转载请保留说明!

上一篇:YOLOv7(目标检测)入门教程详解---检测,推理,训练(yolov5目标检测代码)

下一篇:JavaWeb 购物车项目(javaweb购物车设计报告)

  • win10企业版影响游戏吗(win10企业版会不会影响游戏性能)

    win10企业版影响游戏吗(win10企业版会不会影响游戏性能)

  • 优酷怎么调视频倍速(优酷怎么调视频亮度)

    优酷怎么调视频倍速(优酷怎么调视频亮度)

  • oppor17长多少cm(oppor17长宽厚是多少)

    oppor17长多少cm(oppor17长宽厚是多少)

  • 苹果手机微信抖音没有声音(苹果手机微信抖音都没有声音怎么弄)

    苹果手机微信抖音没有声音(苹果手机微信抖音都没有声音怎么弄)

  • 邮件中fyi什么意思(邮件中fri什么意思)

    邮件中fyi什么意思(邮件中fri什么意思)

  • 无法连接到通话网络是什么原因(oppo手机无法连接到通话网络)

    无法连接到通话网络是什么原因(oppo手机无法连接到通话网络)

  • 腾讯会员可以扫码给别人登录吗(腾讯会员可以扫码登录吗其它手机)

    腾讯会员可以扫码给别人登录吗(腾讯会员可以扫码登录吗其它手机)

  • 华为p20红外线功能怎么开启(华为p20红外线功能)

    华为p20红外线功能怎么开启(华为p20红外线功能)

  • 微信群里面的机器人是怎么来的(微信群里面的机器人怎么设置)

    微信群里面的机器人是怎么来的(微信群里面的机器人怎么设置)

  • 怎样关闭流量(怎样关闭流量提醒)

    怎样关闭流量(怎样关闭流量提醒)

  • oppok3耗电快怎么办(oppok3手机费电应该关闭什么)

    oppok3耗电快怎么办(oppok3手机费电应该关闭什么)

  • 微型计算机硬件系统的主要组成部分有哪些(微型计算机硬件系统中的主机主要包括)

    微型计算机硬件系统的主要组成部分有哪些(微型计算机硬件系统中的主机主要包括)

  • 小米10怎么设置呼吸灯(小米10怎么设置隐私相册)

    小米10怎么设置呼吸灯(小米10怎么设置隐私相册)

  • 支付宝加好友需要对方同意吗(支付宝加好友需要发送验证消息吗)

    支付宝加好友需要对方同意吗(支付宝加好友需要发送验证消息吗)

  • 光猫可以连接两个路由器吗(光猫可以连接两台电视吗)

    光猫可以连接两个路由器吗(光猫可以连接两台电视吗)

  • a7处理器相当于骁龙多少(a7处理器相当于什么处理器)

    a7处理器相当于骁龙多少(a7处理器相当于什么处理器)

  • 固态硬盘带缓存和不带有什么区别(笔记本固态硬盘带缓存)

    固态硬盘带缓存和不带有什么区别(笔记本固态硬盘带缓存)

  • 快手极速版视频怎么删除(快手极速版视频怎么删除作品)

    快手极速版视频怎么删除(快手极速版视频怎么删除作品)

  • 电脑平均值怎么操作(电脑平均值怎么算)

    电脑平均值怎么操作(电脑平均值怎么算)

  • 苹果xs用的什么处理器(苹果xs用的什么处理器芯片)

    苹果xs用的什么处理器(苹果xs用的什么处理器芯片)

  • 华为手机录音在哪里找(华为手机录音在哪个功能里面)

    华为手机录音在哪里找(华为手机录音在哪个功能里面)

  • 快手添加商品审核要多久(快手添加商品审核之后就直接上架么)

    快手添加商品审核要多久(快手添加商品审核之后就直接上架么)

  • 如何恢复电脑原始桌面(如何恢复电脑原来桌面)

    如何恢复电脑原始桌面(如何恢复电脑原来桌面)

  • 苹果蓝牙耳机序列号在哪里(苹果蓝牙耳机序列号在哪)

    苹果蓝牙耳机序列号在哪里(苹果蓝牙耳机序列号在哪)

  • 开发小程序有什么意义(开发小程序有什么财务风险)

    开发小程序有什么意义(开发小程序有什么财务风险)

  • windows11开始菜单如何改为经典? win11经典开始菜单的使用技巧(windows11开始菜单怎么居中)

    windows11开始菜单如何改为经典? win11经典开始菜单的使用技巧(windows11开始菜单怎么居中)

  • 腾讯电脑管家网络连接工具有什么功能?(腾讯电脑管家网络修复)

    腾讯电脑管家网络连接工具有什么功能?(腾讯电脑管家网络修复)

  • 企业出售土地的土地增值税计算方法
  • 小规模纳税人的企业所得税税率
  • 所得税汇算清缴时间期限
  • 售后回租利息可以抵税吗
  • 怎么把预付账款转到管理费用
  • 固定资产怎么进账
  • 会计差错更正流程
  • 购进库存商品溢余账务处理怎么做?
  • 创业就业带动补贴
  • 政府补助收入计算有了新变化
  • 以汽车出资
  • 商业收入会计分录
  • 转账支票背书有时间限制吗
  • 单位充话费送手机
  • 公司社保公积金最晚缴费时间段
  • 申办企业所得税抵缴带哪些资料?
  • 跨季度的发票怎么冲销
  • 外墙装饰公司的资质规定
  • 收回债权会计分录
  • 公司购买灯具的会计分录
  • 经营用的固定资产
  • 固定资产审计目标
  • 上年的费用本年能报销吗
  • 固定资产投资增值税进项税额抵扣规定
  • SymSPort.exe - SymSPort是什么进程 有何作用
  • 无形资产如何评估作价
  • 内部控制的概念最早是从什么得来的
  • 撤销权之诉需要哪些证据
  • 退税需要怎么操作
  • 销售旧的固定资产 税法规定
  • 融资租赁怎么做到表外
  • java 调用go
  • edge浏览器about:flags
  • 资产负债表中应交税费包括哪些
  • 发票过账和不过账是什么意思
  • 劳务费开发票后还需要交个税吗
  • 处置固定资产的增值税怎么处理
  • 什么叫点云数据
  • 原生js操作数组的方法
  • opencv图像识别特定形状
  • 变量与数据
  • php 编码
  • 外币账户如何设立
  • 关于酒店采购
  • 应纳所得税额等于利润总额减去差异
  • 建筑业为什么要报统计局
  • 贸易净利润
  • web开发百度百科
  • 新开公司怎么办理税务登记
  • SQL SERVER使用的是( )逻辑模型
  • 含税含运费价格,运费谁出
  • 会员退费怎么算
  • 接受母公司捐赠现金分录
  • 稳岗补贴支付范围
  • 一般纳税人的税负率是多少
  • 农副产品免税发票可以抵扣吗?
  • 退回多交的所得税怎么退
  • 应付票据贴现利息收入会计分录
  • 递延所得税转回税率不一致
  • 手工账明细账怎么登记
  • 法人存入公司账户会计分录
  • 购销合同印花税2023年新规定
  • 小规模需要进项税额吗
  • 公对私 预付款 税
  • 查询一个字段有哪些值
  • win7系统分辨率调错了黑屏
  • 电脑windows xp
  • 高德地图自动跳出来
  • 如何用jquery
  • 手机gpu过度绘制
  • jquery截取字符串的方法
  • jquerydom操作
  • jquery deferred对象
  • jquery.data
  • 嵌入式安卓开发入门
  • 非营利组织税务处理
  • 广西税务软件
  • 外经证注销网上操作
  • 五证合一后还需要去税务局吗
  • 忘记了密码怎么打开手机
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设