利用Github和Railway搭建专属的ChatGPT
ChatGPT
什么是 ChatGPT
ChatGPT 是一个基于人工神经网络技术的自然语言处理模型,由 OpenAI 开发。它可以理解和生成自然语言,用于进行对话、翻译、文本摘要等任务。ChatGPT 是目前最先进的自然语言处理模型之一,它使用了大量的预训练数据和深度学习算法来实现高质量的自然语言处理能力。
ChatGPT 的工作原理
ChatGPT 是一个基于 Transformer 模型的自然语言处理模型,其工作原理可以分为两个阶段:预训练和微调。下面分别对这两个阶段进行详细介绍。
- 预训练阶段
ChatGPT 使用了大量的文本数据进行无监督的预训练,从而学习到了自然语言的表示方式。在这个阶段中,ChatGPT 使用了一种称为“掩码语言建模”的技术来训练模型。具体来说,它会将输入的文本中的一些单词随机掩盖掉,然后让模型去预测这些被掩盖掉的单词。这样的训练方式可以使得模型学习到单词之间的关系,从而获得更好的语言表示能力。
- 微调阶段
在预训练完成后,ChatGPT 可以通过微调来适应特定的任务。例如,对于对话任务,我们可以通过给 ChatGPT 提供一些已知的对话历史和当前回复来微调模型,从而使其能够更好地生成有意义的回复。在微调阶段中,ChatGPT 通常会使用有监督的学习方法,即使用带标注的数据进行训练,并通过优化损失函数来更新模型参数。总之,ChatGPT 的工作原理是通过预训练和微调两个阶段来学习自然语言表示,并在特定任务中使用这些表示来生成有意义的输出。
ChatGPT 的使用场景
ChatGPT 是一种通用的自然语言处理模型,它的使用场景非常广泛。以下是一些 ChatGPT 的主要应用场景:
- 对话系统:ChatGPT 可以被用来构建聊天机器人、智能客服等对话系统,通过学习大量的对话数据来生成自然流畅的回复。
- 机器翻译:ChatGPT 可以被用来进行机器翻译任务,即将一种语言的文本自动翻译成另一种语言的文本。
- 文本摘要:ChatGPT 可以被用来进行文本摘要任务,即从一篇较长的文章中提取出关键信息,并生成一份简洁的摘要。
- 问答系统:ChatGPT 可以被用来构建问答系统,即回答用户的问题。在这个场景下,ChatGPT 通常需要阅读和理解输入的问题,并通过搜索或推理来生成答案。
- 文本分类:ChatGPT 可以被用来进行文本分类任务,例如情感分析、垃圾邮件检测等。在这个场景下,ChatGPT 需要学习如何将文本映射到不同的类别。
哎,等等,这不都是说了一些废话么?到底用在哪呢?
这就看你具体的需求了,比如这篇文章上面的内容就是 ChatGPT 写的。
还比如我叫它帮我写一个创建 pipeline 的步骤。
这不比百度香?
下面就带搭建一个无需科学上网的 ChatGPT。
注册 ChatGPT
注册的步骤并不复杂,主要包含以下几步:
- 注册 ChatGPT 账号
- 通过短信接码平台[https://sms-activate.org/](https://sms-activate.org/)完成手机验证。
- 通过[https://chat.openai.com/chat](https://chat.openai.com/chat)登录使用。
获取 API Token
账号注册完成过后,通过https://platform.openai.com/登录。
然后点击 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 个小时/月的额度,用完了要么充钱,要么死亡,可以根据实际情况来选择,个人使用其实是足够了,无外乎多搞几个账号。