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

  • 国家反诈中心收不到验证码是怎么回事(国家反诈中心收到短信)

    国家反诈中心收不到验证码是怎么回事(国家反诈中心收到短信)

  • 索尼l36h(索尼l36)(索尼l36h上市价格)

    索尼l36h(索尼l36)(索尼l36h上市价格)

  • 红魔6spro是双卡双待吗(红魔6spro可以插内存卡吗)

    红魔6spro是双卡双待吗(红魔6spro可以插内存卡吗)

  • 如何查到自己的所有体检记录(如何查到自己的手机号是多少)

    如何查到自己的所有体检记录(如何查到自己的手机号是多少)

  • 苹果微信悬浮窗怎么打开(苹果微信悬浮窗怎么弄出来)

    苹果微信悬浮窗怎么打开(苹果微信悬浮窗怎么弄出来)

  • 1g流量等于多少兆(1g流量等于多少mb内存空间)

    1g流量等于多少兆(1g流量等于多少mb内存空间)

  • LOL什么意思(lolololol什么意思)

    LOL什么意思(lolololol什么意思)

  • 三星手机自带应用商店(三星手机自带应用商店下载)

    三星手机自带应用商店(三星手机自带应用商店下载)

  • 淘宝开团是什么意思啊(淘宝开团是什么意思,不能直接买吗)

    淘宝开团是什么意思啊(淘宝开团是什么意思,不能直接买吗)

  • 手机版问卷星怎么导出(手机版问卷星怎么导出到word)

    手机版问卷星怎么导出(手机版问卷星怎么导出到word)

  • oppo手机电量旁边有个长方形(oppo手机电量旁边显示耳机怎么回事)

    oppo手机电量旁边有个长方形(oppo手机电量旁边显示耳机怎么回事)

  • 华为文字识别怎么使用(华为文字识别怎样设置)

    华为文字识别怎么使用(华为文字识别怎样设置)

  • 阿里旺旺号是什么(阿里旺旺号是什么?在哪里看)

    阿里旺旺号是什么(阿里旺旺号是什么?在哪里看)

  • 微信好友加入黑名单后,他还可以加你吗(微信好友加入黑名单后如何恢复)

    微信好友加入黑名单后,他还可以加你吗(微信好友加入黑名单后如何恢复)

  • vivo实名认证能解除吗(vivo实名认证能改几遍)

    vivo实名认证能解除吗(vivo实名认证能改几遍)

  • iphonex全黑模式如何开启(iphonex专属全黑模式)

    iphonex全黑模式如何开启(iphonex专属全黑模式)

  • 笔记本摄像头像素一般多少(笔记本摄像头像素可以调吗)

    笔记本摄像头像素一般多少(笔记本摄像头像素可以调吗)

  • 话费可以提现到微信吗(话费可以提现到qq钱包)

    话费可以提现到微信吗(话费可以提现到qq钱包)

  • 小米五的低温关机解决方法(小米五的低温关机怎么关)

    小米五的低温关机解决方法(小米五的低温关机怎么关)

  • 华为p30pro怎样截屏(华为p30pro怎样截长屏)

    华为p30pro怎样截屏(华为p30pro怎样截长屏)

  • 京东评价管理在哪里(京东的评价系统)

    京东评价管理在哪里(京东的评价系统)

  • 盯盯拍mini3pro和mini3的区别(盯盯拍mini3pro和minione对比)

    盯盯拍mini3pro和mini3的区别(盯盯拍mini3pro和minione对比)

  • 手机设置黑名单后对方听到的是(手机设置黑名单在哪里)

    手机设置黑名单后对方听到的是(手机设置黑名单在哪里)

  • 钉钉文件手机保存位置(钉钉文件手机保存多久)

    钉钉文件手机保存位置(钉钉文件手机保存多久)

  • 朋友圈怎么屏蔽一些人(朋友圈怎么屏蔽共同好友点赞)

    朋友圈怎么屏蔽一些人(朋友圈怎么屏蔽共同好友点赞)

  • 跨年度调整税金及附加
  • 防伪税控系统
  • 环境保护税是什么科目
  • 没有发票先入账怎么办
  • 个税汇算清缴时全年一次性奖金汇总到工资薪金怎么操作
  • 代加工可靠吗
  • 租金营改增
  • 个人所得税申报操作流程
  • 金蝶导出报表
  • 维修企业主营项目有哪些
  • 没开发票的收入可以不入账吗
  • 接受实物投资纳印花税怎么缴纳?
  • 工程造价超出职称怎么办
  • 房地产公司预收账款明细科目
  • 公司买房需要交房产税吗
  • 房地产开发企业销售自行开发的房地产项目
  • 餐饮费发票税率是多少
  • 增值税税率
  • 个体户税务申报流程季度0申报
  • 公司注销其他应收款怎么冲平
  • 出口企业取得失业保险
  • 应收账款产生的利息分录
  • 小微企业免税的会计分录怎么写
  • 汇率调整怎么做分录
  • 公司卖二手车的流程
  • 华为鸿蒙harmonyos官网4.0升级
  • cachelib
  • 公司和个人分别交什么税
  • php的数组函数
  • 鸟瞰视野
  • php出现错误代码怎么办
  • 失控增值税专用发票
  • 一般纳税人筹建期不用交税吗
  • 详解16型人格
  • c++怎么创建文件夹
  • 计提增值税怎么计提
  • 公司地面硬化财务如何入账
  • 非限定性收入属于什么科目?
  • 帝国cms好用吗
  • 动态规划知乎
  • 有赞微小店认证麻烦
  • mysql查询日志位置
  • mongodb4
  • sql server功能介绍
  • 电子章打印不来
  • 高速费发票可以抵税吗
  • 快速实现愿望超灵的方法
  • 解决烧心最快方法
  • 为支持防疫工作捐款
  • 生产成本帐
  • 企业所得税季度预缴纳税申报表
  • 补发工资如何计算个税
  • 贷款减值准备如何计算
  • 财务报表年报里面的利息费用怎么填
  • 递延收益与递延负债的区别
  • 建筑行业异地预缴税率
  • 税务局代开发票作废可以申请退税吗?
  • 正确使用显微镜的七个步骤
  • window10总更新是怎么回事
  • 微软宣布将AI引入Office套件
  • ubuntu安装超详细教程
  • 苹果mac没有声音怎么办
  • centos6.5设置网络
  • virtualbouncer.exe是什么进程
  • window10的dns异常
  • ubuntu14.04升级
  • linux中cat命令的用法含义
  • 丢失msvcr80.dll
  • xp系统运行在哪
  • cocos2dx 3.17
  • Node.js connect ECONNREFUSED错误解决办法
  • cocoscreator lua
  • nodejs报错
  • Node.js生成HttpStatusCode辅助类发布到npm
  • jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
  • 常州国家税务局待遇
  • epc项目不接受联合体投标违规吗
  • 土地增值税分期清算条件?
  • 注册会计师人员名单
  • 消费税记不记入成本
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设