【langchain实战】开源项目-RasaGPT

1、概述

    RasaGpt是一个建立在 Rasa Langchain 之上的没有显示界面的LMM聊天机器人平台。它是一个Rasa和Telegram这种利用像Langchain这样的LMM库进行索引、检索和上下文注入的样板及参考实现。
    开源地址: GitHub - paulpierre/RasaGPT: 💬 RasaGPT is the first headless LLM chatbot platform built on top of Rasa and Langchain. Built w/ Rasa, FastAPI, Langchain, LlamaIndex, SQLModel, pgvector, ngrok, telegram

1.1 什么是rasa

Rasa is an open source (Python) machine learning framework to automate text- and voice-based conversations: NLU, dialogue management, connect to Slack, Facebook, and more - Create chatbots and voice assistants     Rasa  is a very popular (dare I say de facto?) and easy-enough to use chatbot framework with built in NLU ML pipelines that are obsolete and a conceptual starting point for a reimagined chatbot framework in a world of LLMs.

1.2 选择RasaGPT的原因

    RasaGpt开箱即用。很多实现细节都已经处理好了,你不需要自己动手,包括:
  • 使用FastAPI创建你自己的专有bot端点,包括文档上传和“训练”流程。
  • 如何将Langchain/LlamaIndex和Rasa集成。
  • 与LLM库的库冲突和元数据传递。
  • 支持在MacOS上运行Rasa的Docker化。
  • 通过ngrok实现与聊天机器人的反向代理。
  • 使用你自己的定制模式的pgvector,而不是使用Langchain高度偏见的PGVector类。
  • 在Rasa和你自己的后端/应用程序之间添加多租户(Rasa本身不支持此功能)、会话和元数据。

2、快速安装

        注意非 macOS 用户:  如果您正在使用 Linux 或 Windows,docker镜像需要 khalosa/rasa-aarch64:3.5.2  更改为  rasa/rasa:latest ,具体操作在  docker-compose.yml 的第64行  和  此处操作的 actions Dockerfile 的第1行。
# 获取代码
git clone https://github.com/paulpierre/RasaGPT.git
cd RasaGPT## 设置.env文件
cp .env-example .env# 编辑您的.env文件并添加所有必要的凭证
make install
    遇到问题:
ailed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status code [manifests 3.8-slim]: 403 Forbidden
ERROR: Service 'rasa-credentials' failed to build : Build failed
make[2]: *** [rasa-start] Error 1
make[1]: *** [rasa-train] Erro
   解决方案:
Docker的安装过程大致分为以下步骤:
1.检查是否有.env文件可用
2.使用[pgvector](GitHub - pgvector/pgvector: Open-source vector similarity search for Postgres)初始化数据库
3.数据库模型创建数据库模式
4.训练Rasa模型,使其准备好运行
5.使用Rasa设置ngrok,以便Telegram具有回复您的API服务器的Webhook
6.设置Rasa actions服务器,以便Rasa可以与RasaGPT API进行通信
7.使用seed.py将数据库填充有虚拟数据

4、RasaGPT特性

4.1 完整应用程序和 API

  • LLM 使用 Langchain 对任意语料库进行“学习”通过 FastAPI上传文档并进行“训练”
  • 支持文档版本控制,上传时自动执行“重新训练”
  • 可通过 FastAPI和 SQLModel自定义异步端点和数据库模型
  • 机器人可确定是否需要人工干预
  • 机器人可根据用户问题和响应自动生成标签
  • 包含完整的 API 文档,包括 Swagger 和 Redoc包含 PGAdmin,以便您浏览数据库
  • 自动在启动时生成 Ngrok端点,因此始终可以通过 https://t.me/yourbotname 访问您的机器人
  • 利用 Postgres 自带的功能和 pgvector 实现嵌入式相似度搜索
  • 包含 虚拟数据,供您进行测试和实验无限多的用例,包括帮助台、客户支持、测验、电子学习、地下城与巨龙等

4.2 Rasa 集成

