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

  • 网店如何做好广告为自己推广(网店如何做好广告宣传)

    网店如何做好广告为自己推广(网店如何做好广告宣传)

  • 网络营销推广怎么做才能有效引流——最新方法有哪些(网络营销推广怎么做的)

    网络营销推广怎么做才能有效引流——最新方法有哪些(网络营销推广怎么做的)

  • word中表格高度怎么调不动(word中表格高度怎么调整一致)

    word中表格高度怎么调不动(word中表格高度怎么调整一致)

  • 苹果6sp可以升级ios13吗(苹果6sp可以升级15.7.1吗)

    苹果6sp可以升级ios13吗(苹果6sp可以升级15.7.1吗)

  • 电脑应用程序发生异常怎么处理(电脑应用程序发生异常,未知的软件异常)

    电脑应用程序发生异常怎么处理(电脑应用程序发生异常,未知的软件异常)

  • 什么手机用久了不卡(什么手机用久了会卡)

    什么手机用久了不卡(什么手机用久了会卡)

  • 小米手机还原设置在哪(小米手机还原设置不会丢失数据)

    小米手机还原设置在哪(小米手机还原设置不会丢失数据)

  • 苹果a11处理器相当于麒麟多少(苹果a11处理器相当于天机多少)

    苹果a11处理器相当于麒麟多少(苹果a11处理器相当于天机多少)

  • 3500x配什么显卡(3500x配什么显卡性价比高)

    3500x配什么显卡(3500x配什么显卡性价比高)

  • 微信好友加入黑名单后 对方会知道吗(微信好友加入黑名单怎么找回来)

    微信好友加入黑名单后 对方会知道吗(微信好友加入黑名单怎么找回来)

  • kindledp75sdi是第几代(kindle型号dp75sdl)

    kindledp75sdi是第几代(kindle型号dp75sdl)

  • word设置中英文字体(word设置中英文字体怎么设置)

    word设置中英文字体(word设置中英文字体怎么设置)

  • windows7中的回收站实际上是(Windows7中的回收站用来)

    windows7中的回收站实际上是(Windows7中的回收站用来)

  • 苹果ch/a是什么版本(苹果ch/a是什么意思)

    苹果ch/a是什么版本(苹果ch/a是什么意思)

  • 淘宝领取会员卡在哪(淘宝会员卡片)

    淘宝领取会员卡在哪(淘宝会员卡片)

  • ios13查找别人id(ios13查找我的iphone怎么查找别人的手机)

    ios13查找别人id(ios13查找我的iphone怎么查找别人的手机)

  • 京东怎样申请延长收货(京东怎样申请延后收货)

    京东怎样申请延长收货(京东怎样申请延后收货)

  • 苹果11什么芯片(苹果14pro用的什么芯片)

    苹果11什么芯片(苹果14pro用的什么芯片)

  • 如何关闭电脑自动更新功能(如何关闭电脑自启动项)

    如何关闭电脑自动更新功能(如何关闭电脑自启动项)

  • wifi原始密码是多少(wfi原始密码是多少)

    wifi原始密码是多少(wfi原始密码是多少)

  • 微信步数多久更新一次(微信步数多久更新一次10点半之后还有176步)

    微信步数多久更新一次(微信步数多久更新一次10点半之后还有176步)

  • 苹果无线耳机一代二代区别(苹果无线耳机一边有声音一边没声音)

    苹果无线耳机一代二代区别(苹果无线耳机一边有声音一边没声音)

  • 【完整代码】用HTML/CSS制作一个美观的个人简介网页(代码怎么用?)

    【完整代码】用HTML/CSS制作一个美观的个人简介网页(代码怎么用?)

  • OpenAI发布ChatGPT:程序员瞬间不淡定了(openai发布企业版)

    OpenAI发布ChatGPT:程序员瞬间不淡定了(openai发布企业版)

  • 房屋出租何时缴税
  • 哪些准备金支出可实现税前扣除?
  • 劳务费可以开工程服务发票吗
  • 财产租赁合同印花税率多少
  • 其他现代服务税目包括哪些内容
  • 土地租赁增值税发票税是多少
  • 发票没有写纳税人识别号可以吗
  • 什么情况下要做试管怀孕
  • 异地劳务分包要外经证吗
  • 从业人数和资产总额是灰色
  • 进项税额大于销项税额需要结转吗
  • 物业电费加价如何举报
  • 企业购买原材料,货款未支付
  • 物业公司收取的电费怎么确认收入
  • 旅行社开哪里比较好
  • 旧设备变现损失抵减所得税怎么算
  • 财会【2016】22号文
  • 2017 160号文件
  • 开票资料没有电话号码可以写法人名字吗
  • 融资性售后回租和融资租赁的区别
  • 红色手撕发票怎么看金额
  • 销售商品包安装如何确认收入
  • 电子商务如何做账
  • 开红字发票后再开蓝字发票应如何入账?
  • 可以用鸿蒙系统的手机
  • 收到增值税进项税增量留抵退税如何列报
  • php字符串型数据的定义方式
  • openeuler安装gnome
  • PHP:Memcached::getDelayedByKey()的用法_Memcached类
  • 开出转账支票补付款项
  • 税务行政罚款会罚多少
  • vscode简单入门
  • 巴芬岛旅游
  • 固定资产以前年度未入账怎么处理
  • 车道线检测视频素材
  • 10倍理论
  • lscpu命令 显示CPU架构信息
  • 个人的无形资产
  • 管理费用的核算内容主要包括哪些
  • 预计可变现净值与账面成本的关系
  • 单位结余资金该如何处理
  • 增值税普通发票查询真伪
  • 运输公司内账会计每天需要做什么
  • 合理损耗如何计算单位成本
  • 捐赠固定资产怎么入账
  • 个体户如何填报工商年报资金数额
  • 公司拨款给个人分录
  • 对于相关人员培训存在的问题
  • 个人取得全年一次性奖金征税规定
  • 业务招待费扣除标准是多少
  • 用于出租的设备属于什么资产
  • 结转库存商品需要附件吗
  • 会议费报销管理办法
  • 企业对外借款是什么意思
  • 汇算清缴亏损弥补不能自动带出该怎么办
  • 税务局退还的三险是什么
  • 代收开票收入怎么做账
  • 独立核算的重要性
  • 报税中反写是什么意思
  • 发票上的数量怎么填写
  • 发票什么时间认证
  • 一般纳税人开错税率严重吗
  • 房产预售什么时候开始
  • SQL Server Alwayson添加监听器失败的解决方法
  • mysql a.
  • 64位CentOs7源码安装mysql-5.6.35过程分享
  • windows hellopin是什么意思
  • win7磁盘c满了怎么办却又分不清哪些是该删除
  • win7系统怎么看wi-fi密码
  • linux怎么设置桌面
  • cocos2dx schedule
  • xcode怎么新建项目
  • opengl房子建模
  • android事件分发流程图
  • 标题显示不出来
  • unity接入安卓sdk
  • [置顶]星陨计划
  • 稽查查补税款享受增值税免税优惠吗
  • 网上报个人所得税
  • 车船税收费标准表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设