LobeChat:搭建你的私人 GPT!

前端训练营:1v1私教,终身辅导计划,帮你拿到满意的 offer 已帮助数百位同学拿到了中大厂 offer。欢迎来撩~~~~~~~~

Hello,大家好,我是 Sunday。

之前有同学问我:“老师,我想要搭建一个个人的 GPT,用来记录个人笔记,我应该怎么做呢?”

嗯…

曾经的我也是一头雾水。不过,自从看到了 LobeChat 之后,我就有方案啦~~

01:什么是 LobeChat

🤖 Lobe Chat 是:一个开源、高性能的聊天机器人框架,支持语音合成、多模式和可扩展的功能调用插件系统。支持一键免费部署您的私人ChatGPT/LLM Web应用程序。

LobeChat以其先进的文本转语音(TTS)和语音转文本(STT)功能为用户提供个性化的听觉体验。其独特的可扩展函数调用插件系统大幅增强了在各种场景中的实用性。Lobe Chat是一个多功能、社区驱动的平台,无需额外支付费用即可重新定义数字通信。

目前,LobeChat在GitHub以MIT协议开源,拥有超过14.6k的star和2.6k的fork,是一个值得关注的人工智能开源项目。

02:LobeChat 有什么过人之处

2.1:视觉模型支持

LobeChat支持OpenAI最新的GPT-4 Vision模型,该模型具备视觉识别功能。GPT-4 Turbo with Vision是一种多模态模型(LMM),可以分析图像并根据图像相关问题提供文本响应。它结合了自然语言处理和视觉理解的能力。

gpt-4-vision具备多模态视觉感知功能,用户可以轻松地上传或拖拽图片至LobeChat的对话框中。LobeChat将根据图片内容进行智能对话,打造更智能、更多样化的聊天场景。

这一功能开创了全新的互动方式,使沟通不再局限于文本,拥有丰富的视觉元素。不论是分享日常图片还是解释特定行业内的图像,LobeChat都能提供出色的对话体验。

2.2:支持 TTS 和 STT 语音

LobeChat支持文本转语音(Text-to-Speech,TTS)和语音转文本(Speech-to-Text,STT)技术,使应用程序能够将文本消息转换为清晰的语音输出,让用户与会话代理进行交互,仿佛在与真人交谈一样。同时,用户可以自由选择多种声音来配对代理。

此外,TTS为那些喜欢听觉学习或希望在忙碌时接收信息的人提供了一个极好的解决方案。LobeChat精心挑选了一系列高质量的语音选项,例如OpenAI Audio和Microsoft Edge Speech,以满足来自不同地区和文化背景的用户需求。用户可以根据个人喜好或特定场景选择合适的语音,享受个性化的沟通体验。

OpenAI Audio提供了端点,让用户与其TTS AI模型进行交互,能够将文本转换为自然口语。该模型有两种变体:TTS-1专注于实时文本转语音用例,而TTS-1-HD则专注于质量优化。

Microsoft Edge Speech则内置了“朗读”功能。在Canvas中,用户可以右键单击页面并选择“朗读”,或者点击浏览器设置菜单(三个点),然后选择“朗读”。页面上将出现用于选择语音类型和阅读速度的控件。

LobeChat在实现这一功能时,面临了市场上缺乏优质TTS(文本转语音)前端库的挑战。为此,投入了大量精力,涉及数据转换、音频进度管理、语音可视化等任务。最终,成功将其开源,并推出了@lobehub/tts,这是一个用TypeScript开发的高质量TTS工具包,支持在服务器端和浏览器中使用。

$ git clone https://github.com/lobehub/lobe-tts.git
$ cd lobe-tts
$ bun install
$ bun dev
// 或者使用 bun 运行时安装
// bun add @lobehub/tts

借助@lobehub/tts,语音识别变得异常简单:

服务器端

只需少量代码即可实现媲美OpenAI TTS服务的高质量语音生成能力。目前支持EdgeSpeechTTS、MicrosoftTTS、OpenAITTS和OpenAISTT。

