Librechat快速部署指南

引言

Github的开源免费程序里,Librechat作为AI对话使用,现阶段可谓是最佳选择,配合聚合API >>进行使用,能够保证成本最低,自由度最高,私密性最强,功能丰富且界面美观,如此以来就可以较大程度的发挥AI潜能,为我们的日常办公和学习提供帮助。关于Librechat的功能详细介绍,请阅读文章《官方平替!一个支持GPT文档对话和多端同步的免费开源程序LibreChat》。

鉴于很多朋友喜欢折腾部署程序,迫切希望将Librechat“据为己有”,又碍于程序作者提供的英文说明文档晦涩难懂,在自行部署的过程中也遇到各种问题走不下去。所以本文期望能够以一个过来人的身份,将我认为的最佳部署方式抽炼成一条线性部署路线讲给各位,以达到快速成功部署的目的。

适用场景

一般人是无需自行部署的,用本站已部署好的Librechat >>即可。如果你有以下需求中的一个或者多个,建议自行部署使用:

  • 对数据保密性有较高要求,如用于企业、军工、科研等
  • 对程序稳定性和性能有较高要求
  • 喜欢自己折腾,期望使用自己的域名
  • 为自己的用户群体提供Librechat服务

准备条件

请注意,本文使用docker-compose方式部署,并不适合对计算机应用知识为零的用户,如果你以前自己折腾部署过其它类似开源程序则会相对简单,除此之外,你还需要:

  • 云服务器:非大陆地区的云服务器ECS或轻量应用服务器VPS均可,配置至少2核2G,带宽不宜过低,≥3MB为宜,建议买阿里云香港区服务器,不推荐购买腾讯云香港区服务器,因为两者的区别就在于阿里云对回大陆做了专线优化,速度在国内使用非常快,腾讯香港云服务器只有让你哭的份,亲身经历希望大家少走弯路。
    阿里云香港服务器购买入口>>

    购买阿里云

    如图,注册后,找到轻量云应用服务器,香港专区,下单购买2-2的服务器即可(34元/月,可能需要抢购,每晚过12点以后可100%抢到,后续续费可以一直用)

    购买2-2

     

    下单配置

    按图下单即可,购买完成后系统会给你一个带命令终端的服务器后台。完成后请安装宝塔服务器面板,具体安装方法请参考文章《拥有私人GPT:chatgpt-web-midjourney-proxy完整部署指南》宝塔安装部分,本文不再赘述。
  • 域名:域名也可在阿里云直接完成购买。
  • API:推荐购买聚合API >>几乎涵盖全球所有主流大语言模型,稳定不卡顿,性价比很高。如果你有其它API产品也可使用。
  • 魔法工具:自行解决,此处略。

操作步骤

1、登录宝塔,从左侧菜单打开终端,检查并安装git和docker。

检查git是否安装:

git --version

如果未安装请执行以下命令安装git:

sudo dnf install git

检查docker是否安装:

docker --version
docker-compose --version

如未安装请进入左侧Docker菜单栏按提示完成安装:

docker安装

2、从git上拉取程序文件到本服务器。

终端执行命令:

git clone https://github.com/danny-avila/LibreChat.git

拉取后,可在左侧菜单文件 > root文件夹内看到Librechat程序文件夹。

gitl拉取librechat程序

进入Librechat文件夹并找到.env example文件,右键复制粘贴一份并重命名为.env

.env文件

打开.env文件,并按照以下内容进行编辑替换保存:

Line56: # ENDPOINTS=openAI,assistants,azureOpenAI,bingAI,google,gptPlugins,anthropic
改为:
ENDPOINTS=openAILine147: # OPENAI_MODELS=gpt-4o,gpt-3.5-turbo-0125,gpt-3.5-turbo-0301,gpt-3.5-turbo,gpt-4,gpt-4-0613,gpt-4-vision-preview,gpt-3.5-turbo-0613,gpt-3.5-turbo-16k-0613,gpt-4-0125-preview,gpt-4-turbo-preview,gpt-4-1106-preview,gpt-3.5-turbo-1106,gpt-3.5-turbo-instruct,gpt-3.5-turbo-instruct-0914,gpt-3.5-turbo-16k
改为:
OPENAI_MODELS=gpt-4o,gpt-4-turbo,gpt-3.5-turbo,claude-3-opus-20240229,claude-3-5-sonnet-20240620,deepseek-chat,gpt-4-allLine159:# OPENAI_REVERSE_PROXY=
改为:
OPENAI_REVERSE_PROXY=https://api.juheai.top/v1

