位置: 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购物车设计报告)

  • switch如何关机而不是待机(ns switch怎么关机)

    switch如何关机而不是待机(ns switch怎么关机)

  • 美团玩乐卡怎么开通(美团玩乐卡怎么买)

    美团玩乐卡怎么开通(美团玩乐卡怎么买)

  • opporeno3充电器多少瓦(opporeno3原装充电器型号)

    opporeno3充电器多少瓦(opporeno3原装充电器型号)

  • 微信扣费服务在哪(微信的续费服务怎么关)

    微信扣费服务在哪(微信的续费服务怎么关)

  • 抖音与微信的区别(抖音与微信的区别和联系)

    抖音与微信的区别(抖音与微信的区别和联系)

  • 充电器给电瓶充电怎样知道已充满(充电器给电瓶充电风扇不转什么原因)

    充电器给电瓶充电怎样知道已充满(充电器给电瓶充电风扇不转什么原因)

  • 苹果7信号怎么加强(苹果信号怎么显示)

    苹果7信号怎么加强(苹果信号怎么显示)

  • 蚂蚁森林收能量能干啥(蚂蚁森林收能量有什么用)

    蚂蚁森林收能量能干啥(蚂蚁森林收能量有什么用)

  • 微信背景视频能放多久(微信背景视频能听到声音吗)

    微信背景视频能放多久(微信背景视频能听到声音吗)

  • 微信新表情显示不出来(微信表情显示图片过大怎么办)

    微信新表情显示不出来(微信表情显示图片过大怎么办)

  • ip地址如何改(电脑ip地址如何改)

    ip地址如何改(电脑ip地址如何改)

  • 为什么连了蓝牙wifi网速慢(为什么连了蓝牙还是手机外放)

    为什么连了蓝牙wifi网速慢(为什么连了蓝牙还是手机外放)

  • 小红书笔记审核要多久(小红书笔记审核中是什么意思)

    小红书笔记审核要多久(小红书笔记审核中是什么意思)

  • 手机锁了怎么恢复出厂设置(手机锁了怎么恢复出厂设置密码)

    手机锁了怎么恢复出厂设置(手机锁了怎么恢复出厂设置密码)

  • 苹果x与max的区别(iphonex与xsmax的区别)

    苹果x与max的区别(iphonex与xsmax的区别)

  • 苹果led闪烁灯在哪(苹果led灯闪烁故障解决方法)

    苹果led闪烁灯在哪(苹果led灯闪烁故障解决方法)

  • 苹果8p的内存有几种(苹果8p内存有几种类型)

    苹果8p的内存有几种(苹果8p内存有几种类型)

  • oppor17机身多长厘米(oppor17机身多厚)

    oppor17机身多长厘米(oppor17机身多厚)

  • 小米摄像头设备已离线(小米摄像头设备共享怎么连接)

    小米摄像头设备已离线(小米摄像头设备共享怎么连接)

  • 怎样让微信收款码失效(怎样让微信收款时有声音提示)

    怎样让微信收款码失效(怎样让微信收款时有声音提示)

  • 淘宝被投诉盗图扣几分(淘宝被投诉盗图怎么办没有原图也可申诉成功)

    淘宝被投诉盗图扣几分(淘宝被投诉盗图怎么办没有原图也可申诉成功)

  • 手机萤石云怎么看回放(手机萤石云怎么清除缓存)

    手机萤石云怎么看回放(手机萤石云怎么清除缓存)

  • iphonex的的屏是什么材质(苹果x的屏幕是)

    iphonex的的屏是什么材质(苹果x的屏幕是)

  • 如何让时间显示在桌面(如何让时间显示到秒)

    如何让时间显示在桌面(如何让时间显示到秒)

  • 帝国cms 7.0怎么调用本信息所属专题,专题带链接(帝国cms php8.0)

    帝国cms 7.0怎么调用本信息所属专题,专题带链接(帝国cms php8.0)

  • 公司利润税怎么交
  • 天猫提现一直没到账
  • 建筑服务预征缴纳税款包括附加税吗
  • 小规模减免的增值税怎么做账
  • 利润表的调整
  • 用房租入股
  • 如果零申报
  • 小规模企业能否抵扣
  • 增值税专用发票可以开电子发票吗
  • 企业出包工程预付的工程款
  • 出差车费报销申请怎么写
  • 经济纠纷引发的刑事案件
  • 工程围挡做法
  • 企业支付的产品广告费应计入什么账户借方
  • 仓库的数量为负数怎么办
  • 国外预提税是什么
  • 会计去报税流程
  • 补缴税款会计处理
  • 劳务费增值税专用发票虚开一万元怎么补救
  • 取得稳岗补贴后怎么办
  • 预提工程成本的会计分录
  • 税控维护费发票图片
  • 绿植租赁公司都适合什么名字
  • 暂估入库发票回来怎么做账
  • 债券的到期收益率取决于
  • 以前年度应收账款无法收回
  • wifi安全助手每日提现
  • php初学实例教程
  • 出差回来报销会务费
  • 截图快捷键ctrl+alt+
  • ntkrpamp.exe
  • windows 11 正式版实际使用体验如何?
  • php判断字符串长度的方法
  • 保险储金是什么意思
  • 购买二手商住房没有给契税发票和购房发票
  • 合理损耗企业所得税税率
  • 成功解决冲突的能力英语
  • ChatGLM-6B (介绍以及本地部署)
  • php学生管理系统设计报告
  • apache php mysql开发环境安装教程
  • 转出多交增值税账务处理
  • 公司租赁个人车辆账务处理
  • 国税退税要多久能到账
  • 门锁开票的服务名称编码
  • dedecms源码
  • python concat函数用法
  • php的默认网站目录是
  • 公司增资该怎么做账
  • 存货按照计划成本法核算内容
  • 初始化流程
  • 企业非流动资产包括
  • 印花税多久申报一次2023
  • 交上年企业所得税怎么做会计分录
  • 营业税金及附加会计分录
  • 事业单位接受捐赠会计处理
  • 阿里云 远程连接
  • sql分几类
  • 服务器上文件共享
  • windows怎么连无线
  • 怎么使用mac打电话
  • mac os 删除
  • win8 屏幕键盘
  • win10控制面板如何卸载软件
  • 浮动浮动
  • cocos2dx在暂停某些元素后导致crash问题
  • shell脚本case语句判断成绩
  • Unity3D游戏开发基础
  • node.js在网页制作中的作用
  • Android之Volley
  • core文件的作用
  • linux shell终端
  • shell数值比较
  • httprequst向服务端发送请求错误
  • Compact 显示和更改 NTFS 分区上的文件或目录压缩
  • nodejs web服务器
  • 非正常户解除申请理由
  • 个人所得税完税证明图片
  • 税务意识形态工作主要内容有哪些
  • etc可以抵扣吗
  • 金税工程什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设