828华为云征文|部署开源 ChatGPT/LLMs 聊天应用 LobeChat
一、Flexus云服务器X实例介绍
在数字化时代,云服务器已成为企业发展的重要基石。它提供灵活的资源扩展和高效的计算能力,帮助企业降低成本、提升效率。无论是数据存储还是业务创新,云服务器都能满足多样化需求,是各行业不可或缺的技术支持。
华为云下一代云服务器
Flexus X实例
焕新上线,新产品首创大模型加持,智能全域调度;X-Turbo加速,常见应用性能最高可达业界同规格6倍,可搭载多版本主机安全服务,历经极度严苛的网络安全挑战,全面保障主机整体安全,覆盖大多数通用工作负载场景。
Flexus X实例通过和其他服务组合,具备计算、镜像安装、网络、存储、安全等能力,您可根据业务需要灵活配置各资源。
本次测评使用的规格是:
4核12G-100G-3M规格
的Flexus X实例
基础模式
二、Flexus云服务器X实例配置
2.1 重置密码
购买服务器的时候可以提前设置用户名和密码,因为我这里跳过了,所以购买完成后需要重置密码,会短信或站内消息通过你的云服务器信息,重点是
公网IP地址
和用户名,首先打开你的服务器控制台,选择重置密码
勾选自动重启,点击确定即可
2.2 服务器连接
华为云服务器提供了多种链接方式,如使用控制台提供的VNC方式登录、使用Linux/Mac OS系统主机登录Linux弹性云服务器(即
ssh [email protected]
命令)或者使用Putty、Xshell等工具登录Linux弹性云服务器。
我个人习惯使用
MobaXterm
这款软件,添加SSH连接,输出
公网IP
、用户名和端口(默认22),连接即可。
2.3 安全组配置
安全组是一个逻辑上的分组,为同一个VPC内的云服务器提供
访问策略
。用户可以在安全组中定义各种访问规则,当云服务器加入该安全组后,即受到这些访问规则的保护。
系统为每个网卡默认创建一个默认安全组,默认安全组的规则是对出方向上的数据报文全部放行,入方向访问受限。您可以使用默认安全组,也可以根据需要
创建自定义的安全组
。
主要需要填写
优先级
(默认填1即可)、
协议端口
(协议一般为
TCP
或
UDP
,端口一般选择你项目需要暴露的端口即可),
描述
(选填,一般会填写此端口的用途以免忘记了),其他默认点击确定即可。安全组配置主要是暴露端口可以给外网访问。
如果还不清楚可以参考文档:安全组配置示例
2.4 Docker 环境搭建
本次服务器环境是ubuntu系统镜像,需要自己安装docker环境
服务器类别系统镜像内网IP地址Docker版本操作系统版本Flexus云服务器X实例Ubuntu192.168.0.16827.2.0Ubuntu 22.04.4 LTS
使用
apt-get
命令安装docker及其配置
# 安装必要工具包
$ sudoapt-getinstall\
apt-transport-https \
ca-certificates \curl\
gnupg-agent \
software-properties-common
# 添加Docker GPG秘钥
$ sudocurl-fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg |sudo apt-key add -
# 配置仓库源
$ sudo add-apt-repository \"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"# 更新apt包索引
$ sudoapt-get update
# 安装docker
$ sudoapt-getinstall docker-ce docker-ce-cli containerd.io
# 添加docker镜像源
$ sudovim /etc/docker/daemon.json
{"registry-mirrors":["https://ustc-edu-cn.mirror.aliyuncs.com/",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"https://ccr.ccs.tencentyun.com/",
"https://docker.m.daocloud.io/",
"https://dockerproxy.com",
]}# 重启
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
测试
docker
安装是否成功
root@flexusx-c6b3:~# docker -v
Docker version 27.2.0, build 3ab4256```
检查
docker
服务状态
root@flexusx-c6b3:~# systemctl status docker
* docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2024-08-30 15:53:45 CST; 17h ago
TriggeredBy: * docker.socket
Docs: https://docs.docker.com
Main PID: 24912(dockerd)
Tasks: 13
Memory: 24.7M
CPU: 3.778s
CGroup: /system.slice/docker.service
`-24912 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
检查
docker compose
版本
root@flexusx-c6b3:~# docker compose version
Docker Compose version v2.29.2
三、Flexus云服务器X实例部署 LobeChat
3.1 LobeChat 介绍
LobeChat 是现代化设计的开源 ChatGPT/LLMs 聊天应用与开发框架,支持语音合成、多模态、可扩展的(function call)插件系统,一键免费拥有你自己的 ChatGPT/Gemini/Claude/Ollama 应用。
- 文件上传 / 知识库 LobeChat 支持文件上传与知识库功能,你可以上传文件、图片、音频、视频等多种类型的文件,以及创建知识库,方便用户管理和查找文件。同时在对话中使用文件和知识库功能,实现更加丰富的对话体验。
- 多模型服务商支持 在 LobeChat 的不断发展过程中,我们深刻理解到在提供 AI 会话服务时模型服务商的多样性对于满足社区需求的重要性。因此,我们不再局限于单一的模型服务商,而是拓展了对多种模型服务商的支持,以便为用户提供更为丰富和多样化的会话选择。
- 支持本地大语言模型 (LLM) 为了满足特定用户的需求,LobeChat 还基于 Ollama 支持了本地模型的使用,让用户能够更灵活地使用自己的或第三方的模型。
- 模型视觉识别 (Model Visual) LobeChat 已经支持 OpenAI 最新的 gpt-4-vision 支持视觉识别的模型,这是一个具备视觉识别能力的多模态应用。 用户可以轻松上传图片或者拖拽图片到对话框中,助手将能够识别图片内容,并在此基础上进行智能对话,构建更智能、更多元化的聊天场景。
- TTS & STT 语音会话 LobeChat 支持文字转语音(Text-to-Speech,TTS)和语音转文字(Speech-to-Text,STT)技术,这使得我们的应用能够将文本信息转化为清晰的语音输出,用户可以像与真人交谈一样与我们的对话助手进行交流。 用户可以从多种声音中选择,给助手搭配合适的音源。 同时,对于那些倾向于听觉学习或者想要在忙碌中获取信息的用户来说,TTS 提供了一个极佳的解决方案。
- Text to Image 文生图 支持最新的文本到图片生成技术,LobeChat 现在能够让用户在与助手对话中直接调用文生图工具进行创作。 通过利用 DALL-E 3、MidJourney 和 Pollinations 等 AI 工具的能力, 助手们现在可以将你的想法转化为图像。 同时可以更私密和沉浸式地完成你的创作过程。
LobeChat 是经过精心设计的界面,具有优雅的外观和流畅的交互效果,支持亮暗色主题,适配移动端。支持 PWA,提供更加接近原生应用的体验。流式响应带来流畅的对话体验,并且支持完整的 Markdown 渲染,包括代码高亮、LaTex 公式、Mermaid 流程图等。使用 我们的 Docker 镜像,只需点击一键部署按钮,即可在 1 分钟内完成部署,无需复杂的配置过程,很适合构建自己AI对话应用。
3.2 LobeChat 部署
- 创建 docker-compose.yml
version:'3.5'services:lobe-chat:image: lobehub/lobe-chat
container_name: lobe-chat
restart: always
ports:-'3210:3210'environment:OLLAMA_PROXY_URL: http://123.60.144.170:11434/
- ports: 映射主机的 3210 端口到容器的 3210 端口
- OLLAMA_PROXY_URL: Ollama 服务地址
如果将上述代码片段保存在名为 docker-compose.yml 的文件中,则只需从同一文件夹中运行
docker compose up -d
即可自动拉取 LobeChat 镜像,并创建并启动一个容器。
up
表示启动服务,
-d
表示在后台执行。
docker-compose down
命令用于停止和清理由
docker-compose up
启动的服务。
- 启动服务
进入项目目录,执行
docker-compose up -d
启动命令,会自动拉取容器并运行
从 Dockerhub 拉取 LobeChat 镜像,地址:https://hub.docker.com/r/lobehub/lobe-chat
root@flexusx-c6b3:~/lobechat# docker-compose up -d
Creating network "lobechat_default" with the default driver
Pulling lobe-chat (lobehub/lobe-chat:latest)...
latest: Pulling from lobehub/lobe-chat
a2318d6c47ec: Pull complete
00e35d36405a: Pull complete
225fba03fa1f: Pull complete
447f637b003c: Pull complete
dd1be0639854: Pull complete
9db807b569f9: Pull complete
7d6120d566fb: Pull complete
Digest: sha256:2b1663efad8125c5e428fa371a6b2d324f582d9010bae1a3e526df2b2b11dd3c
Status: Downloaded newer image for lobehub/lobe-chat:latest
Creating lobe-chat ...
Creating lobe-chat ... done
- 配置安全组
在Flexus云服务器X实例的安全组管理页面,添加入方向规则,接下来我们启动服务需要监听3210端口,所以添加安全组为
TCP:3210
协议端口。
- 检查容器状态
检查 LobeChat 容器状态,确保容器正常启动
root@flexusx-c6b3:~/lobechat# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b8d6fa19e28 lobehub/lobe-chat "docker-entrypoint.s…"2 minutes ago Up About a minute 0.0.0.0:3210->3210/tcp, :::3210->3210/tcp lobe-chat
- 访问地址
内网:http://localhost:3210
外网:http://公网IP:3210
- 访问结果
若出现此页面,则部署 lobechat server 成功。
3.3 LobeChat 使用
应用启动完成后,进入主页面,头像是设置菜单,左侧显示会话、文件、发现模块,左下角有Github地址和使用文档链接,
点击头像进入设置应用,这里包含通用设置、系统助手、语言模型、语音服务、默认助手,可配置的选项很多,主要是集成其他模型的
API Key
支持超多模型服务商
- AWS Bedrock:集成了 AWS Bedrock 服务,支持了 Claude / LLama2 等模型,提供了强大的自然语言处理能力。
- Google AI (Gemini Pro、Gemini Vision):接入了 Google 的 Gemini 系列模型,包括 Gemini 和 Gemini Pro,以支持更高级的语言理解和生成。
- Anthropic (Claude):接入了 Anthropic 的 Claude 系列模型,包括 Claude 3 和 Claude 2,多模态突破,超长上下文,树立行业新基准。
- ChatGLM:加入了智谱的 ChatGLM 系列模型(GLM-4/GLM-4-vision/GLM-3-turbo),为用户提供了另一种高效的会话模型选择。
- Moonshot AI (月之暗面):集成了 Moonshot 系列模型,这是一家来自中国的创新性 AI 创业公司,旨在提供更深层次的会话理解。
- Together.ai:集成部署了数百种开源模型和向量模型,无需本地部署即可随时访问这些模型。
- 01.AI (零一万物):集成了零一万物模型,系列 API 具备较快的推理速度,这不仅缩短了处理时间,同时也保持了出色的模型效果。
- Groq:接入了 Groq 的 AI 模型,高效处理消息序列,生成回应,胜任多轮对话及单次交互任务。
- OpenRouter:其支持包括 Claude 3,Gemma,Mistral,Llama2和Cohere等模型路由,支持智能路由优化,提升使用效率,开放且灵活。
- Minimax: 接入了 Minimax 的 AI 模型,包括 MoE 模型 abab6,提供了更多的选择空间。了解更多
- DeepSeek: 接入了 DeepSeek 的 AI 模型,包括最新的 DeepSeek-V2,提供兼顾性能与价格的模型。
- Qwen: 接入了 Qwen 的 AI 模型,包括最新的 qwen-turbo,qwen-plus 和 qwen-max 等模型。
我这里配置的是Ollama的本地模型服务,填写Ollama 服务地址,并测试下联通性,通过即可
选择会话菜单,进入会话界面,和常见的大模型会话界面差不多,左侧列表显示不同的助手,对话框输入消息,可选择模型、图片、知识库、随机性、不限历史消息数、语音输入、函数调用等选项,需要当前模型支持时才可用,否则是置灰状态
使用Ollama llama2模型测试下效果,貌似中文不太行
当前部署模式不支持文件管理,当前部署实例为客户端数据库模式,无法使用文件管理功能
发现页展示助手、插件、模型和模型服务商四大分类的内容
这里有很多优化好的针对专门需求的助手,当然需要添加
OpenAI API Key
,这些助手都是基于OpenAI的模型输出的
丰富的插件市场
列表展示超多的模型,按照模型服务商分类展示其旗下的各种模型
模型服务商分类,介绍各个模型服务商的信息,
点击 OpenAI 查看,会介绍旗下的多个模型及其价格
下面还有介绍在 LobeChat 中使用 OpenAI 的步骤
点击配置服务商,直接进入语言模型设置
LobeChat 打开了对话助手的新世界,在不断优化自身和扩展功能的过程中,LobeChat 努力为用户带来更加智能、灵活、多样化的对话体验。LobeChat 是一个开源、可扩展(函数调用)、高性能的聊天机器人框架,它支持一键免费部署您的私人 ChatGPT/LLM Web 应用程序。作为集成大模型的聊天应用的使用就是这些了,配置模型、使用模型并开启对话,还有更多有趣的设置和功能就需要自行探索了。
四、总结
LobeChat,是一个集成了语音合成、多模态、可扩展插件系统的聊天框架。这一平台最显著的特性之一便是其多模型服务商的支持性,包括 AWS Bedrock、Google AI、Anthropic、ChatGLM 及其他多个全球知名模型服务商。此次使用的
Flexus X实例
配置还是很高的
4核12G-100G-3M规格
的
基础模式
,此项目并不进行大模型的推理过程,而是一个聊天网站,主要通过集成其他大模型服务来输出对话,整体占用的CPU和内存都不高,能够很流畅的运行。
华为云服务器正值
828 B2B企业节
,限时促销,性能卓越,安全可靠。现在购买,享受超值优惠,还有专业技术支持,助力企业腾飞。抓紧机会,立即行动!
版权归原作者 Maxx Space 所有, 如有侵权,请联系我们删除。