3、执行命令启动程序:

cd /root/LibreChat
docker compose up -d

等待其部署完成(首次启动需要安装各种依赖和子项目,所需时间略长,大概十几分钟)

启动程序

一切准备就绪,就可以外网访问服务器ip地址+3080端口,如http://123.456.000.000:3080

访问IP

4、绑定域名。

我们将阿里云购买的域名下某个子域名( www.aaa.com)解析至本服务器IP,等待解析生效。解析生效后,请在宝塔面板 → 网站 → PHP项目中,新增该网址,设定如下:

新增网址2

为网站添加ssl证书并反向代理程序IP+端口访问地址:

新增证书

反代

使用https://www.aaa.com(替换为你的真实url)打开能正常访问Librechat说明已成功,此时即可正常使用AI对话功能了。

功能扩展

Librechat除了基本的AI程序对话外,还包含了一些功能扩展,如果你有以下功能的需求,请继续往下阅读:

  • 邮箱验证
  • 文档对话
  • 绘图插件
  • tts和stt语音输入输出
  • Mongo数据库可视化后台

一、邮箱验证SMPT配置:

设置邮箱后,用户可以在登录页通过邮箱找回密码。找到.env文件并填写其中的内容字段:

EMAIL_SERVICE=
EMAIL_HOST=
EMAIL_PORT=
EMAIL_ENCRYPTION=
EMAIL_ENCRYPTION_HOSTNAME=
EMAIL_ALLOW_SELFSIGNED=
EMAIL_USERNAME=
EMAIL_PASSWORD=
EMAIL_FROM_NAME=
EMAIL_FROM=

以QQ邮箱为例,具体设置内容如下图:

邮箱验证

SMTP的设置大同小异,具体可百度查找SMTP设置教程,推荐用个人不常用的163或者QQ邮箱作为SMPT发射源。

设置完后,终端重启Librechat即可。逐行执行以下命令完成重启:

cd LibreChat
docker compose down
docker compose up -d

二、文档对话

此功能比较关键,设置后Librechat可以上传文档并支持任意模型的文档阅读分析,并基于文档内容回答你的问题。

打开.env文件并在文件末尾新增以下内容:

#==================================================#
#                      RAG                      #
#==================================================#RAG_OPENAI_BASEURL=https://api.juheai.top/v1
RAG_OPENAI_API_KEY=sk-xxx
EMBEDDINGS_MODEL=text-embedding-ada-002

sk-xxx请替换为你实际购买的API-Key,购买地址XD-Store >> ,配置后如下图:

RAG配置1

设置完成后保存并同上执行Librechat程序重启命令即可。

三、绘图插件

我们在Librechat可以启用Dalle-3绘图插件,调用api完成绘图。设置如下:

1、打开.env文件,并进行如下修改并保存:

ENDPOINTS=openAI
修改为
ENDPOINTS=openAI,gptPlugins# DALLE_REVERSE_PROXY=
修改为
DALLE_REVERSE_PROXY=https://api.juheai.top/v1

2、新增librechat.yaml文件。

新建librechat.yaml文件,打开新增以下内容并保存:

version: 1.0.9includedTools: ["dalle"]
cache: true

3、新增docker-compose.override.yml文件。

新建docker-compose.override.yml文件,打开新增以下内容并保存:

version: '3.4'services:api:volumes:- type: bindsource: ./librechat.yamltarget: /app/librechat.yaml

设置完成后保存并同上执行Librechat程序重启命令即可。

如果你对其它插件感兴趣,这里不妨多启用几个,比如计算器插件、网页搜索插件、代码运行器、联网插件等,对librechat.yaml文件进行以下修改并重启程序即可:

version: 1.0.9includedTools: ["calculator","web-browser","dalle","CodeBrew","web_search"]cache: true

四、stt和tts语音输入输出

语音功能配置好以后,就可以通过说话把文字转化出来,然后等Librechat返回结果并转化成语音播放,对于一些碍于打字繁琐的场景有用。

打开librechat.yaml并新增以下内容:

tts:openai:apiKey: '${TTS_API_KEY}'model: 'tts-1'voices: ['alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer']url: "https://api.juheai.top/v1/audio/speech"stt:openai:url: 'https://api.juheai.top/v1/audio/transcriptions'apiKey: '${STT_API_KEY}'model: 'whisper-1'

