三分钟搭建一个自己的 ChatGPT (从开发到上线)

原文链接:https://icloudnative.io/posts/build-chatgpt-web-using-laf/
视频教程:https://www.bilibili.com/video/BV1cx4y1K7B2/

前提条件:你需要准备一个 ChatGPT 账号并且生成一个 API Key (这一步可以问 Google )

云函数教学

首先需要登录 laf.dev,然后新建一个应用。
在这里插入图片描述
点击开发按钮进入开发页面。

在这里插入图片描述
在 NPM 依赖面板中点击右上角的 +:
在这里插入图片描述
然后输入 chatgpt 并回车进行搜索,选择第一个搜索结果,保存并重启:

在这里插入图片描述
重启之后,自定义依赖项中便出现了 chatgpt。
在这里插入图片描述
然后就可以像我一样新建一个云函数名字叫 send,并写入以下内容:

import cloud from '@lafjs/cloud'
export async function main(ctx: FunctionContext) {const { ChatGPTAPI } = await import('chatgpt')const api = new ChatGPTAPI({ apiKey: cloud.env.CHAT_GPT_API_KEY })let res = await api.sendMessage('“鸡你太美”指的是中国大陆哪位男艺人?给你个提示,他喜欢唱、跳、篮球、Rap')console.log(res.text)return res.text
}

在这里插入图片描述
API Key 是通过环境变量 CHAT_GPT_API_KEY 传入的,所以我们还需要创建一个环境变量。点击左下角的设置图标:在这里插入图片描述
依次选择「环境变量」–> 「新增环境变量」,输入环境变量的名称和值,然后点击「确定」,再点击「更新」,便会重启应用。在这里插入图片描述
现在点击右上角的「运行」,即可调试运行。
在这里插入图片描述
Perfect!现在我们来试试添加追踪上下文的功能。其实也很简单,只需要在对话时传入上一次对话的 ID 即可,代码如下:

import cloud from '@lafjs/cloud'
export async function main(ctx: FunctionContext) {const { ChatGPTAPI } = await import('chatgpt')const api = new ChatGPTAPI({ apiKey: cloud.env.CHAT_GPT_API_KEY })let res = await api.sendMessage('“鸡你太美”指的是中国大陆哪位男艺人?给你个提示,他喜欢唱、跳、篮球、Rap')console.log(res.text)// 传入 parentMessageId 追踪上下文res = await api.sendMessage('不对,他姓蔡,请重新回答', {parentMessageId: res.id})console.log(res.text)return res.text
}

运行一下看看:
在这里插入图片描述
好厉害,竟然两次就答对了我的问题!

好了,现在才开始真的计时,因为刚刚是教学环节,不计入耗时😁

云函数

接下来我们就可以开始动手打造自己的 ChatGPT 了,首先把上一节的函数替换为下面的内容:

import cloud from '@lafjs/cloud'export async function main(ctx: FunctionContext) {const { ChatGPTAPI } = await import('chatgpt')const data = ctx.body// 这里需要把 api 对象放入 cloud.shared 不然无法追踪上下文let api = cloud.shared.get('api')if (!api) {api = new ChatGPTAPI({ apiKey: cloud.env.CHAT_GPT_API_KEY })cloud.shared.set('api', api)}let res// 这里前端如果传过来 parentMessageId 则代表需要追踪上下文if (!data.parentMessageId) {res = await api.sendMessage(data.message)} else {res = await api.sendMessage(data.message, { parentMessageId: data.parentMessageId })}return res
}

现在应该很好理解这个函数了吧?

前端

我们要实现的是 Web 版 ChatGPT,所以还需要一个前端页面。首先需要安装 Laf 的 SDK:

$ npm install laf-client-sdk

接下来,需要创建一个 cloud 对象:

import { Cloud } from "laf-client-sdk"; // 创建 cloud 对象 这里需要将 <appid> 替换成自己的 App ID
const cloud = new Cloud({baseUrl: "https://<appid>.laf.dev",getAccessToken: () => "", // 这里不需要授权,先填空
});

这里我们看一下前端的核心代码,非常的简单,就是把提问的内容和上下文 id 传入云函数就可以了