// index.js
import { EdgeSpeechTTS } from '@lobehub/tts';
import {Buffer} from 'buffer';
import fs from 'fs';
import path from 'path';
// 实例化 EdgeSpeechTTS
const tts = new EdgeSpeechTTS({locale: 'en-US'});
// Create speech synthesis request payload
const payload = {input: 'This is a speech demonstration',options: {voice: 'en-US-GuyNeural',},
};
// Call create method to synthesize speech
const response = await tts.create(payload);
// generate speech file
const mp3Buffer = Buffer.from(await response.arrayBuffer());
const speechFile = path.resolve('./speech.mp3');
fs.writeFileSync(speechFile, mp3Buffer);
浏览器端

提供高质量 React Hooks 和可视化音频组件,支持:加载、播放、暂停、拖动时间线等常用功能。 此外还提供一组非常丰富的功能来调整音轨风格。

import { AudioPlayer, AudioVisualizer, useAudioPlayer } from '@lobehub/tts/react';
// 导入包
export default () => {const {ref, isLoading, ...audio} = useAudioPlayer(url);return (<Flexbox align={'center'} gap={8}><AudioPlayer audio={audio} isLoading={isLoading} style={{ width: '100%' }} /><AudioVisualizer audioRef={ref} isLoading={isLoading} /></Flexbox>);
};

值得注意的是,由于Node.js环境缺少WebSocket实例,需要对WebSocket进行polyfill,比如下面的示例:

// import at the top of the file
import WebSocket from 'ws';
global.WebSocket = WebSocket;

2.3:函数调用插件系统

LobeChat的插件生态是其核心功能的重要扩展,极大增强了ChatGPT的实用性和灵活性。借助插件,ChatGPT能够进行实时信息检索和处理,例如自动获取最新的新闻标题,为用户提供即时相关信息。这一功能的存在让LobeChat的功能更加丰富和智能化。

此外,插件不仅限于新闻聚合,还可以扩展到其他实用功能,如快速文档检索、电商平台数据访问以及各种第三方服务。

以下是目前可用的基础插件:

  • lobe-chat-plugins:LobeChat的插件索引,用户可从存储库访问index.json,查看LobeChat可用的插件列表。
  • chat-plugin-template:LobeChat插件开发的模板。
  • @lobehub/chat-plugin-sdk:LobeChat插件SDK,可帮助开发者创建出色的聊天插件。
  • @lobehub/chat-plugins-gateway:LobeChat插件网关,为LobeChat插件提供后端服务,并可使用Vercel进行部署。主要API包括POST /api/v1/runner,将部署为边缘函数。

社区生态中也涌现了一些优秀的插件:

  • Weather GPT:Steven Tey于2023年12月16日发布,可获取特定位置的当前天气信息。
  • Ask Your PDF:发布于2023年12月16日,深入研究您的文档,找到答案,并将信息带到您的指尖。
  • Clock Time:作者LobeHub于2023年11月01日发布,显示当前时间的时钟。
  • Mindmap:Moonlit7于2023年12月19日发布,提供思维导图生成助手。

2.4:代理市场和 PWA 应用

当在LobeChat Agent Marketplace中,创作者会发现一个充满活力和创新的社区。这里聚集了众多精心设计的代理,不仅在工作场景中发挥着重要作用,而且在学习过程中也提供了巨大的便利。

同时,借助渐进式Web应用程序(PWA)技术,Web应用可以提供接近原生应用程序的体验。PWA专为网站打造,能提供与移动应用类似的体验。PWA的速度很快,并且能提供移动设备所具备的多种功能。例如,它们可以离线工作并发送通知。

用户可以在计算机或移动设备上通过PWA享受到快速的网站体验。安装PWA能带来更快的访问速度,同时享受额外的功能,例如更多的存储空间来存储离线浏览的内容。

通过PWA技术,LobeChat能够在桌面和移动设备上提供高度优化的用户体验,同时保持其轻量级和高性能的特性。在视觉和交互方面,界面经过精心设计,确保与原生应用程序无异,提供流畅的动画、响应式布局,并能适应不同设备屏幕分辨率。

03:如何部署 LobeChat

3.1:用 Vercel、Zeabur 或 Sealos 进行部署

如果你希望在Vercel或Zeabur上自行部署此服务,可以按照以下步骤进行操作:

  1. 准备OpenAI API密钥:你可以在这里获取OpenAI API密钥 https://platform.openai.com/account/api-keys

  2. 单击下面的按钮开始部署:使用GitHub帐户登录,并确保在环境变量部分填写以下内容:

    • OPENAI_API_KEY(必填)
    • ACCESS_CODE(推荐)
  3. 部署完成后,即可开始使用服务。

  4. (可选)绑定自定义域名:Vercel分配的域名在某些地区可能会受到DNS污染的影响。你可以选择绑定自定义域名以直接连接服务。