再打开.env文件将以下内容补全:

STT_API_KEY=
TTS_API_KEY=

配置好后如图所示:

stt配置

设置完成后保存并同上执行Librechat程序重启命令即可。

五、Mongo数据库可视化后台

该管理后台可以帮助你日常监控程序的用户使用情况,比如检测用户数量、用户对话内容等。

Mongo可视化后台

打开docker-compose.override.yml文件,删除原内容并添加以下内容:

version: '3.4'services:mongo-express:image: mongo-expresscontainer_name: mongo-expressenvironment:ME_CONFIG_MONGODB_SERVER: mongodbME_CONFIG_BASICAUTH_USERNAME: adminME_CONFIG_BASICAUTH_PASSWORD: 输入你的密码ports:- '8081:8081'depends_on:- mongodbrestart: alwaysapi:volumes:- ./librechat.yaml:/app/librechat.yaml

注意其中的用户名和密码可以根据自己的实际情况修改,要放行8081端口。重启程序后,访问地址为你的IP+8081,比如http://00.00.00.00:8081

总结

至此,你已经获得了Librechat几乎所有的功能,其中有一些细节的调整没有讲解,请对照官方文档自行测试,文档地址>>,希望本文能给你带来帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/39463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【黑龙江等保测评是如何评估的?】

黑龙江地区的等级评定,是根据国家有关的法律、法规、规范的规定,对该信息系统的安全性进行评价的。评估的具体程序和方法包括: 1.评价对象与范围的界定:一是要明确评价的目的与要求,二是要按照特定的要求来确定评价的…

MIX OTP——依赖项和总体项目

在本章中,我们将讨论如何管理 Mix 中的依赖项。 我们的 kv 应用程序已经完成,现在是时候实现处理我们在第一章中定义的请求的服务器了: 但是,我们不会向 kv 应用程序添加更多代码,而是将 TCP 服务器构建为另一个应用程…

CQ 社区版2.13.3 | 支持全局开启OTP登录、文本导入功能可独立控制……

又到一月一度的 CloudQuery 发版时间啦! 本次版本更新,对多个模块进行了功能的优化和完善,比如将文本导入与 insert 权限脱离使文本导入可单独控制;将工具权限与权限等级脱离,使其能独立授权和提权;操作模…

DLS平台:运价持续上涨,未来航运市场何去何从?

摘要: 近期,上海出口集装箱结算运价指数(SCFIS)欧洲航线连续10周上涨,涨幅高达151%。随着多家航运公司宣布涨价,市场供应紧张导致运价居高不下。本文将详细分析当前运价上涨的原因、航运市场的变化及未来运…

Linux:文件系统与日志分析

一、block与inode 1.1、概述 文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。 一般连续八个扇区组成一个"块”(block),一个块是4K大小,是文件存取的最小单位。 文件数据包括实际数据…

linux 环境报错:Peer reports incompatible or unsupported protocol version

出现问题的原因: curl 不兼容或不支持的协议版本。 解决方案: yum update -y nss curl libcurl如此继续之前的操作即可。

(九)绘制彩色三角形

前面的学习中并未涉及到颜色&#xff0c;现在打算写一个例子&#xff0c;在顶点着色器和片元着色器中加入颜色&#xff0c;绘制有颜色的三角形。 #include <glad/glad.h>//glad必须在glfw头文件之前包含 #include <GLFW/glfw3.h> #include <iostream>void …

我爱服务器——LVM实战学习

后来呀&#xff0c;天亮之前毕业后踏入服务器领域了。。。。。。 LVM&#xff08;Logical Volume Manager&#xff09;是一个高级的磁盘管理框架&#xff0c;它允许用户将多个物理硬盘组合成一个逻辑卷&#xff0c;从而提供更大的存储空间、更高的灵活性和更好的数据管理能力。…

Eclipse + GDB + J-Link 的单片机程序调试实践

Eclipse GDB J-Link 的调试实践 本文介绍如何创建Eclipse的调试配置&#xff0c;如何控制调试过程&#xff0c;如何查看修改各种变量。 对 Eclipse 的要求 所用 Eclipse 应当安装了 Eclipse Embedded CDT 插件。从 https://www.eclipse.org/downloads/packages/ 下载 Ecli…