async function send() {// 我们提问的内容
const message = question.value;let res;
// 与云函数逻辑一样,有上下文 id 就传入
if (!parentMessageId.value) {res = await cloud.invoke("send", { message });
} else {res = await cloud.invoke("send", { message, parentMessageId: parentMessageId.value });
}// 回复我们的内容在 res.text // 这个是上下文 id
parentMessageId.value = res.id;
}

到这一步 我们已经可以发信息给 ChatGPT 并且拿到回复的消息了。

我们只要稍微加亿点点细节,就可以变成这样:
在这里插入图片描述

项目源码:https://github.com/zuoFeng59556/chatGPT
示例网站:https://jyf6wk-chat-gpt.site.laf.dev/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10360.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我的ChatGPT学习笔记001

大家好啊&#xff0c;我是了不起&#xff01; 前一段时间ChatGPT突然火爆&#xff0c;大佬们纷纷下场。我也跟着努力学习&#xff0c;做了一些笔记。 下面将陆续放出笔记&#xff0c;共享给小伙伴们&#xff01; 笔记一&#xff1a;ChatGPT的基础知识简介 1&#xff09;什么是…

【微信小程序】2022最新用户信息授权方式

先看一波调整公告 用户信息授权方式变更为”头像昵称填写“ 最新授权方式 可自定义 也可使用微信信息 代码&#xff1a; <button class"avatar-wrapper" open-type"chooseAvatar" bind:chooseavatar"onChooseAvatar"><image class&qu…

1.下架已上线的小程序;2.设置不允许被用户搜索到

下架已上线的小程序&#xff1a; 登录微信开发者后台【设置】-【功能设置】-【暂停服务设置】-【暂停服务】&#xff0c;如图 设置小程序不允许被用户搜索到&#xff1a; 登录微信开发者后台【设置】-【功能设置】-【隐私设置】-【关闭】&#xff0c;如图 操作过程中遇到的问…

chatgpt赋能python:模拟手机App登陆:Python实现

模拟手机App登陆&#xff1a;Python实现 在移动互联网时代&#xff0c;手机App已经成为人们日常生活不可或缺的一部分。而对于开发人员来说&#xff0c;模拟App登陆是一项基本的技能要求。本文将介绍如何使用Python实现模拟手机App登陆&#xff0c;并进一步探讨其中的优势和应…

iOS-汤姆猫项目总结

功能分析 点击对应的按钮后&#xff0c;让汤姆猫展现对应的动画 步骤分析 1、搭建UI界面 2、监听按钮点击 3、根据点击的按钮执行对应的动画 知识点&#xff1a; 1、UIImageView帧动画的使用 2、UIImage的2种加载方式 3、重复代码的封装抽取 4、文档注释的写法 UIIm…

一夜爆火的现象级产品ChatGPT,是AI突破还是昙花乍现?

导语 | 编写代码、翻译小说、参加考试……2022 年末&#xff0c;人工智能聊天机器人 ChatGPT 风靡全网。自 2016 年 AlphaGo 击败围棋世界冠军李世石后&#xff0c;ChatGPT 再次掀起了人工智能发展应用的高潮。它将会给我们带来哪些影响&#xff1f;人工智能的颠覆性应用是否即…

ChatGPT泄露用户聊天记录标题;Adobe加入AIGC战局;阿里大模型前带头人杨红霞加盟字节跳动丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 诸葛智能推出“诸葛CDP 2.0”等三大产品升级 3月22日&#xff0c;容联云旗下场景化数据智能服务商“诸葛智能”举办2023春季发布会&#xff0c;推出客户数据管理平台“诸葛CDP 2.0”、一站式用户行为分析平台“…

刚问世的ChatGPT聊天机器人如何带你把握蔚来Android车载面试

2023年初&#xff0c;一款名为ChatGTP的AI聊天机器人引起了科技圈的骚动。 美国OpenAI公司2022年11月30日正式发布ChatGPT&#xff0c;上线仅5天&#xff0c;ChatGPT的注册用户数突破100万&#xff1b;今年1月末&#xff0c;ChatGPT的月活用户数破亿&#xff0c;就此成为史上用…

2023最新抖音取图小程序源码分享,带会员功能对接支付部署教程

