共计 5418 个字符,预计需要花费 14 分钟才能阅读完成。
前言
随着人工智能技术的飞速发展,大语言模型如 ChatGPT 和 Gemini 等越来越受到关注。这些模型展现出了强大的文本生成、翻译、问答等能力,为我们的生活和工作带来了诸多便利。但同时,它们也存在着一些限制,比如对私有数据的保护、定制化能力的不足等。
今天就给大家分享一款开源免费的工具 lobe-chat,它可以帮助开发者轻松部署 ChatGPT 和 Gemini 的大型语言模型,并创建自己的聊天应用。
购买服务器
星哥搭建的 lobe-chat 地址:https://lobehub.xgss.net
星哥这里购买的是硅谷的地域轻量云,如果选择国内节点需要有代理访问 ChatGPT。
Lobe-Chat 是什么
现代化设计的开源 ChatGPT/LLMs 聊天应用与开发框架,支持语音合成、多模态、可扩展的插件系统,一键免费拥有你自己的 ChatGPT/Gemini/Claude/Ollama 应用。
开源地址:https://github.com/lobehub/lobe-chat
1. 文件上传 / 知识库
LobeChat 支持文件上传与知识库功能,你可以上传文件、图片、音频、视频等多种类型的文件,以及创建知识库,方便用户管理和查找文件。同时在对话中使用文件和知识库功能,实现更加丰富的对话体验。
2. 多模型服务商支持
在 LobeChat 的不断发展过程中,我们深刻理解到在提供 AI 会话服务时模型服务商的多样性对于满足社区需求的重要性。因此,我们不再局限于单一的模型服务商,而是拓展了对多种模型服务商的支持,以便为用户提供更为丰富和多样化的会话选择。
主要支持 ChatGPT、谷歌的 Gemini、百度的文心一言、Moonshot AI (月之暗面)、腾讯混元等等大模型。
3. 支持本地大语言模型 (LLM)
为了满足特定用户的需求,LobeChat 还基于 Ollama 支持了本地模型的使用,让用户能够更灵活地使用自己的或第三方的模型。
4. 模型视觉识别 (Model Visual)
LobeChat 已经支持 OpenAI 最新的 gpt-4-vision 支持视觉识别的模型,这是一个具备视觉识别能力的多模态应用。用户可以轻松上传图片或者拖拽图片到对话框中,助手将能够识别图片内容,并在此基础上进行智能对话,构建更智能、更多元化的聊天场景。
5.TTS & STT 语音会话
LobeChat 支持文字转语音(Text-to-Speech,TTS)和语音转文字(Speech-to-Text,STT)技术,这使得我们的应用能够将文本信息转化为清晰的语音输出,用户可以像与真人交谈一样与我们的对话助手进行交流。用户可以从多种声音中选择,给助手搭配合适的音源。同时,对于那些倾向于听觉学习或者想要在忙碌中获取信息的用户来说,TTS 提供了一个极佳的解决方案。
6.Text to Image 文生图
支持最新的文本到图片生成技术,LobeChat 现在能够让用户在与助手对话中直接调用文生图工具进行创作。通过利用 DALL-E 3、MidJourney 和 Pollinations 等 AI 工具的能力,助手们现在可以将你的想法转化为图像。同时可以更私密和沉浸式地完成你的创作过程。
7. 插件系统 (Tools Calling)
LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地增强了 ChatGPT 的实用性和灵活性。
8. 助手市场 (GPTs)
在 LobeChat 的助手市场中,创作者们可以发现一个充满活力和创新的社区,它汇聚了众多精心设计的助手,这些助手不仅在工作场景中发挥着重要作用,也在学习过程中提供了极大的便利。我们的市场不仅是一个展示平台,更是一个协作的空间。在这里,每个人都可以贡献自己的智慧,分享个人开发的助手。
9. 支持本地 / 远程数据库
LobeChat 支持同时使用服务端数据库和本地数据库。
10. 支持多用户管理
LobeChat 支持多用户管理,提供了两种主要的用户认证和管理方案
11. 渐进式 Web 应用 (PWA)
我们深知在当今多设备环境下为用户提供无缝体验的重要性。为此,我们采用了渐进式 Web 应用 PWA 技术,这是一种能够将网页应用提升至接近原生应用体验的现代 Web 技术。
12. 移动设备适配
针对移动设备进行了一系列的优化设计,以提升用户的移动体验。目前,我们正在对移动端的用户体验进行版本迭代,以实现更加流畅和直观的交互。如果您有任何建议或想法,我们非常欢迎您通过 GitHub Issues 或者 Pull Requests 提供反馈。
还有其他的特性没有一一指出来,可以看官方的 github 介绍。
部署 Lobe-Chat
Lobe-Chat 支持多种方法的部署,包括 Vercel、Docker 部署、Docker Compose 部署、Railway 部署等
Docker 部署
远程 SSH 链接你的服务器
安装 Docker 容器环境
如果已安装,请跳过此步
CentOS
$ yum install docker
Ubuntu
$ apt install docker.io
一键启动 LobeChat 服务
$ docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e ACCESS_CODE=lobe66 \
--name lobe-chat \
lobehub/lobe-chat
指令说明:
默认映射端口为 3210, 请确保未被占用或手动更改端口映射 使用你的 OpenAI API Key 替换上述命令中的 sk-xxxx
使用代理地址
如果你需要通过代理使用 OpenAI 服务,你可以使用 OPENAI_PROXY_URL 环境变量来配置代理地址:
$ docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e OPENAI_PROXY_URL=https://api-proxy.com/v1 \
-e ACCESS_CODE=lobe66 \
--name lobe-chat \
lobehub/lobe-chat
获取 OpenAI API Key
可以官方获取 key,这里就不详细介绍了。
免费获取 OpenAI API Key
https://github.com/chatanywhere/GPT_API_free
1. 进入仓库点击“申请领取内测免费 API key”
2. 授权登录
获取到了 API key,记住 key,不要泄露。
地址要使用
转发 Host1: https://api.chatanywhere.tech (国内中转,延时更低)
转发 Host2: https://api.chatanywhere.org (国外使用)
星哥实际操作
# docker run -d -p 3212:3210 \
-e OPENAI_API_KEY=sk-XXXXXXX \
-e OPENAI_PROXY_URL=https://api.chatanywhere.org \
-e ACCESS_CODE= 认证密码 \
--name lobe-chat2 \
lobehub/lobe-chat
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3a585e4072a9 lobehub/lobe-chat "/bin/node /app/star…" 24 seconds ago Up 22 seconds 0.0.0.0:3210->3210/tcp, :::3210->3210/tcp lobe-chat
访问
浏览器中输入 IP+ 端口访问,注意此时在腾讯云后台中要开放 3210 端口。
我这边设置是放开所有端口,当然保险起见还是放开 3210
防火墙设置
进入
点击立即开始
输入密码解锁应用。
设置谷歌的 Gemini 大模型
1. 获取 API key
可以参考之前星哥写的文章:https://mp.weixin.qq.com/s/AZmmAreVdj4OkCLb0qnDFQ
2. 设置中选择语音模型
聊天的时候选择谷歌的聊天模型
配置 nginx 代理(可不配置)
nginx 反向代理 1. 安装 nginx 2. 有域名
nginx 的配置
server {
listen 80; # 监听 80 端口,你可以根据需要更改为其他端口
server_name lobehub.xgss.net; # 将 lobehub.xgss.net 替换为你的域名或 IP 地址
location / {
proxy_pass http://127.0.0.1:3212; # 将请求转发到本机服务器的 3212 端口,可根据实际情况来改
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
重启 nginx
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl restart nginx
解析域名之后可以用域名访问了。
配置 SSL(可不配置)
可以参考之前星哥写的文章
申请证书
把 80 改一下。
server {
listen 80;
server_name lobehub.xgss.net;
root /usr/share/nginx/html;
location / {
index index.html;
}
}
systemctl restart nginx
申请 ssl 证书
/root/.acme.sh/acme.sh --issue -d lobehub.xgss.net --webroot /usr/share/nginx/html \
--keypath /etc/nginx/conf.d/lobehub.xgss.net.key \
--fullchainpath /etc/nginx/conf.d/lobehub.xgss.net.pem \
--reloadcmd "/usr/sbin/nginx -s reload"
修改 nginx
配置 443 端口
server {
listen 80;
listen [::]:80;
server_name lobehub.xgss.net;
return 301 https://$server_name:443$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name lobehub.xgss.net;
charset utf-8;
# ssl 配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_session_timeout 10m;
ssl_buffer_size 1400;
ssl_stapling on;
ssl_stapling_verify on;
ssl_session_tickets off;
ssl_certificate /etc/nginx/conf.d/lobehub.xgss.net.pem;
ssl_certificate_key /etc/nginx/conf.d/lobehub.xgss.net.key;
root /usr/share/nginx/html;
location / {
proxy_pass http://127.0.0.1:3212; # 将请求转发到本机服务器的 3212 端口,可根据实际情况来改
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
结尾
通过 LobeChat,你可以轻松拥有一款属于自己的 ChatGPT、Gemini 等大模型应用。从获取开源代码到环境搭建、项目部署再到配置和使用,本文为你提供了详细的步骤和指南。希望这篇文章能够帮助你成功部署并享受 LobeChat 带来的便捷和乐趣。