前言
在人工智能快速发展的今天,拥有自己的AI聊天机器人不仅是一种技术展示,更是提升个人或企业服务的有效手段。
本文将引导你从零开始,建立一个功能完善的LLMs站点。
为什么要建立自己的ChatGPT站点?
- 个性化体验:可以根据自己的需求定制AI助手
- 数据安全:自己的数据由自己掌控
- 成本控制:相比订阅服务,长期使用自建站点更经济
使用Vercel进行一键部署
Vercel是一个云服务平台,专为静态网站和无服务器应用程序的快速部署而设计。
Vercel的特点:
- 自动化部署,与 GitHub无缝集成
- 提供无服务器计算
- 自带CDN、SSL,无需配置
- 简单直观,新手友好
- 支持自定义域名
- 免费!免费!免费!
事前准备:
1.首先我们要准备一个GitHub账号。
2.访问Vercel。
3.在登录页面选择GitHub账号登录,按照提示将Vercel账号与GitHub仓库进行绑定。
选择要部署的项目
这里给出常见的三种Web应用
NextChat(ChatGPT Next Web)
项目地址:https://github.com/ChatGPTNextWeb
优点:轻量,快速
缺点:
- 功能比较简陋,过于依赖环境变量,修改环境变量后需要重新构建。
- 页面元素尺寸过大,PC端在高分辨率屏幕上可用区域较小,在移动端下问题表现的更严重。
- 移动端操作逻辑与PC端相同,容易被输入法影响,操作不方便。
- 重心转向商业版


Lobe Chat
项目地址:https://github.com/lobehub/lobe-chat
优点:
- UI优秀,模型列表有缩略图十分直观,PC移动端两套UI,使用方便。
- 各个模型独立配置,可一键获取API列表,轻松管理大量模型。
- 一键翻译,一键创建子话题。
- 仓库活跃,更新迅速。
缺点:点击菜单每次都会发送请求,能够明显感觉到延迟,不够流畅。不过这个问题在后续的版本迭代中已逐渐改善。


ChatGPT Web Midjourney
项目地址:https://github.com/Dooy/chatgpt-web-midjourney-proxy
优点:支持文字、绘画、视频、语音多种模型,UI流畅不卡顿。
缺点:
- Vercel部署不支持设置密码,必须自己手动填入接口地址与Key。
- UI简陋,配置不方便。
- 功能不完善,仓库更新速度慢。


如果你问我选哪个好?我的答案是:

不开玩笑了,Vercel部署我推荐NextChat,这个项目大量使用环境变量来实现个性化配置,非常适合部署在Vercel上。
而Lobe Chat和ChatGPT Web Midjourney,在使用Vercel部署的前提下,自部署与使用他人部署的站点几乎没有差别,如果需要自部署的话更适合通过云服务器进行私有化部署。
私有化部署的方法比较复杂,我会在另外一篇文章中单独去讲,今天主要讲怎么一键部署。
开始部署!
首先我们打开要部署的项目地址,这里选择NextChat进行演示。
点击项目页面的Fork按钮,将代码Fork到我们自己的仓库。

打开Vercel的面板,点击Add New…按钮,选择Project。
在打开的页面的左侧会显示Import Git Repository,列出你的Github仓库中的项目
点击NextChat项目的Import按钮
在Environment Variables标签中可以添加环境变量
添加完环境变量后点击下方的Deploy按钮
Vercel开始自动构建,等待构建结束
进入刚刚创建的Vercel Project管理面板,点击右上角的Visit按钮即可访问站点



扩展:
配置自定义域名
点击面板右上角的Domains按钮
输入域名,点击Add按钮
按照提示在你的DNS服务商那里添加一条cname.vercel-dns.com.解析记录


配置自动更新
回到Github Fork下来的项目页面
1.点击Action标签
2.点击右侧的Upstream Sync
3.点击右上角的Enable workflow

手动更新
在你的Github中fork的项目页面中点击sync fork-update branch

常见问题
请求超时:
问题原因:
Vercel使用Edge Functions来请求OpenAI的接口,而免费计划的Edge Functions超时时间为30秒,如果在30秒内接口没有返回内容就会出现超时,所以使用o1这种需要思考时间的模型或是一些低稳定性的逆向接口就会很容易出现超时提示。
解决方法:
大多数LLms应用站点在客户端填写了Key的情况下,都会出现改为使用客户端请求的选项。当勾选了客户端请求时,会直接从客户端请求API服务器,省去了中间的Vercel服务器,也就不会出现超时问题。