这些步骤将帮助你在Vercel或Zeabur上成功部署服务并开始使用它。

3.2:Docker 部署

LobeChat 提供了一个 Docker 镜像,用于在自己的私人设备上部署 LobeChat 服务。使用以下命令启动 LobeChat 服务:

// docker部署示例
$ 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

1v1私教,帮大家拿到满意的 offer

我目前在做一个 前端训练营 ,主打的就是:1v1 私教,帮大家拿到满意的 offer 。

可以点击这里查看详情

也可以直接加我微信沟通,备注【训练营】:
在这里插入图片描述

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

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

相关文章

TDD-LTE 附着流程和去附着流程

目录 1. 附着流程 1.1. 正常附着流程 2. 异常附着流程 2.1 RRC建立失败 2.2 核心网拒绝 2.3 eNodeB未收到初始化上下文建立请求 2.4 RRC重配置请求丢失 2. 去附着流程 2.1 非关机去附着流程 2.1.1 连接态非关机去附着 2.1.2 空闲态非关机去附着 2.2 关机去附着流程 …

实战Keras3.0:自定义图片数据集分类任务

一、创建自定义图片数据集 1、数据收集 以10张小狗图片和10张小猫图片为例 2、数据预处理 1、创建Excel表格&#xff0c;并在其中创建两列&#xff0c;一列是图片路径&#xff0c;另一列是对应的标签&#xff08;狗0、猫1&#xff09; 2、用pandas库的read_excel函数读取Exc…

java企业人事信息管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web企业人事信息管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境 为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为M…

RTC第二个功能和应用程序

一般RTC模块设备管理时间日历、计时器等。从年到二。一些爱普生RTC 模块可以通过使用来自32768 Hz的分割频率来管理次第二功能。本文件 描述了RTC模块的三个具体的应用程序。&#xff08;表1&#xff09; 表1中的功能和产品 [FOUT函数应用程序] 图1描述了RTC模块&#xff0…

Python数据挖掘与机器学习实践技术应用

近年来&#xff0c;Python编程语言受到越来越多科研人员的喜爱&#xff0c;在多个编程语言排行榜中持续夺冠。同时&#xff0c;伴随着深度学习的快速发展&#xff0c;人工智能技术在各个领域中的应用越来越广泛。机器学习是人工智能的基础&#xff0c;因此&#xff0c;掌握常用…

qt .pro工程转vs工程

1. 新建vs空项目或者Qt Console Application&#xff1b; 2. 扩展 -》Qt VS Tools -》Open Qt Project (.pro) 打开对应的pro文件即可将.pro工程转成vs工程&#xff1b; 注意&#xff1a; &#xff08;1&#xff09;转成的vs工程在pro文件同级目录下&#xff0c;双击打开vcx…

桶式移位器

前言 本篇文章介绍CPU的核心部件之一&#xff1a;桶式移位器&#xff0c;简称BS&#xff0c;英文全称为Barrel Shifter 桶式移位器最大的特点就是能在单周期内完成多种方式&#xff0c;各种位数的移位操作 常见的移位操作 常见的移位操作种类如下&#xff1a; 算术右移 是指…

实验笔记之——基于windows复现Instant-NGP

之前博客对NeRF-SLAM进行了调研&#xff0c;本博文先复现一下Intant-NGP。 学习笔记之——NeRF SLAM&#xff08;基于神经辐射场的SLAM&#xff09;-CSDN博客文章浏览阅读851次&#xff0c;点赞22次&#xff0c;收藏21次。NeRF 所做的任务是 Novel View Synthesis&#xff08;…

在前端开发中,如何优化网站的加载速度?

在前端开发中&#xff0c;网站的加载速度是一个至关重要的因素&#xff0c;它直接影响着用户体验和搜索引擎优化&#xff08;SEO&#xff09;。一个快速、响应迅速的网站不仅能让用户更加满意&#xff0c;还能提高网站的排名和流量。那么&#xff0c;如何优化网站的加载速度呢&…

