体验LobeChat搭建私人聊天应用
LobeChat是什么
LobeChat
是开源的高性能聊天机器人框架,支持语音合成、多模态、可扩展的(Function Call)插件系统。支持一键免费部署私人ChatGPT/LLM
网页应用程序。
地址:https://github.com/lobehub/lobe-chat
为什么要用LobeChat
有些朋友会问,这些功能大部分都可以用chatGPT plus实现,为什么还要费劲安装 LobeChat
,我觉得有以下几点需求的朋友可以用到 LobeChat
:
- 有时需要在不开代理的情况下访问
ChatGPT
; - 有些场景下语音输入很便利,可以体验到
ChatGPT
安卓版的便利; - 只有一个账号的情况下想共享给朋友使用,并且要保证用户的隐私安全。
- 不仅体验
OpenAI
,有时需要切换其他大模型厂商; - 能自定义域名并个性化使用。
LobeChat的特性
GPT
视觉认知:LobeChat
支持GPT-4-vision
的视觉识别,实现多模态对话,用户可上传图片进行智能对话。- 语音互动: 支持文本转语音和语音转文本,多种声音选择,提升交流体验。
- 文生图功能: 结合最新
AI
技术,用户可将文本直接转换为图片。 - 插件系统: 扩展
ChatGPT
功能,包括实时信息获取、新闻、文档检索等。 - 助手市场: 提供多种助手,支持工作和学习,促进社区协作。
- 渐进式Web应用: 提供类似原生应用的体验,优化移动和桌面使用。
- 移动适配: 优化移动体验,欢迎用户反馈以改进版本。
- 自定义主题: 提供多种主题和颜色选择,满足个性化需求。
准备工作
需要以下准备工作提前做好,具体操作可以参考文章最后的参考文献。
- 一台服务器:使用
docker
部署服务时需要,使用Vercel
时不需要。 OpenAI API Key
:调用ChatGPT
提供的API
时需要使用。API
代理:要调用OpenAI API
,无法访问外网时需要代理服务,Vercel
部署时不需要。
安装体验
LobeChat
提供了 Vercel
的 自托管版本 和 Docker 镜像,这使你可以在几分钟内构建自己的聊天机器人,无需任何基础知识。
本人搭建的LobeChat,分享给大家体验一下:https://www.coderjia.cn/chatgpt ,额度用完即停止分享~
使用 Vercel
安装
白嫖 Vercel
的服务器资源,还不需要代理服务,推荐优先使用,不过个人版有限额,但够用了。
1、Fork 仓库
Fork
这个 https://github.com/lobehub/lobe-chat
仓库,为了保持和原仓库同步更新,建议执启动 Upstream Sync Action
,启用之后可以设置每小时进行一次自动更新。
2、注册 vercel 账户
Vercel
是一个自动化的Web
应用部署、预览和上线平台,结合了Github Page
和Github Action
的功能。它支持应用模板,帮助开发人员快速搭建和上线应用,同时支持Github
项目导入和联动。Vercel
专注于项目的部署和静态托管,提供Serverless Function
,但不涉及持续集成测试等其他CI/CD
流水线任务。此外,Vercel
支持零配置部署到全球边缘网络,提高访问速度,自动处理CDN
和HTTPS
配置,且可以部署多种环境,如生产环境和预览环境。用户可以通过Vercel
平台全自动部署个人网站,只需修改仓库中的代码并推送至Github
,Vercel
便会自动触发重新部署流程。
地址:https://vercel.com/
3、新建项目
可以通过这个Deploy链接直接创建项目,参数都准备好了,也可以按照下面步骤一步步创建。
新建项目:
选择自己git仓库中的项目,搜不到的话需要授权访问该项目:
设置环境变量:
环境变量 | 类型 | 描述 | 示例 |
---|---|---|---|
OPENAI_API_KEY | 必选 | 这是你在 OpenAI 账户页面申请的 API 密钥 | sk-xxxxxx...xxxxxx |
OPENAI_PROXY_URL | 可选 | 如果你手动配置了 OpenAI 接口代理,可以使用此配置项来覆盖默认的 OpenAI API 请求基础 URL | https://api.chatanywhere.cn 或 https://aihubmix.com/v1 默认值: https://api.openai.com/v1 |
ACCESS_CODE | 可选 | 添加访问此服务的密码,你可以设置一个长密码以防被爆破,该值用逗号分隔时为密码数组 | awCTe)re_r74 or rtrt_ewee3@09! or code1,code2,code3 |
CUSTOM_MODELS | 可选 | 用来控制模型列表,使用 + 增加一个模型,使用 - 来隐藏一个模型,使用 模型名=展示名 来自定义模型的展示名,用英文逗号隔开。 | qwen-7b-chat,+glm-6b,-gpt-3.5-turbo |
部署过程需要静静等待几分钟。。。
部署成功之后,可以配置域名,也可以进一步设置:
4、访问lobe-chat项目
点击中间图标进入,出现如下界面:
需要输入设置的访问密码 ACCESS_TOKEN
才能访问,也可以配置社交账号单点登录访问:
可以切换 ChatGPT
版本或者其他厂商的模型:
设置->默认助手->模型
手机访问,适配也是没问题的:
5、自定义域名
如下步骤可以设置自定义域名:
需要到域名解析服务商添加以下内容:
使用docker安装
Docker
部署也很简单,使用以下命令即可使用一键启动 LobeChat
服务:
$ docker pull lobehub/lobe-chat
$ docker run -d -p 3210:3210 \-e OPENAI_API_KEY=sk-xxxx \-e ACCESS_CODE=lobe66 \--name lobe-chat \lobehub/lobe-chat
如果你需要通过代理使用 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
总结
LobeChat
是一个功能强大、易于部署和使用的聊天机器人框架,为用户提供了一个创新的交互和沟通工具,可配置 OpenAI
、Azure OpenAI
、智普 AI
等多种模型 API
。配合租赁 OpenAI API Key
即可享受 ChatGPT plus
相关功能,适用于需要部署和使用聊天机器人的个人和企业,特别是那些寻求高性能、多功能和可定制化聊天机器人解决方案的用户。
参考
ChatGPT之开通ChatGPT4
ChatGPT之充值OpenAI API
ChatGPT之搭建API代理服务
相关文章:

