Librechat快速部署指南

news2024/12/22 9:37:52

引言

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几乎所有的功能,其中有一些细节的调整没有讲解,请对照官方文档自行测试,文档地址>>,希望本文能给你带来帮助。

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

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

相关文章

老旧芯片糊弄不了国人,国产手机纷纷降价,直逼千元

国产手机今年特别糊弄国内消费者,将2022年乃至2018年的芯片稍微升级,或者就是直接改名重新上市,国产手机以为他们可以凭借市场份额优势迫使消费者购买这些采用落后芯片的手机,然而现实说明他们错了。 近期几家国产手机品牌纷纷将这…

生物分子生物学实验过程的自动化与智能监控系统设计

开题报告:生物分子生物学实验过程的自动化与智能监控系统设计 一、引言 随着生物科学技术的飞速发展,生物分子生物学实验在科研、医疗、农业等领域的应用日益广泛。然而,传统的生物分子生物学实验过程大多依赖于人工操作,存在操…

网安加·百家讲坛 | 刘志诚:从安全(Safety)团队看OpenAI之争的本质

作者简介:刘志诚,乐信集团信息安全中心总监、OWASP广东区域负责人、网安加社区特聘专家。专注于企业数字化过程中网络空间安全风险治理,对大数据、人工智能、区块链等新技术在金融风险治理领域的应用,以及新技术带来的技术风险治理…

【UML用户指南】-26-对高级行为建模-状态图

目录 1、概念 2、组成结构 3、一般用法 4、常用建模技术 4.1、对反应型对象建模 一个状态图显示了一个状态机。在为对象的生命期建模中 活动图展示的是跨过不同的对象从活动到活动的控制流 状态图展示的是单个对象内从状态到状态的控制流。 在UML中,用状态图…

基于MATLAB对线阵天线进行泰勒加权

相控阵天线——基于MATLAB对线阵进行泰勒加权 目录 前言 一、泰勒综合 二、单元间距的改变对泰勒阵列方向图的影响 三、单元数的改变对泰勒阵列激励分布的影响 四、副瓣电平SLL对泰勒阵列激励幅度的影响 五、副瓣电平SLL对泰勒阵列方向图的影响 六、泰勒阵列和切比雪夫阵…

去中心化革命:探索区块链技术的前沿

随着信息技术的飞速发展,区块链技术作为一种新兴的去中心化解决方案,正逐渐改变着我们的经济、社会和技术格局。本文将从区块链的基本原理、当前的应用实例以及未来的发展趋势三个方面,深入探讨区块链技术在革命性变革中的角色和影响。 1. 区…

融云上线 HarmonyOS NEXT 版 SDK,全面适配「纯血鸿蒙」生态

6 月 21 日,“2024 华为开发者大会”正式发布使用自研内核的原生鸿蒙系统 HarmonyOS NEXT,即 “纯血鸿蒙”。 同时,华为宣布开放“鸿蒙生态伙伴 SDK 市场”,甄选各类优质、安全的 SDK 加入聚合平台,助力各行业开发者轻…

去中心化经济的革新:探索Web3的新商业模式

随着区块链技术的发展,Web3正逐渐成为全球经济和商业模式的关键词之一。Web3不仅仅是技术的革新,更是对传统中心化商业模式的挑战和重构。本文将深入探讨Web3背后的概念、关键技术以及其带来的新商业模式,带领读者走进这一新兴领域的深度分析…

试用笔记之-免费的汇通餐饮管理软件

首先下载免费的汇通餐饮管理软件: http://www.htsoft.com.cn/download/htcanyin.exe 安装后的图标 登录软件,默认没有密码 汇通餐饮管理软件主界面 汇通餐饮软件前台系统 点菜

vue3长列表优化,使用vue-virtual-scroller实现直播间弹幕列表虚拟滚动效果