el-radio-button自适应充满盒子的写法

业务场景&#xff1a;当盒子较宽时&#xff0c;希望 el-radio-button 自适应充满盒子。 el-radio-button 自适应充满盒子的写法 <el-form :inline"true" :model"searchForm"><el-form-item style"display: flex; align-items: center;"…

【Java EE初阶七】多线程案例(阻塞队列与生产者消费者模型)

1. 阻塞队列 队列是先进先出的一种数据结构&#xff1b; 阻塞队列&#xff0c;是基于队列&#xff0c;做了一些扩展&#xff0c;适用于多线程编程中&#xff1b; 阻塞队列特点如下&#xff1a; 1、是线程安全的 2、具有阻塞的特性 2.1、当队列满了时&#xff0c;就不能往队列里…

串口通信要点解析

目录 简介&#xff1a; UART 协议解析&#xff1a; 串口协议工作过程&#xff1a; 简介&#xff1a; 串行通信协议包括&#xff1a; UART通用异步收发传输器 (Universal Asynchronous ReceiverTransmitter) 是一种串行异步收发协议 (异步是指通信双方使用各自的时钟控制数据…

fineBI web组件传参

1、fineBI web组件传参 1.1、 Web组件- FineBI帮助文档 FineBI帮助文档1. 概述1.1 版本FineBI 版本HTML5移动端展现功能变动6.0--V11.0.83web组件适配移动端效果优化6.0.13-web组件支持传递参数 ${过滤组件https://help.fanruan.com/finebi/doc-view-143.html 1.2、自己做的例…

分布式(6)

目录 26.雪花算法如何实现的&#xff1f; 27.雪花算法有什么问题&#xff1f;有哪些解决思路&#xff1f; 28.有哪些方案实现分布式锁&#xff1f; 29.基于数据库如何实现分布式锁&#xff1f;有什么缺陷&#xff1f; 30.基于Redis如何实现分布式锁&#xff1f;有什么缺陷&…

VS 2022 控制台程序运行时不显示控制台

Visual Studio 2022&#xff0c;C#控制台程序运行时不显示控制台。此外&#xff0c;C#程序修改运行时的程序名。 文章目录 不显示控制台修改运行时的程序名打包成.exe 文件 不显示控制台 1 选中需要项目&#xff0c;右击属性&#xff0c;选中常规。 2 将输出类型从控制台改为…

微服务-@FeignClient 与 Feign 隔离

FeignClient 扫描 FeignClientsRegistrar#registerBeanDefinitions public void registerBeanDefinitions(AnnotationMetadata metadata,BeanDefinitionRegistry registry) { // 注册默认配置 registerDefaultConfiguration(metadata, registry); registerFeignClients(metada…

服务异步通讯---RabbitMQ实用篇

目录 一、初识MQ 一、同步调用 1、同步通讯和异步通讯 2、同步调用的问题 3.同步调用总结 二、异步调用 1、优势&#xff1a; ​编辑 2、异步总结 二、什么是MQ 一、RabbitMQ快速入门 1、RabbitMQ的结构和概念 2、常见消息模型 2.1、基础消息队列模型 2.2、总结 二…

Sharding-JDBC快速使用【笔记】

1 引言 最近在使用Sharding-JDBC实现项目中数据分片、读写分离需求&#xff0c;参考官方文档&#xff08;Sharding官方文档&#xff09;感觉内容庞杂不够有条理&#xff0c;重复内容比较多&#xff1b;现结合项目应用整理笔记如下供大家参考和自己回忆使用&#xff1b; 在…

为什么要太空探索?未来万亿人口 人类移居太空是不可避免的。大语言模型是发现 贝索斯

管理的思考 「最以客户为中心」「果断」「如何决策」 贝索斯给亚马逊的使命是「世上最以客户为中心的公司」(以客户需求为起点&#xff0c;反向推动工作)。贝索斯给蓝色起源的使命是「世上最果断的公司」(我们将变得非常擅长在技术上恰当地冒险&#xff0c;并快速地作出那些决…

一篇了解springboot3请求参数种类及接口测试

SpringBoot3数据请求&#xff1a; 原始数据请求&#xff1a; //原始方式RequestMapping("/simpleParam")public String simpleParam(HttpServletRequest request){//获取请求参数String name request.getParameter("name");String age request.getParame…