手把手教拥有你自己的大模型ChatGPT和Gemini等应用-开源lobe-chat

# 手把手教拥有你自己的大模型ChatGPT和Gemini等应用-开源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特性 (opens new window)

# 1.文件上传 / 知识库

LobeChat 支持文件上传与知识库功能,你可以上传文件、图片、音频、视频等多种类型的文件,以及创建知识库,方便用户管理和查找文件。同时在对话中使用文件和知识库功能,实现更加丰富的对话体验。

# 2.多模型服务商支持

在 LobeChat 的不断发展过程中,我们深刻理解到在提供 AI 会话服务时模型服务商的多样性对于满足社区需求的重要性。因此,我们不再局限于单一的模型服务商,而是拓展了对多种模型服务商的支持,以便为用户提供更为丰富和多样化的会话选择。

主要支持ChatGPT、谷歌的Gemini、百度的文心一言、Moonshot AI (月之暗面)、腾讯混元等等大模型。

image-20241126150038140

# 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 支持同时使用服务端数据库和本地数据库。

image-20241126145628230

# 10.支持多用户管理

LobeChat 支持多用户管理,提供了两种主要的用户认证和管理方案

# 11.渐进式 Web 应用 (PWA)

我们深知在当今多设备环境下为用户提供无缝体验的重要性。为此,我们采用了渐进式 Web 应用 PWA 技术, 这是一种能够将网页应用提升至接近原生应用体验的现代 Web 技术。

image-20241126145857917

# 12.移动设备适配

针对移动设备进行了一系列的优化设计,以提升用户的移动体验。目前,我们正在对移动端的用户体验进行版本迭代,以实现更加流畅和直观的交互。如果您有任何建议或想法,我们非常欢迎您通过 GitHub Issues 或者 Pull Requests 提供反馈。

还有其他的特性没有一一指出来,可以看官方的github介绍。

# 部署Lobe-Chat

Lobe-Chat支持多种方法的部署,包括Vercel、Docker 部署、Docker Compose 部署、Railway 部署等

image-20241126151826816

# Docker部署

远程SSH链接你的服务器

# 安装 Docker 容器环境

如果已安装,请跳过此步

CentOS
$ yum install docker

Ubuntu
$ apt install docker.io
1
2
3
4
5

# 一键启动 LobeChat 服务

$ docker run -d -p 3210:3210 \
  -e OPENAI_API_KEY=sk-xxxx \
  -e ACCESS_CODE=lobe66 \
  --name lobe-chat \
  lobehub/lobe-chat

1
2
3
4
5
6

指令说明:

默认映射端口为 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
1
2
3
4
5
6

# 获取 OpenAI API Key

可以官方获取key,这里就不详细介绍了。

# 免费获取OpenAI API Key

https://github.com/chatanywhere/GPT_API_free

# 1.进入仓库点击“申请领取内测免费API key”

image-20241126152441593

# 2.授权登录

获取到了API key,记住key,不要泄露。

image-20241126152613685

地址要使用

转发Host1: https://api.chatanywhere.tech (国内中转,延时更低)
转发Host2: https://api.chatanywhere.org (国外使用)
1
2

星哥实际操作

# 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

1
2
3
4
5
6
7
8
9
10
11

# 访问

浏览器中输入IP+端口访问,注意此时在腾讯云后台中要开放3210端口。

我这边设置是放开所有端口,当然保险起见还是放开3210

# 防火墙设置

image-20241126153039044

进入

image-20241126153226333

点击立即开始

image-20241126153252351

输入密码解锁应用。

# 设置谷歌的Gemini大模型

1.获取API key

可以参考之前星哥写的文章:https://mp.weixin.qq.com/s/AZmmAreVdj4OkCLb0qnDFQ

2.设置中选择语音模型

image-20241126162842765

聊天的时候选择谷歌的聊天模型

image-20241126154029921

image-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;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12

重启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
1
2
3
4

解析域名之后可以用域名访问了。

# 配置SSL(可不配置)

可以参考之前星哥写的文章

# 申请证书

把80改一下。

server {
    listen 80; 
    server_name lobehub.xgss.net;
    root /usr/share/nginx/html;
    location / {
    	index index.html;
    }
}

systemctl restart nginx
1
2
3
4
5
6
7
8
9
10

申请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"
1
2
3
4

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;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

image-20241126160142291

# 结尾

通过LobeChat,你可以轻松拥有一款属于自己的ChatGPT、Gemini等大模型应用。从获取开源代码到环境搭建、项目部署再到配置和使用,本文为你提供了详细的步骤和指南。希望这篇文章能够帮助你成功部署并享受LobeChat带来的便捷和乐趣。