首页 > 其他分享 >三分钟拥有自己的 chat-gpt (开发到上线)

三分钟拥有自己的 chat-gpt (开发到上线)

时间:2023-06-13 19:02:33浏览次数:37  
标签:res laf 三分钟 parentMessageId 点击 api chat gpt cloud

三分钟拥有自己的 chat-gpt (开发到上线)

  • 首先你需要有一个 laf 账号,如果你还不知道 laf 是什么,点击这里三分钟学会
  • 然后你还需要有一个 chat-gpt 的账号并且生成一个 apiKey (这一步可以问 Google )

云函数

具备了上面这两个条件我们就可以开始啦。
点击 NPM 依赖右边的加号 file 搜索 chatgpt 找到对应的 npm 包 保存并重启应用。 alt 属性文本
然后就可以像我一样新建一个云函数 名字叫send并写入以下内容(记得更换 apiKey)

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: "这里需要换成你自己的apiKey哦" })
    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
}

前端

前端项目中老三样

// 安装 laf sdk
 npm install laf-client-sdk 

// 引入
import { Cloud } from "laf-client-sdk"; 

// 创建 cloud 对象 这里换掉appid
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 并且拿到回复的消息了。
我们只要稍微加亿点点细节,就可以变成这样。
alt 属性文本
加完这点细节之后,基本开发工作就完成了,接下来就是把项目上线分享给你的朋友,顺便装个杯。
说到上线我们现在应该要去 买一台服务器 安装nginx 配置nginx 解析域名 绑定域名...

NO NO NO 我不允许你浪费年轻而美好的生命,life is short, you need laf :)

上线

打开你的 laf 点击存储界面->点击上方加号->创建一个权限为 readonly 的存储桶(名字随意) alt 属性文本
创建完之后 在你的前端项目中运行打包命令 我这里是 npm run build,打包完毕之后找到打包好的 dist 文件夹。
像我一样把 dist 文件里面的所有东西都上传到我们刚刚创建的存储桶里面,记住是原封不动的上传哦,文件就是文件,文件夹就是文件夹。 alt 属性文本
上传完毕之后,发现右上角有一个 “开启网站托管” 点一下。 alt 属性文本
点完之后出来一个链接,我们点击一下访问看看是啥东西。 alt 属性文本

哦!我的老天鹅呀 这不就是我刚刚开发的项目吗?

alt 属性文本
恭喜 到这里你的项目已经上线了,快分享给你的好朋友吧!
点击这里查看我的 chatGPT
点击这里查看项目源码(样式部分是从 chatGPT 官网复制过来的有些乱)

原文地址 sealos 以kubernetes为内核的云操作系统发行版,让云原生简单普及

laf 写代码像写博客一样简单,什么docker kubernetes统统不关心,我只关心写业务!

标签:res,laf,三分钟,parentMessageId,点击,api,chat,gpt,cloud
From: https://blog.51cto.com/fangnux/6471998

相关文章

  • gpt 答题
    Kubernetes提供了四种常见的发布策略,它们是RollingUpdate、Recreate、Blue/GreenDeployment和CanaryDeployment:RollingUpdate:这是Kubernetes的默认发布策略,它在更新过程中不会停止Pod的服务,并且逐渐地将新版本的Pod替换旧版本的Pod。RollingUpdate可以保证应用程......
  • 利用ChatGPT做营销的终极指南【建议收藏】
    ChatGPT是一种基于AI技术的语言模型,它可以与用户进行对话和交互。它被广泛应用于各个领域,包括市场营销。作为一名市场营销人员,您可以使用ChatGPT来获得创意、解决问题和生成内容。下面是190个ChatGPT提示,可帮助营销人员更好地利用这项技术提高营销效率与质量,您可以在ChatGPT-知否AI......
  • OpenAI官方发布ChatGPT最佳实践
    策略一:写清楚指令要知道,模型可不会“读心术”,所以你得把你的要求明明白白地写出来。当模型输出变得太啰嗦时,你可以要求它回答简洁明了。相反地,如果输出太过简单,你可以毫不客气地要求它用专业水平来写。如果你对GPT输出的格式不满意,那就先给它展示你期望的格式,并要求它以同样的......
  • ChatGPT之问艺道:如何借助神级算法Prompt,让你轻松get到更高质量答案?
    摘要:本文由葡萄城技术团队编写,文章的内容借鉴于IbrahimJohn的《TheArtofAskingChatGPT》(向ChatGPT提问的艺术)。前言当今,ChatGPT赢得越来越多人的青睐,人们通过它输入问题并获取答案。但除了简单的一问一答以外,ChatGPT还有许多隐藏的提问方式,是否想要一探究竟?今天,我们为您......
  • 使用 ChatGPT 创建 APP 的最佳实践
     ​关注文章下方公众号,可免费获取AIGC最新学习资料导读:如果你想用用ChatGPT创建应用程序来赚钱,这是你需要知道的。本文字数:2900,阅读时长大约:18分钟如果你想用ChatGPT创建应用程序来赚钱,这是你需要知道的。 我最好先说出坏消息。如果你认为可以两手一摊,就让ChatGPT为你编......
  • 文心一言 VS 讯飞星火 VS chatgpt (39)-- 算法导论5.4 3题
    三、在生日悖论的分析中,要求各人生日彼此独立是否很重要?或者,是否只要两两成对独立就足够了?证明你的答案。文心一言:在生日悖论的分析中,要求各人生日彼此独立是非常重要的。这是因为,如果各人生日不是独立的,而是存在一定的相关性,那么就会影响到概率的计算,从而影响到生日悖论的分析结......
  • 文心一言 VS 讯飞星火 VS chatgpt (39)-- 算法导论5.4 3题
    三、在生日悖论的分析中,要求各人生日彼此独立是否很重要?或者,是否只要两两成对独立就足够了?证明你的答案。文心一言:在生日悖论的分析中,要求各人生日彼此独立是非常重要的。这是因为,如果各人生日不是独立的,而是存在一定的相关性,那么就会影响到概率的计算,从而影响到生日悖论的分......
  • 1分钟搭建自己的Chatjpt网站
    首先搭建一个GPT网站,我们需要一台云服务器和一份镜像文件。我这里以阿里云为例,然后点击左上角的产品选择云服务器,点击立即购买。在这里选择阿里云提供的国际服务器,好处是可以避免网络带来的烦恼,在购买页选择按量付费,并且地域选择美国硅谷服务器,为了降低成本,我们可以选择一核0.5g的......
  • ChatGTP--事务是否生效?
    项目场景:由于最近在做一个项目的cola代码改造,所以由于cola需要在service和dao层中间加一层>>>gateway,和springcloud中的gateway不一样,这个仅仅是抽象了一层;思考:现在我的事务依然在service中开启,那么我的事务经过了一个gateway后,再次调用dao层,事务是否会生效?1生效......
  • 开发者 vs ChatGPT:开发者如何始终赢得比赛?
    【摘要】在不断发展的技术领域,开发人员在塑造我们生活的数字世界方面发挥着至关重要的作用。他们是架构师、问题解决者和创新软件解决方案背后的创造性思维。虽然像ChatGPT这样的人工智能模型在自然语言处理方面取得了重大进步,但开发人员仍然是软件开发成功的关键。本文探讨了开......