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=openAI

Line147: # 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-all

Line159:# 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.9

includedTools: ["dalle"]
cache: true

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

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

version: '3.4'

services:
  api:
    volumes:
      - type: bind
        source: ./librechat.yaml
        target: /app/librechat.yaml

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

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

version: 1.0.9

includedTools: ["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-express
    container_name: mongo-express
    environment:
      ME_CONFIG_MONGODB_SERVER: mongodb
      ME_CONFIG_BASICAUTH_USERNAME: admin
      ME_CONFIG_BASICAUTH_PASSWORD: 输入你的密码
    ports:
      - '8081:8081'
    depends_on:
      - mongodb
    restart: always

  api:
    volumes:
      - ./librechat.yaml:/app/librechat.yaml

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

总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

压缩pdf文件大小,压缩pdf文件大小软件哪个好

在数字化时代,PDF文件因其卓越的跨平台兼容性和稳定性而成为工作与学习的好帮手。然而,当PDF文件体积过大时,传输和存储便成了一项挑战。别担心,本文将为你揭秘如何快速压缩PDF文件,让你的文档轻装上路! 压…

【有为己之心方能克己】

私欲会让人难受,为了自己舒服而去拔除,去除私欲小我,就可以为自己展现大我 “人不为己天诛地灭”,其实这句话不是自私自利的意思, 原意是:人如果不修为自己,不为那个真己而活,不活出…

智能井盖监测系统:守护城市安全的新防线

​ ​​在快速发展的现代都市中,井盖作为连接地上与地下世界的“隐形门”,其安全状态直接关系到市民的生命财产安全。随着物联网、大数据及人工智能技术的飞速发展,智能井盖监测系统的出现为解决传统井盖管理难题提供了创新方案&#xff0…

ROS2 分布式 及 ssh远程控制 和 上传文件夹

问题1. 多台计算机连接同一wifi后 ,运行ROS2的小乌龟案例,自己的计算机,无法控制其他电脑的小乌龟 按照正常的情况来说,ROS2是DDS的自发现通信机制,只要处在同一wifi网络中, A计算机执行启动小乌龟的命…

Android项目框架

Android项目基于Android Studio开发,Android Studio使用Gradle作为项目构建工具。新建工程后可以看到如图所示目录结构,将Android切成Project可以看到完整的Android工程目录结构,如图所示。 图1-2 Android项目目录结构 app目录是一个典型的…

Jmeter 入门指南:从零开始学习

JMeter 是一个非常流行的开源工具,用于进行负载测试。它支持多种网络协议,包括 HTTP、FTP、SMTP、JMS、SOAP、JDBC 等,使其成为在多种应用环境中检测性能瓶颈的理想选择。本文将详细介绍如何利用 JMeter 进行高效的接口自动化测试。 创建和执…

01 Docker 概述

目录 1.Docker简介 2.传统虚拟机 vs 容器 3.Docker运行速度快的原因 4.Docker基本组成三要素 5.Docker 平台架构 入门版 架构版 1.Docker简介 Docker是基于Go语言实现的云开源项目。 Docker的主要目标是:Build, Ship and Run Any App, Anywhere&#xff0c…

python3中的pdb使用

目录 1 介绍 1 介绍 有脚本文件main.py,其内容如下, import os import sys if __name__ "__main__":n 10for i in range(n):j i 10j j * j if j % 2 0:print("j is even!")else:print("j is odd.")n 20s 0 fo…

和鲸“101”计划领航!和鲸科技携手北中医,共话医学+AI 实验室建设及创新人才培养

为进一步加强医学院校大数据管理与应用、信息管理与信息系统,医学信息工程等专业建设,交流实验室建设、专业发展与人才培养经验,6 月 22 日,由北京中医药大学(简称“北中医”)主办,上海和今信息…

windows远程连接无法复制文件

windows远程桌面无法复制文件 解决方案 打开任务管理器管理器,在详细信息界面,找到rdpclip.exe进程,选中并点击结束任务,杀死该进程。 快捷键 win r 打开运行界面,输入 rdpclip.exe ,点击确定运行。即可解决无法复制文件问题。…

QStringListModel 绑定到QListView

1.QStringListModel 绑定到listView,从而实现MV模型视图 2.通过QStringListModel的新增、删除、插入、上下移动,listView来展示出来 3.下移动一行,传入curRow2 的个人理解 布局 .h声明 private:QStringList m_strList;QStringListModel *m_m…

单向链表结构

链表结构简介 链表结构是一种用比较特殊的数据结构类型,它也是线性数据结构中的一种,但是与栈结构等线性数据结构不同,它的内部结构并不是一个简单的存储空间,而是一个带有指向性质的单元。要理解链表结构要弄清楚两个问题&#x…

仰邦BX.K协议对接

背景 使用BX 6K控制卡控制诱导屏显示剩余车位数,由于控制卡和服务端不在一个局域网内,所以不能使用官网提供的案例,官网提供的案例为控制卡为TCP Server,服务端为TCP Client,因此需要开发此程序,服务端左右…

Python爬虫实战案例——王者荣耀皮肤抓取

大家好,我是你们的老朋友——南枫,今天我们一起来学习一下该如何抓取大家经常玩的游戏——王者荣耀里面的所有英雄的皮肤。 老规矩,直接上代码: 导入我们需要使用到的,也是唯一用到的库: 我们要抓取皮肤其…

【Linux】TCP协议【下二】{流量控制/滑动窗口/延迟应答/捎带应答/拥塞控制}

文章目录 1.流量控制--利用“窗口大小”字段协商数据量大小1. 1第一次的时候,怎么保证发送数据量是合理的1.2第三次握手ack的时候,可以携带数据!1.3流量控制,属于可靠性还是属于效率? 2.滑动窗口--利用滑动窗口解决批量…

UE5 动画蓝图

文章目录 一、State Machines二、Blend Spaces三、Aim Offset四、Montage 初步介绍 Unreal Engine 5 Tutorial - Animation Blueprint Part 1: State Machines (youtube.com) Unreal Engine 5 Tutorial - Animation Blueprint Part 2: Blend Spaces (youtube.com) Unreal Engi…

读人工智能全传01图灵的电子大脑

1. 人工智能 1.1. 人类对人工智能的梦想,可以追溯到很久很久以前 1.1.1. 从古希腊开始,铁匠之神赫菲斯托斯(Hephaestus)拥有赋予金属物品生命的能力 1.1.2. 从16世纪的布拉格开始,传说中伟大的拉比在那里用黏土制作了一个傀儡魔像&#xf…

使用patch-package自动修改node_modules中的内容/打补丁

背景 在使用VuePress搭建个人博客的过程中,我需要使用到一个用来复制代码块的插件uepress-plugin-nuggets-style-copy。 问题:插件可以正常安装,但是启动会报错。通过查看错误信息,定位是插件中的copy.vue文件出现错误&#xff0c…

【实战场景】记一次UAT jvm故障排查经历

【实战场景】记一次UAT jvm故障排查经历 开篇词:干货篇:1.查看系统资源使用情况2.将十进制进程号转成十六进制3.使用jstack工具监视进程的垃圾回收情况4.输出指定线程的堆内存信息5.观察日志6.本地环境复现 总结篇:我是杰叔叔,一名…

仿论坛项目--初识Spring Boot

1. 技术准备 技术架构 • Spring Boot • Spring、Spring MVC、MyBatis • Redis、Kafka、Elasticsearch • Spring Security、Spring Actuator 开发环境 • 构建工具:Apache Maven • 集成开发工具:IntelliJ IDEA • 数据库:MySQL、Redi…