草庐IT

利用Github和Railway搭建专属的ChatGPT

乔克 2023-04-13 原文

​ChatGPT

什么是 ChatGPT

ChatGPT 是一个基于人工神经网络技术的自然语言处理模型,由 OpenAI 开发。它可以理解和生成自然语言,用于进行对话、翻译、文本摘要等任务。ChatGPT 是目前最先进的自然语言处理模型之一,它使用了大量的预训练数据和深度学习算法来实现高质量的自然语言处理能力。

ChatGPT 的工作原理

ChatGPT 是一个基于 Transformer 模型的自然语言处理模型,其工作原理可以分为两个阶段:预训练和微调。下面分别对这两个阶段进行详细介绍。

  1. 预训练阶段

ChatGPT 使用了大量的文本数据进行无监督的预训练,从而学习到了自然语言的表示方式。在这个阶段中,ChatGPT 使用了一种称为“掩码语言建模”的技术来训练模型。具体来说,它会将输入的文本中的一些单词随机掩盖掉,然后让模型去预测这些被掩盖掉的单词。这样的训练方式可以使得模型学习到单词之间的关系,从而获得更好的语言表示能力。

  1. 微调阶段

在预训练完成后,ChatGPT 可以通过微调来适应特定的任务。例如,对于对话任务,我们可以通过给 ChatGPT 提供一些已知的对话历史和当前回复来微调模型,从而使其能够更好地生成有意义的回复。在微调阶段中,ChatGPT 通常会使用有监督的学习方法,即使用带标注的数据进行训练,并通过优化损失函数来更新模型参数。总之,ChatGPT 的工作原理是通过预训练和微调两个阶段来学习自然语言表示,并在特定任务中使用这些表示来生成有意义的输出。

ChatGPT 的使用场景

ChatGPT 是一种通用的自然语言处理模型,它的使用场景非常广泛。以下是一些 ChatGPT 的主要应用场景:

  1. 对话系统:ChatGPT 可以被用来构建聊天机器人、智能客服等对话系统,通过学习大量的对话数据来生成自然流畅的回复。
  2. 机器翻译:ChatGPT 可以被用来进行机器翻译任务,即将一种语言的文本自动翻译成另一种语言的文本。
  3. 文本摘要:ChatGPT 可以被用来进行文本摘要任务,即从一篇较长的文章中提取出关键信息,并生成一份简洁的摘要。
  4. 问答系统:ChatGPT 可以被用来构建问答系统,即回答用户的问题。在这个场景下,ChatGPT 通常需要阅读和理解输入的问题,并通过搜索或推理来生成答案。
  5. 文本分类:ChatGPT 可以被用来进行文本分类任务,例如情感分析、垃圾邮件检测等。在这个场景下,ChatGPT 需要学习如何将文本映射到不同的类别。

哎,等等,这不都是说了一些废话么?到底用在哪呢?

这就看你具体的需求了,比如这篇文章上面的内容就是 ChatGPT 写的。

还比如我叫它帮我写一个创建 pipeline 的步骤。

这不比百度香?

下面就带搭建一个无需科学上网的 ChatGPT。

注册 ChatGPT