C++ 快速行进方法(二维)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 假设给你一个将一个区域与另一个区域分开的界面,以及告诉你如何移动界面上每个点的速度F。下图中,黑色曲线将内部深蓝色与外部浅蓝色分开,黑色曲线的每个点都给出了速度F。此外,假设速度F始终为正,即前端始终向…

java面试课程-SpringIOC部分源码解析

1.SpringIOC的refresh源码解析 核心&#xff1a; 核心使用的是&#xff1a; 需要完成配置类的解析&#xff0c;各种BeanFactoryProcessor的注册。还有写国际化配置的初始化。Web容器的内部构造。 上面几个方法是refresh方法的内容。注意可以与applicationContext里的内容一起…

第十四章 路由器 OSPF 动态路由配置

实验目的 掌握 OSPF 协议的配置方法&#xff1a; 掌握查看通过动态路由协议 OSPF 学习产生的路由&#xff1b; 熟悉广域网线缆的链接方式&#xff1b; 实验背景 假设校园网通过一台三层交换机连到校园网出口路由器上&#xff0c; 路由器再和校园外的另一台路由器连接。…

【0299】Postgres内核之哈希表(Hash Tables)

0. 哈希表(Hash Tables) 哈希表是 一种用于存储键值对的数据结构。与使用索引号访问元素的基本数组不同,哈希表使用键来查找表条目。这使得数据管理对于用户来说更易于管理,因为按属性对数据条目进行分类比按它们在一个巨大的列表中的数量更容易。 在 C++ 中,我们将哈希…

B站大课堂-自动化精品视频(个人存档)

基础知识 工业通信协议 Modbus 施耐德研发&#xff0c;有基于以太网的 ModbusTCP 协议和使用 485/232 串口通信的 ModbusRTU/ASCII。 Modbus 协议面世较早、协议简洁高效、商用免费、功能灵活、实现简单&#xff0c;是目前应用最广泛的现场总线协议。 我的笔记里边有一些推荐…

Linux源码阅读笔记10-进程NICE案例分析2

set_user_nice set_user_nice函数功能&#xff1a;设置某一进程的NICE值&#xff0c;其NICE值的计算是根据进程的静态优先级&#xff08;task_struct->static_prio&#xff09;&#xff0c;直接通过set_user_nice函数更改进程的静态优先级。 内核源码 void set_user_nice…

黄子韬vs徐艺洋卫生间风波

【热搜爆点】黄子韬VS徐艺洋&#xff1a;卫生间风波背后的职场与友情界限探讨在这个充满欢笑与意外的综艺时代&#xff0c;《跟我出游吧》再次以它独有的魅力&#xff0c;引爆了一个既尴尬又引人深思的话题——“黄子韬要上徐艺洋的卫生间&#xff1f;”这不仅仅是一句简单的调…

[Labview] Excel读表 输出表单中选中的单元格内容

简而言之 循环外 是读取excel文件&#xff0c;并写入labview表格 循环内 会输出表格中被选中的单元格内容 调用节点&#xff1a;点到行列 事件结构中的另两个事件 如果需要改写单元格内容并储存替换Excel&#xff0c;可见这篇&#xff1a;[Labview] 改写表格内容并储存覆盖Ex…

k8s 中间件

1. zookeeper 是的&#xff0c;Zookeeper 和 Kafka 经常一起使用&#xff0c;Zookeeper 在 Kafka 中扮演了关键角色。以下是 Zookeeper 和 Kafka 在实际项目中的结合使用及其作用的详细说明。 项目背景 假设我们有一个分布式数据处理系统&#xff0c;该系统需要高吞吐量的实…

隐私信息管理体系认证:守护个人信息,筑牢隐私防线

在数字化浪潮汹涌的当下&#xff0c;个人信息安全问题愈发凸显其重要性。随着互联网技术的飞速发展&#xff0c;我们的隐私信息如同裸露在阳光下的沙滩&#xff0c;稍有不慎就可能被不法分子窃取或滥用。因此&#xff0c;构建一个完善的隐私信息管理体系&#xff0c;成为了保障…

UI(四)布局

文章目录 10、Navigator——路由器组件11、Pannel——可滑动面板12、Refresh——刷新组件13、RelativeContainer——相对布局组件14、Scroll——可滚动容器15、SideBarContainer——侧边栏容器16、Stack——堆叠容器17、Swiper——滑动块视图容器18、Tabs和TabContent——页签和…