手把手教拥有你自己的大模型ChatGPT和Gem)ini等应用-开源lobe-chat前言
随着人工智能技术的飞速发展,大语言模型如ChatGPT和Gemini等越来越受到关注。这些模型展现出了强大的文本生成、翻译、问答等能力,为我们的生活和工作带来了诸多便利。但同时,它们也存在着一些限制,比如对私有数据的保护、定制化能力的不足等。
今天就给大家分享一款开源免费的工具lobe-chat,它可以帮助开发者轻松部署ChatGPT和Gemini的大型语言模型,并创建自己的聊天应用。
image-20241126144815255购买服务器
星哥搭建的lobe-chat地址:https://lobehub.xgss.net
星哥这里购买的是硅谷的地域轻量云,如果选择国内节点需要有代理访问ChatGPT。
Lobe-Chat是什么
现代化设计的开源 ChatGPT/LLMs 聊天应用与开发框架,支持语音合成、多模态、可扩展的插件系统,一键免费拥有你自己的 ChatGPT/Gemini/Claude/Ollama 应用。
开源地址:https://github.com/lobehub/lobe-chat
Lobe-Chat特性1.文件上传 / 知识库
LobeChat 支持文件上传与知识库功能,你可以上传文件、图片、音频、视频等多种类型的文件,以及创建知识库,方便用户管理和查找文件。同时在对话中使用文件和知识库功能,实现更加丰富的对话体验。
2.多模型服务商支持
在 LobeChat 的不断发展过程中,我们深刻理解到在提供 AI 会话服务时模型服务商的多样性对于满足社区需求的重要性。因此,我们不再局限于单一的模型服务商,而是拓展了对多种模型服务商的支持,以便为用户提供更为丰富和多样化的会话选择。
主要支持ChatGPT、谷歌的Gemini、百度的文心一言、Moonshot AI (月之暗面)、腾讯混元等等大模型。
image-202411261500381403.支持本地大语言模型 (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 支持同时使用服务端数据库和本地数据库。
image-2024112614562823010.支持多用户管理
LobeChat 支持多用户管理,提供了两种主要的用户认证和管理方案
11.渐进式 Web 应用 (PWA)
我们深知在当今多设备环境下为用户提供无缝体验的重要性。为此,我们采用了渐进式 Web 应用 PWA 技术, 这是一种能够将网页应用提升至接近原生应用体验的现代 Web 技术。
image-2024112614585791712.移动设备适配
针对移动设备进行了一系列的优化设计,以提升用户的移动体验。目前,我们正在对移动端的用户体验进行版本迭代,以实现更加流畅和直观的交互。如果您有任何建议或想法,我们非常欢迎您通过 GitHub Issues 或者 Pull Requests 提供反馈。
还有其他的特性没有一一指出来,可以看官方的github介绍。
部署Lobe-Chat
Lobe-Chat支持多种方法的部署,包括Vercel、Docker 部署、Docker Compose 部署、Railway 部署等
image-20241126151826816Docker部署
远程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”image-202411261524415932.授权登录
获取到了API key,记住key,不要泄露。
image-20241126152613685
地址要使用
转发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
防火墙设置image-20241126153039044
image-20241126153226333
点击立即开始
image-20241126153252351
输入密码解锁应用。
设置谷歌的Gemini大模型
1.获取API key
可以参考之前星哥写的文章:
2.设置中选择语音模型
image-20241126162842765
聊天的时候选择谷歌的聊天模型
image-20241126154029921image-20241126153610263配置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"
image-20241126155433837修改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; } }
image-20241126160142291结尾通过LobeChat,你可以轻松拥有一款属于自己的ChatGPT、Gemini等大模型应用。从获取开源代码到环境搭建、项目部署再到配置和使用,本文为你提供了详细的步骤和指南。希望这篇文章能够帮助你成功部署并享受LobeChat带来的便捷和乐趣。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.