注册的步骤并不复杂,主要包含以下几步:

  1. 注册 ChatGPT 账号
  2. 通过短信接码平台[https://sms-activate.org/](https://sms-activate.org/)完成手机验证
  3. 通过[https://chat.openai.com/chat](https://chat.openai.com/chat)登录使用

获取 API Token

账号注册完成过后,通过https://platform.openai.com/登录。

image.png

然后点击 Personal 获取 API Keys。

创建一个新的 Secret Key 即可。

获取 Github 代码

项目自己写?

不可能!白嫖才香。

将https://github.com/Chanzhaoyu/chatgpt-web项目 fork 到自己的仓库中。

这不快哉?

开始部署

买服务器?安装软件?安装 Docker?

No!!!

那样的成本太高了。这里我们直接用国外的部署网站,目前比较著名的有:

  • fly.io
  • render.com
  • railway.app
  • vercel.com

我们选取 raliway.app 来进行我们的部署工作,访问:https://railway.app/,点击 Login,选择 Github 登录,并进行相关授权:

创建项目

点击New Project。

然后选择Deploy from Github repo。

然后选择 chatgpt-web 项目。

然后点击Deploy Now即可。

部署过程中,会 Build 镜像,可以查看具体的日志。

但是现在应用是无法正常启动的,因为我们没有配置ChatGPT API Key,报错如下:

添加配置

为了能够正常启动,我们需要添加OPENAI_API_KEY​或者OPENAI_ACCESS_TOKEN​参数,我这里使用前者,另外还要添加一个PORT​参数,默认3002端口。除此之外我还添加了AUTH_SECRET_KEY参数,主要是为我们自己的 GPT 增加一层访问控制,避免任何人都能使用。

添加完成后如下:

我们再来看应用日志,应用启动成功。

访问

1、我们可以在 Settings 处生成一个随机域名,如下:

然后就可以使用随机的域名访问了。

2、使用自定义域名,前提是需要自己准备一个可用的域名。

首先,添加一个自定义域名。

然后,添加一个 CNAME 即可。

然后就可以对话了。

更新

如果主代码有更新,我们只需要到 Github 上同步最新的代码。

然后 Railway 会自动更新。

关于 Railway

Railway 提供 5 美元,500 个小时/月的额度,用完了要么充钱,要么死亡,可以根据实际情况来选择,个人使用其实是足够了,无外乎多搞几个账号。

有关利用Github和Railway搭建专属的ChatGPT的更多相关文章

  1. 亚特兰蒂斯的回声(中文版): chatGPT 的杰作 - 2

    英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古

  2. 语法类似于 GitHub Flavored Markdown 的 Ruby markdown 解释器? - 2

    我使用Jekyll运行博客,并认为我会解决RedcarpetMarkdown解释器,因为它是developedandusedbyGitHub.好吧,我只是碰巧遇到了一个错误,去检查问题,然后foundthis.Maintainersays,"Asyouprobablyhavenoticed(harharharhar)Idon'thavetimetomaintainRedcarpetanymore.It'snotapriorityforme(IfindMarkdownthoroughlyboring)andit'snotapriorityforGitHub,becausewenolong

  3. ruby - vagrant 从 github 安装插件 - 2

    我们正在使用Vagrant进行部署,我们最终希望将此集群部署在Rackspace上。vagrant-rackspace插件是一个自然的选择,但它有一些错误,这些错误未包含在最新的0.1.1版本中(notablythatvagrantprovisiondoesn'twork)。我已经在我的personalfork中解决了这个问题通过合并其他人的工作来对存储库进行改造。是否可以从github安装vagrant插件?显而易见的事情没有奏效:[unix]$vagrantplugininstallvagrant-rackspace--plugin-sourcehttps://github.com

  4. ruby - 如何让 GitHub 页面使用 master 分支? - 2

    我有一个使用Jekyll托管在GitHub上的静态网站。问题是,我真的不需要master分支,因为存储库唯一包含的是网站。这样我就必须gitcheckoutgh-pages,然后gitmergemaster,然后gitpushorigingh-pages。有什么简单的方法可以摆脱gh-pages分支并直接从master推送? 最佳答案 Theproblemis,Idon'treallyneedthemasterbranch,astheonlythingtherepositorycontainsisthewebsite.Isthere

  5. 智能客服 | 浅谈人工智能聊天机器人ChatGPT - 2

    2022年底,OpenAI的预训练模型ChatGPT给人工智能领域的爱好者和研究人员留下了深刻的印象和启发,他展现的惊人能力将人工智能的研究和应用热度推向高潮,网上也充斥着和ChatGPT的各种聊天,他可以作诗、写小说、写代码、讨论疫情问题等。下面就是一些他的神回复:人命关天的坑: 写歌,留给词作者的机会不多了。。。 回答人类怎么样面对人工智能: 什么是ChatGPT?借用网上的一段介绍,ChatGPT是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具。它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动

  6. 【ChatGPT】ChatGPT 的 N 种用法 - 2

    目录ChatGPT简介技术原理应用未来发展ChatGPT的10 种用法ChatGPT简介ChatGPT是一种基于深度学习的大型语言模型,由OpenAI公司开发。技术原理GPT是GenerativePre-trainedTransformer的缩写,意为生成式预训练变压器。它的技术原理是使用了一个基于注意力机制的变压器(Trans

  7. ruby - 警告 : PATH set to RVM ruby but GEM_HOME and/or GEM_PATH not set, 请参阅 : https://github. com/wayneeseguin/rvm/issues/3212 - 2

    我每次打开终端时都会收到这个错误:警告:PATH设置为RVMruby​​但未设置GEM_HOME和/或GEM_PATH,请参阅:https://github.com/wayneeseguin/rvm/issues/3212这是在我最近安装zsh(oh-my-zsh)后开始发生的我不知道如何设置GEM_HOME和/或GEM_PATH的路径。 最佳答案 我也面临同样的问题,更改.zshrc中的以下行,exportPATH="/usr/local/heroku/bin:.........."到exportPATH="$PATH:/usr/

  8. ruby - github api v3 创建问题消息未找到 - 2

    当我尝试创建一个github问题时,它给出消息未找到回复。以及如何发送身份验证header。因为创建问题需要用户登录或验证curl-XPOST-i-d'{"title":"my-new-repo","body":"mynewissuedescription"}'https://api.github.com/repos/barterli/barter.li/issuesHTTP/1.1404NotFoundServer:GitHub.comDate:Wed,19Feb201407:11:33GMTContent-Type:application/json;charset=utf-8Sta

  9. ruby - 如何在 github 操作中捆绑安装私有(private) gem - 2

    我想通过github操作在gem上运行rspec(称之为priv_gem_a)。priv_gem_a依赖于私有(private)存储库中的另一个gem(称之为priv_gem_b)。但是,由于权限无效,我无法捆绑安装priv_gem_b。错误:Fetchinggemmetadatafromhttps://rubygems.org/..........Fetchinggit@github.com:myorg/priv_gem_bHostkeyverificationfailed.fatal:Couldnotreadfromremoterepository.Pleasemakesureyo

  10. ruby - 如何使用 webhooks 从 Gitlab 推送到 Github - 2

    如果我只能找到正确的手册,我的Google-fu就会让我失望,因为这看起来很明显。我有一个由我们的托管服务提供商安装的Gitlab服务器Gitlab服务器有很多项目。对于其中一些项目,我希望Gitlab每次从本地客户端推送到Gitlab时自动推送到远程存储库(在本例中为Github)。像这样:客户端-->gitlab-->github任何标签和分支也应该被推送。AFAICT我有3个选择:用两个Remote配置本地客户端,同时推送到Gitlab和Github。我想避免这种情况,因为开发人员。在Gitlab服务器上的存储库中添加一个gitpost-receiveHook。这将是最灵活的(我

随机推荐