基于 Rasa构建,这是聊天平台开源的黄金标准支持 MacOS M1/M2,使用 Docker (标准 Rasa 镜像 不支持 MacOS 架构)
支持 Telegram,可轻松集成 Slack、Whatsapp、Line、SMS 等
利用 Huggingface 的 NLU 模型(如 BERT)或使用 Keras、Tensorflow 等库/框架来设置复杂的对话流水线,OpenAI GPT 作为备用方案

4.3 灵活性

利用Langchain扩展语言、记忆等能力
模式支持多租户、会话和数据存储
自定义代理人个性
保存所有聊天记录,并使用所有互动创建嵌入,未来可形成检索策略
自动从知识库语料库和客户反馈中生成嵌入

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

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

相关文章

svn使用步骤

服务器端主要用来创建仓库,然后供客户端去访问与下载。 客户端: 图形化界面的使用:这里使用的是tortoise工具 1.创建一个文件夹作为自己的本地仓库目录 2.鼠标右键文件夹,在菜单中点击SVN checkout 3.找个图 这一步骤相当于git中…

pytorch中的transpose用法

注意:维数从0开始,0维 1维2维…,负数代表从右往左数,-1代表第一维,以此类推 import torch import numpy as np# 创建一个二维数组 arr torch.tensor([[[1, 2],[3, 4]],[[5, 6],[7, 8]]]) print("原始数组:"…

在linux上如何运用虚拟数据优化器VDO

本章主要介绍虚拟化数据优化器。 什么是虚拟数据优化器VDO 创建VDO设备以节约硬盘空间 16.1 了解什么是VDO VDO全称是Virtual Data Optimize(虚拟数据优化),主要是为了节省硬盘空间。 现在假设有两个文件file1和 file2,大小都是10G。file…

Windows 安全基础——Windows WPAD篇

Windows 安全基础——Windows WPAD篇 WPAD全称Web Proxy Auto-Discovery Protocol, 也就是Web代理自动发现协议。(这里的代理就是我们在渗透中使用BURP的时候修改的代理设置。)它的作用是让局域网浏览器自动发现内网中的代理服务器&#xff…

高效利用内存资源之动态内存管理详解

目录 一、为什么存在动态内存分配 二、动态内存函数的介绍 2.1malloc 2.2free 2.3calloc 2.4realloc 三、常见的动态内存错误 3.1对NULL指针的解引用操作 3.2对动态开辟空间的越界访问 3.3对非动态开辟内存使用free释放 3.4使用free释放一块动态开辟内存的一部分 3.…

RocketMq集成SpringBoot(待完善)

环境 jdk1.8, springboot2.7.3 Maven依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.3</version><relativePath/> <!-- lookup parent from…

读书笔记:《股票量化交易的七个策略》

从长远来看&#xff0c;基本面最重要&#xff1b;从短期来看&#xff0c;价格和情绪最重要。在别人贪婪时恐惧&#xff0c;在别人恐惧时贪婪。 相对强弱指数策略【趋势反转】 相对强弱指数&#xff08;Relative Strength Index&#xff0c;RSI&#xff09; RSI的取值范围在0到…

机器学习基本概念介绍 2023

笔记来源于&#xff1a; https://www.youtube.com/watch?vphQK8xZpgoU&t172s https://www.youtube.com/watch?vXLyPFnephpY&t645s Machine/Deep Learning 机器学习概况来说&#xff0c;让机器具备自动找函式的能力 &#xff08;Machine Learning 约等于 Looking …

[足式机器人]Part2 Dr. CAN学习笔记-数学基础Ch0-6复数Complex Number

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-数学基础Ch0-6复数Complex Number x 2 − 2 x 2 0 ⇒ x 1 i x^2-2x20\Rightarrow x1\pm i x2−2x20⇒x1i 代数表达&#xff1a; z a b i , R e ( z ) a , I m ( z ) b zabi,\mathrm{Re}…

Vue脚手架 生命周期 组件化开发

Vue脚手架 & 生命周期 & 组件化开发 一、今日目标 1.生命周期 生命周期介绍生命周期的四个阶段生命周期钩子声明周期案例 2.综合案例-小黑记账清单 列表渲染添加/删除饼图渲染 3.工程化开发入门 工程化开发和脚手架项目运行流程组件化组件注册 4.综合案例-小兔…