使用的组件库是:https://github.com/Akryum/vue-virtual-scroller 官方文档:vue-virtual-scroller 安装依赖 npm install --save vue-virtual-scrollernextpnpm install --save vue-virtual-scrollernextyarn add vue-virtual-scrollernext 组件导入…

用MySQL+node+vue做一个学生信息管理系统(四):制作增加、删除、修改的组件和对应的路由

1.下载依赖: npm install vue-router 在src目录下新建一个文件夹router,在router文件夹下新建一个文件router.js文件,在component目录下新建增加删除和修改的组件,引入router.js当中 此时的init组件为主页面((二、三&…

在昇腾服务器上使用llama-factory对baichuan2-13b模型进行lora微调

什么是lora微调 LoRA 提出在预训练模型的参数矩阵上添加低秩分解矩阵来近似每层的参数更新,从而减少适配下游任务所需要训练的参数。 环境准备 这次使用到的微调框架是llama-factory。这个框架集成了对多种模型进行各种训练的代码,少量修改就可使用。 …

怎样把热门抖音短视频下载保存到手机相册?

怎样把热门抖音短视频下载保存到手机相册? 1、在手机上打开抖音短视频APP; 2、打开后搜索或找到要下载保存的抖音短视频; 3、打开短视频后,点击右则的分享,并滑动找到保存到相册; 4、点击后等待完成下载,…

linux高级编程(9)进程间通信

2的信号量集就是semaphore 这个图很重要&#xff01;&#xff01;&#xff01; 无名管道&#xff1a; 练习一&#xff1a;读操作 代码如下&#xff1a; #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> int ma…

开源模型应用落地-FastAPI-助力模型交互-WebSocket篇(六)

一、前言 使用 FastAPI 可以帮助我们更简单高效地部署 AI 交互业务。FastAPI 提供了快速构建 API 的能力,开发者可以轻松地定义模型需要的输入和输出格式,并编写好相应的业务逻辑。 FastAPI 的异步高性能架构,可以有效支持大量并发的预测请求,为用户提供流畅的交互体验。此外,F…

【C语言】inline 关键字

在C语言中&#xff0c;inline关键字用于建议编译器对函数进行内联展开&#xff0c;而不是像普通函数一样调用。内联函数的目的是减少函数调用的开销&#xff0c;特别是对于简单的、频繁调用的函数。 内联函数的定义和使用 定义内联函数 要定义一个内联函数&#xff0c;需要在…

小红书运营教程02

小红书大致会分享10篇左右。微博、抖音、以及视频剪辑等自媒体运营相关技能以及运营教程相关会陆续的进行分享。 上次分享涉及到的对比,母婴系列,或者可以说是服装类型,不需要自己过多的投入,对比知识类博主来说,自己将知识讲述出来,然后要以此账号进行变现就比较麻烦,…

认识一下HttpMessageHandler处理管道

[S1208]HttpClient的默认管道结构 接下来我们通过如下的演示程序使用IHttpClientFactory工厂创建了 一个HttpClient对象&#xff0c;并查看其管道依次由哪些类型的HttpMessageHandler对象组成。如代码片段所示&#xff0c;我们定义了一个辅助方法PrintPipeline方法以递归的形式…

我等你,就在微软头马Open House开放日

当众讲话一直是我职业生涯中的重要部分&#xff0c;MSTMC 头马俱乐部更是我成长路上的重要伙伴。今天&#xff0c;我诚挚地邀请你参加即将在北京微软大厦举行的 微软头马Open House开放日活动&#xff01; 活动详情&#xff1a; &#x1f4c5; 日期&#xff1a;2024年7月3日&am…

Python 作业题1 (猜数字)

题目 你要根据线索猜出一个三位数。游戏会根据你的猜测给出以下提示之一&#xff1a;如果你猜对一位数字但数字位置不对&#xff0c;则会提示“Pico”&#xff1b;如果你同时猜对了一位数字及其位置&#xff0c;则会提示“Fermi”&#xff1b;如果你猜测的数字及其位置都不对&…