文章目录 系统简介一&#xff1a;代码分享二、上线教程总结 前言 小程序平台&#xff1a;抖音 小程序名称&#xff1a;云云壁纸 版本号&#xff1a;3.0 基础功能&#xff1a;壁纸表情包头像封面图上传、达人入驻、达人管理、广告配置、达人分销、团队管理、数据图表&#xf…

抖音小程序实践四:实现小程序分享

有时候我们要把一个小程序分享给别人&#xff0c;去看套餐、买东西之类的&#xff0c;是一个很常见的功能&#xff0c;但是在接入抖音小程序的时候&#xff0c;初始化右上角三个点并没有分享的入口&#xff0c;那看来不是要申请&#xff0c;就是有别的开发的口子了。下面我们一…

原创精美微信小程序UI界面——抖音版的“知乎”来啦

大家好&#xff0c;我又回来啦>3< 最近其实没做成什么事情&#xff0c;去了一个本地的公司实习了三个月&#xff0c;做的是全栈的工作&#xff0c;对于未来的工作有了一点小小的感触&#xff0c;也增进了一些技术方面的知识。薪资是比去年找的实习涨了1.5倍&#xff0c;不…

微信小程序——仿抖音短视频切换效果

一直以为抖音短视频切换假如用小程序做的话应该是比较简单的&#xff0c;直接用swiper实现就好&#xff0c;但在实际写的过程中才发现没那么简单&#xff0c;要控制的逻辑还是挺多的。 还是先看效果 体验路径 自定义组件系列》》仿抖音短视频切换 代码逻辑 直接调用自定义…

基于Uni-APP多端「h5+小程序+App」高仿抖音小视频|直播|聊天实例

uni-ttLive 基于uni-appuView-ui跨端开发短视频直播聊天实例。 全新研发的一款多端仿制抖音短视频直播聊天项目&#xff0c;基于uniAppVue.jsVuexNvueuViewUIuaPopup等技术开发而成。支持播放/暂停/上下滑动切换、全屏沉浸式体验。 功能特点 导航条底部菜单透明式全屏模式流畅…

最新抖音娱乐测评小程序源码 Thinkphp后端 抖音引流小程序

最新抖音娱乐测评小程序源码 thinkphp后端 抖音引流小程序 附搭建教程 测试环境 NginxPHP7.0MySQL5.6 网站运行目录设置为 /web 数据库配置文件 \source\application\database.php 后台登录地址 http://你的域名/index.php?s/admin/passport/login

谷歌广告账号注册很难?请收下这篇谷歌账号注册指南

做跨境电商这一行业的&#xff0c;相信都会去了解谷歌广告账户。Google广告是Google的广告平台&#xff0c;一般在用户使用引擎搜索的时候推送。为什么大家都要去开通Google广告账户呢&#xff1f;因为Google广告能够快速提升品牌曝光度&#xff0c;特别是当用户使用谷歌浏览器…

谷歌登录登录

一、下载 https://pan.tencent.com/web/share/5b2b9738edeee25803d8ec22ad8967c6 二、打开谷歌 点点点 -- > 更多工具 -- > 扩展程序 点击已解压的扩展程序&#xff0c;添加下载的文件夹 三、然后就能打开啦

Google登录授权详细过程

前言 这篇文章包含了google登录授权从API创建、到使用Java代码完成登录的一个完整demo。 主要为了实现google关联用户的服务&#xff0c;如google merchant center等。 如果仅仅需要使用google邮箱登录&#xff0c;建议由前端实现google登录&#xff1a; 1&#xff0c;国内网…

换IP软件如何使用,一起来看下换IP软件的使用教程

现在的互联网趋势&#xff0c;越多越多的人需要使用动态IP&#xff0c;像爬虫采集、微信用户、网络营销、博客互动、SEO优化等等&#xff0c;都需要使用动态IP去隐藏自身的IP地址去操作&#xff0c;这个使用可以使用换IP软件。其实现在市面上很多换IP软件都支持动态静态线路&am…

如何屏蔽所有国外ip,禁止国外IP访问网站

众说周知一般的CC攻击DDOS攻击等大范围的网络攻击都来自境外&#xff0c;但是如何能大批量的屏蔽国外ip&#xff0c;禁止国外IP访问网站应该怎么做&#xff0c;相信大家都会说加黑名单啊&#xff0c;但是很多人可能还不知道怎么添加黑名单&#xff0c;黑名单的操作也是比较麻烦…