计算机网络之IP篇

来源自小林Coding博客&#xff0c;阅读后部分精简笔记 目录 一、IP 的基本认识 二、DNS 三、ARP 四、DHCP 五、NAT 六、ICMP 七、IGMP 七、ping 的工作原理 ping-----查询报文的使用 traceroute —— 差错报文类型的使用 八、断网了还能 ping 通 127.0.0.1 吗&…

十一、了解分布式计算

1、什么是&#xff08;数据&#xff09;计算&#xff1f; 2、分布式(数据)计算 &#xff08;1&#xff09;概念 顾名思义&#xff0c;分布式计算&#xff0c;即以分布式的形式完成数据的统计&#xff0c;得到需要的结果。 分布式数据计算&#xff0c;顾名思义&#xff0c;就是…

基于PLC的锅炉燃烧控制系统设计 (论文+源码)

1.系统设计 由图3.1可以看出&#xff0c;煤炭进入煤炭输送装置&#xff0c;直接落入缓慢移动的炉排中的燃烧室。对流烟道被烟雾隔离。对流烟道设置有加热表面&#xff0c;例如对流管束。对流管是连接到上部和下部气缸的一束管。管道中的水吸收烟道中的热量并加热。在上鼓中加热…

VINS-MONO代码解读5----vins_estimator(marginalization部分)

文章目录 0. 前言1.1 Marginalization Pipiline 1. marg factor构建1.1 变量及维度理解1.2 IMUFactor1.3 ProjectionTdFactor(ProjectionFactor)1.4 MarginalizationFactor( e p e_p ep​推导更新&#xff0c;FEJ解决的问题)1.4.1 先验残差的更新1.4.2 先验Jacobian的更新 2. R…

Java网络通信-第21章

Java网络通信-第21章 1.网络程序设计基础 网络程序设计基础涵盖了许多方面&#xff0c;包括网络协议、Web开发、数据库连接、安全性等。 1.1局域网与互联网 局域网&#xff08;LAN&#xff09;与互联网&#xff08;Internet&#xff09;是两个不同的概念&#xff0c;它们分…

Redis Reactor事件驱动模型源码

前置学习&#xff1a;Redis server启动源码-CSDN博客 Redis采用单线程Reactor模型 三个关键角色&#xff0c;即 reactor、acceptor、handler 三类处理事件&#xff0c;即连接事件、写事件、读事件。 建立连接&#xff08;Acceptor&#xff09;、监听accept、read、write事件…

测试命题 cuda kernel 和 cudaMemcpy 是异步执行

前置命题&#xff0c;保序的命题&#xff1a; 同一个任意的stream中的gpu操作&#xff08;memcpy和kernel&#xff09;&#xff0c;在gpu内部都是严格保序的&#xff0c;即&#xff0c;前一个gpu任务结束后才会执行下一个任务。 测试两个命题&#xff1a; 1&#xff0c;cuda …

python画动漫形象(魔法少女小圆晓美焰,super beautiful)

1.源代码 import turtle as te import time WriteStep 15 # 贝塞尔函数的取样次数 Speed 5 Width 600 # 界面宽度 Height 500 # 界面高度 Xh 0 # 记录前一个贝塞尔函数的手柄 Yh 0 def Bezier(p1, p2, t): # 一阶贝塞尔函数 return p1 * (1 - t) p2 * t def Bezier_2(x1…

JVM 性能调优及监控诊断工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解

目录 一. 前言 二. jps&#xff08;Java Virtual Machine Process Status Tool&#xff09; 三. jstack 四. jmap&#xff08;Memory Map&#xff09;和 jhat&#xff08;Java Heap Analysis Tool&#xff09; 五. jstat&#xff08;JVM统计监测工具&#xff09; 六. hpro…

MySQL系列(一):索引篇

为什么是B树&#xff1f; 我们推导下&#xff0c;首先看下用哈希表做索引&#xff0c;是否可以满足需求。如果我们用哈希建了索引&#xff0c;那么对于如下这种SQL&#xff0c;通过哈希&#xff0c;可以快速检索出数据&#xff1a; select * from t_user_info where id1;但是这…