首页 > 其他分享 >DB-GPT:LLM应用的集大成者

DB-GPT:LLM应用的集大成者

时间:2024-07-22 21:30:37浏览次数:8  
标签:RAG 模型 DB Agent LLM GPT

整体架构

架构解读

可以看到,DB-GPT把架构抽象为7层,自下而上分别为:

运行环境:支持本地/云端&单机/分布式等部署方式。顺便一提,RAY是蚂蚁深度参与的一个开源项目,所以对RAY功能的支持应该非常完善。

训练层:由子项目DB-GPT-Hub提供。以LLM为基,包含多种数据集和微调方法的微调框架。

协议层:AWEL(智能体编排语言),专为大模型应用开发设计的智能体工作流表达语言。

模块层:SMMF(多模型管理)、RAG(检索增强生成)、Agent(智能体)。

服务层:包含LLM、API、RAG在内的多个服务部署。

应用层:数据库对话、商业数据分析、知识库对话、表格对话等。

可视化层:输出样式,包含图表、工作流、文本的格式化输出等。

功能特性

一、以RAG为核心的知识库问答

支持多文件格式、支持向量检索和稀疏检索,对海量结构化,非结构化数据做统一向量存储与检索。

二、以Chatdata为核心的数据问答

支持自然语言与Excel、数据库、数仓等多种数据源交互,分析报告,生成可视化图表。

三、统一的多模型管理服务

包括开源、API代理等几十种国内外大语言模型。

四、自动化微调框架

围绕大语言模型、Text2SQL数据集、LoRA/QLoRA/Pturning等微调方法构建的自动化微调轻量框架, 让TextSQL微调像流水线一样方便。

五、多智能体与插件

支持自定义插件执行任务,工作流自编排,原生支持Auto-GPT插件模型。

隐私安全

通过私有化大模型、代理脱敏等多种技术保障数据的隐私安全。

写在后面

万物皆可RAG

不管是知识库问答、表格问答还是数据库对话,都可以把所有数据丢进去当成知识库,以此增强模型的能力。因此,RAG的一些技巧,比如混合检索和召回重排也就可以推广到其他应用上去了。

万物皆可Agent

可以说现有的大模型应用已经离不开Agent,Agent包含的几大核心模块基本已经固定下来,剩下的工作就是如何简化Agent的工作流、自定义工作流编排、Agent执行过程可控等,如本项目中提到的AWEL和langchain-ai的LangGraph项目。

标签:RAG,模型,DB,Agent,LLM,GPT
From: https://www.cnblogs.com/deeplearningmachine/p/18316952

相关文章

  • modbus TCP
    目录1.modbus 1.1分类1.2特点2.modbusTCP2.1组成2.2报文头3.寄存器4.功能码4.1功能码代码4.2寄存器操作5.练习练习一练习二1.modbus Modbus通信协议具有多个变种,其中有支持串口,以太网多个版本,其中最著名的是ModbusRTU、ModbusASCII和ModbusTC......
  • llm大语言模型用于电影问答
    项目:https://github.com/jiangnanboy/movie_llm_agent本项目利用chatglm6b实现一个中文版的简单电影问答功能,目的是探索llmagent与图数据库neo4j进行交互的能力,主要根据用户的意图与neo4j进行交互。Toolsagent使用几个tools与neo4j进行交互:Person_Tool:根据人物(演员)......
  • 利用llm大语言模型提取卡证票据关键信息
    项目:https://github.com/jiangnanboy/Image_KIE_LLM模型:去除背景:U2Netocr:paddleocrKIE:Baichuan2LLM使用main.py在这里,OCR识别的文本和提示语将一起输入到LLM中提取关键信息。结果展示#keyinformationextractioninvoice_ki='单位电话车号证号......
  • [oeasy]python0026_调试程序_pdb3_帮助_help_求助_文档
    调试程序_debug_next_下一步_list_pdb3......
  • C#使用PostgreSQL及其衍生产品GaussDB时(Npgsql.EntityFrameworkCore.PostgreSQL)过程中
      PostgreSQ作为开源免费的数据库,现在正在火热的占据市场,它衍生产品,比如GaussDB在国产化替代中使用比较多,然而它们或多或少存在一个兼容问题,或者说是版本之间的问题,所以这里记录几个在使用过程中碰到的问题,做个笔记,后续有新的问题就再记录。  问题一:0A000:DISCARDstatement......
  • mariadb安装在服务器(Linux)
    在大多数Linux发行版上,您可以使用包管理器来安装MariaDB。以下是几种常见Linux发行版的安装命令:对于基于Debian的系统(如Ubuntu):sudoapt-getupdatesudoapt-getinstallmariadb-serversudosystemctlstartmariadbsudosystemctlenablemariadb对于基于RPM的系统(如Cen......
  • 如何攻克LLM应用的调试?教你本地化部署与使用一款免费的LLM应用工程化平台
    随着LLM应用的不断成熟,特别是在B端企业场景中的逐渐落地,其不再停留在原型与验证阶段,将面临着更高的工程化要求,无论是输出的稳定性、性能、以及成本控制等,都需要实现真正的“生产就绪”;但由于大量的应用基于LangChain、LlamaIndex等框架开发,更多的抽象与封装使得应用难以跟踪......
  • InnoDB的锁
    InnoDB是MySQL中默认的事务型存储引擎,支持ACID事务、行级锁定和外键等特性。InnoDB的锁机制是其支持高并发事务处理的关键技术之一。InnoDB主要使用两种类型的锁:行级锁和表级锁,同时还引入了意向锁来优化锁定策略。行级锁(Row-levelLocks)行级锁是InnoDB特有的锁类型,它允许对数据......
  • 数据库_duckdb_读取csv创建表等案例
    duckdbduckdb读取csv格式文件duckdb连接数据库-创建表duckdb将数据转换为dataframedataframeapplymergegroupby代码示例#!/usr/bin/envpython3#-*-coding:UTF-8-*-#---------------------------importduckdbimportosif__name__=="__main__":......
  • 当我在 MongoDB 上使用 $push 更新数组时避免出现重复值
    我想使用Python将一些值推入数组。也许下次当我更新数组时,它会插入一些存在的值,因此它会得到一些重复的值。我想知道是否有可以避免的重复值。我应该使用db.collection.find()来确定是否应该插入吗?db.graph.insert_one({"user_id":a.url},)forjina.followe......