体验LobeChat搭建私人聊天应用
LobeChat是什么 LobeChat 是开源的高性能聊天机器人框架,支持语音合成、多模态、可扩展的(Function Call)插件系统。支持一键免费部署私人 ChatGPT/LLM 网页应用程序。 地址:https://github.com/lobehub/lobe-chat 为什么要用Lobe…...

ClickHouse 指南(三)最佳实践 -- 主键稀疏索引
在ClickHouse主索引的实用介绍 ClickHouse release 24.1, 2024-01-30 1、简介 在本指南中,我们将深入研究ClickHouse索引。我们将详细说明和讨论: ClickHouse中的索引与传统的关系数据库管理系统有何不同ClickHouse是如何构建和使用表的稀疏主索引的什么是在Clic…...
【Nginx】Nginx配置反向代理 和 https
nginx.conf配置 进入linux /etc/nginx/ 打开nginx.conf 进行以下配置 http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {#监听443端口listen 443 ssl;#你的域名server_name huiblog.top;#ssl证书的pe…...
ChatGPT第七讲
ChatGPT为什么会被热炒? 2023年上半年,ChatGPT引起了广泛的热议,对于ChatGPT有多热,不需要我重复了,你可能在网上看到了很多报道,标题如《ChatGPT揭开AI战幔:杀死黄页一样摧毁Google?…...
Chapter 2 of Effective C++ (构造/析构/赋值运算)
条款06:了解C默默编写并调用哪些函数 Know what functions C silently writes and calls 编译器会为空类生成一个copy构造函数、copy assignment操作符和一个析构函数。此外如果你没有声明任何构造函数,它也会生成一个默认构造函数。 (对C1…...
Android学习笔记 service启动方式
在Android系统中,Service的启动方式主要有两种: ## 1. startService 这种方式用于启动一个服务执行后台任务,不进行通信。当你调用startService()方法启动服务后,服务会一直无限期运行下去,只有在外部调用了stopServi…...

Redis 工具类 与 Redis 布隆过滤器
Redis 工具类 1. 核心依赖 <!--redis--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency><groupId>com.google.guava…...

自定义el-upload 上传文件
前言 最近在做一个文件上传的功能,后端接口写好了、发现前端上传文件的页面不会写……(我很笨的)然后我就找啊找发现element有个组件是<el-upload/>能直接上传文件。我就想直接用拿来改改改成自己想要的,可是就是这样我花了…...

LeetCode69. x 的平方根(C++)
LeetCode69. x 的平方根 题目链接代码 题目链接 https://leetcode.cn/problems/sqrtx/description/ 代码 class Solution { public:int mySqrt(int x) {int right x, left 0, ans -1;while(left < right){long long mid left (right - left) / 2;if(mid * mid <…...
[c++] 单例模式 + cyberrt TimingWheel 单例分析
单例模式要求一个类在一个进程中只能创建一个对象。比如 cyberrt 中的 TimingWheel 类就是单例模式,这个类管理着一个进程内的所有定时器,只需要一个对象就可以。 单例模式的实现有两种方式,懒汉式和饿汉式。懒汉式,当第一次使用…...
如何在cmd里面创建一个vue项目
在命令提示符(CMD)中创建一个Vue项目,你需要先确保你已经全局安装了Vue CLI(Vue的命令行工具)。如果你还没有安装Vue CLI,可以通过以下命令进行安装: bash复制代码 npm install -g vue/cli # O…...
Day2 JS基础
2.1 运算符 赋值运算符 一元运算符 -- <script>let h20let kh hconsole.log(h) //22console.log(k) //42let i1console.log(i i i) //7 // 递增运算符:var a8aconsole.log(a) //9 var num10var bnumconsole.log(b) //10</script> 比较运…...
mybatis----有用配置知识归纳(狂神说学习总结)
1.mybatis介绍 MyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类映射成数据库中的记录 官网 Mybatis中文官方文档 : https…...

【TCP/IP】组播
一、组播介绍 组播(Multicast)是网络技术中数据传输的一种方法,它允许将数据包同时发送给一组指定的目标,而不是单个的目标(单播 Unicast)或所有可能的目标(广播 Broadcast)。组播传…...

java 内存模型
程序计数器 线程私有主要字节码解释器通过读取程序计数器来选取下一条需要执行的指令,比如分支,循环,跳转和异常处理如果执行的是java 方法,那么程序计数器记录的时候虚拟机字节码指令的地址,如果执行的是native 方法…...

Linux——缓冲区封装系统文件操作
📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、FILE二、封装系统接口实现文件操作1、text.c2、mystdio.c3、mystdio.h 一、FILE 因为IO相…...

深度学习系列59:文字识别
1. 简单文本: 使用google加的tesseract,效果不错。 首先安装tesseract,在mac直接brew install即可。 python调用代码: import pytesseract from PIL import Image img Image.open(1.png) pytesseract.image_to_string(img, lan…...
学习JAVA的第七天(基础)
目录 static 静态变量 静态方法 工具类: static的注意事项 继承 继承的好处 继承的特点 方法的重写 书写格式 override重写注解 方法重写的要求 this关键字 super关键字 static static表示静态,是Java中的一个修饰符,可以修饰成…...

GoLand 相关
goland 下载依赖 go mod tidy:保持依赖整洁 go mod tidy 命令的作用是清理未使用的依赖,并更新 go.mod 以及 go.sum 文件。 go mod tidy 和 go mod vendor 两个命令是维护项目依赖不可或缺的工具。go mod tidy 确保了项目的 go.mod 文件精简且准确&…...

顶顶通呼叫中心中间件-如何使处于机器人话术中的通话手动转接到坐席分机上
文章目录 前言联系我们实现步骤freeswitch命令转接api接口转接 前言 本文讲解呼叫中心中间件如何手动转接通话。 场景:利用自动外呼进入机器人,在通话过程中,转接到坐席分机上。 联系我们 有意向了解呼叫中心中间件的用户,可以点…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...

yaml读取写入常见错误 (‘cannot represent an object‘, 117)
错误一:yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因,后面把yaml.safe_dump直接替换成yaml.dump,确实能保存,但出现乱码: 放弃yaml.dump,又切…...

结构化文件管理实战:实现目录自动创建与归类
手动操作容易因疲劳或疏忽导致命名错误、路径混乱等问题,进而引发后续程序异常。使用工具进行标准化操作,能有效降低出错概率。 需要快速整理大量文件的技术用户而言,这款工具提供了一种轻便高效的解决方案。程序体积仅有 156KB,…...

高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。
2024 年,高端封装市场规模为 80 亿美元,预计到 2030 年将超过 280 亿美元,2024-2030 年复合年增长率为 23%。 细分到各个终端市场,最大的高端性能封装市场是“电信和基础设施”,2024 年该市场创造了超过 67% 的收入。…...
精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑
精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑 在电子商务领域,转化率与网站性能是决定商业成败的核心指标。今天,我们将深入解析不同类型电商平台的转化率基准,探讨页面加载速度对用户行为的…...