RAG 工具和框架介绍: Haystack、 LangChain 和 LlamaIndex
Haystack、 LangChain 和 LlamaIndex,以及这些工具是如何让我们轻松地构建 RAG 应用程序的?
我们将重点关注以下内容:
- Haystack
- LangChain
- LlamaIndex
增强LLM
那么,为什么会有这些工具存在呢?如你所知,ChatGPT和其他LLM是在某个时间点之前的一组数据上进行训练的。更重要的是,它们无法访问诸如你本地机器上的文档等私密信息。
现实场景:
你有一个20GB大小的PDF文件。你不能简单地将其内容复制粘贴到ChatGPT中并期待它能处理。你甚至无法使用OpenAI API向模型输入20GB的数据,因为存在诸多限制。在这种情况下,我们可以将数据创建为数值表示形式(称为向量嵌入),并将其存储在向量数据库中。然后,基于给定查询,我们从向量数据库中查找相关信息,并将这些信息以及原始查询一起作为上下文提供给模型。
RAG与向量嵌入:
检索增强生成(RAG,Retrieval-Augmented Generation)是一种架构,用于通过利用数据源中的相关信息帮助像GPT-4这样的大型语言模型提供更好的响应,同时降低LLM泄露敏感数据或“幻觉”出不正确或误导性信息的可能性。
向量嵌入(Vector Embeddings) 是数据的数值表示形式。RAG架构将用户查询的嵌入与数据源中存储的嵌入进行比较,以找出相似之处。然后将原始用户提示与知识库中相关的上下文拼接,形成最终的增强型提示。这个增强型提示随后被发送给语言模型。
下图显示了文本是如何通过嵌入模型转换成数字表示的:

你可以阅读更多关于矢量嵌入的内容:
Ref:https://www.gettingstarted.ai/introduction-to-rag-ai-apps-and-frameworks-haystack-langchain-llamaindex/
Link:https://www.cnblogs.com/farwish/p/18133692
RAG 工具和框架介绍: Haystack、 LangChain 和 LlamaIndex的更多相关文章
- fitnesse - 框架介绍
fitnesse - 框架介绍 2017-09-29 目录: 1 fitnesse是什么?2 框架介绍3 与junit.testng比较,fitnesse教其他框架有什么优势 1 fitnesse是什 ...
- [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍
[连载]<C#通讯(串口和网络)框架的设计与实现>- 0.前言 目 录 第一章 通讯框架介绍... 2 1.1 通讯的本质... 2 1 ...
- Selenium自动化测试框架介绍
Selenium自动化测试框架介绍 1.测试架构作用 a.可维护性 b.提高编写脚本效率 c.提高脚本的可读性 2.框架的几大要素: Driver管理,脚本,数据,元素对象,LOG,报告,运行机制,失 ...
- UiAutomator自动化测试框架介绍
UiAutomator自动化测试框架介绍 环境搭建 1 必要条件 1.1 JDK 1.2 SDK(API高于15) 1.3 Eclipse 2 ...
- [翻译]Spring框架参考文档(V4.3.3)-第二章Spring框架介绍 2.1 2.2 翻译--2.3待继续
英文链接:http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/overview.ht ...
- MJExtension框架介绍
MJExtension框架介绍 标签: MJExtension 2015-05-01 08:22 1120人阅读 评论(0) 收藏 举报 分类: Foundation(14) 版权声明:本文为博主 ...
- Xamarin Anroid开发教程之Anroid开发工具及应用介绍
Xamarin Anroid开发教程之Anroid开发工具及应用介绍 Xamarin开发Anroid应用介绍 如今智能手机已经盛行了好几年,而针对这些智能手机的软件开发也变得异常火热.但是在Andro ...
- iOS框架介绍
iOS框架介绍 Cocoa Touch GameKit 实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息 iOS设备之间蓝牙数据传输 从iOS7开始过期 局域网游 ...
- OpenCV框架介绍
OpenCV框架介绍 概述 OpenCV是一个开放源代码的计算机视觉应用平台,由英特尔公司下属研发中心俄罗斯团队发起该项目,开源BSD证书,OpenCV的目标是实现实时计算机视觉,,是一个跨平台的计算 ...
- 单元测试系列:Mock工具Jmockit使用介绍
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6760272.html Mock工具Jm ...
随机推荐
- 【Leetcode】300. 最长递增子序列
题目(链接) 给你一个整数数组nums,找到其中最长严格递增子序列的长度. 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序.例如,[3,6,2,7]是数组[0,3,1 ...
- 替换Spring容器中已经存在的Bean
一.背景 我们在开发的过程中,经常会引入别人写的jar包实现某些功能.而别人的jar包一般都自动注入Spring容器中,假设别人都是通过@Bean或@Component注入的,并且没有加入@Condi ...
- RMI反序列化分析
RMI介绍 RMI全程Remote Method Invocation (远程方法引用),RMI有客户端和服务端,还有一个注册中心,在java中客户端可以通过RMI调用服务端的方法,流程图如下: 服务 ...
- css实现多余文字隐藏,用省略号代替
.txt{ overflow: hidden; //溢出内容隐藏 white-space: nowrap; //强制文本在一行内显示 text-overflow: ellipsis; //当对象内文本 ...
- KingbaseES V8R3 集群运维系列之 -- network_rewind.sh磁盘检测功能详解
案例说明: 在KingbaseES V8R3集群,network_rewind.sh用于当节点数据库服务down时,实现数据库服务的自动恢复功能.在network_rewind.sh执行时,会对数 ...
- KingbaseES V8R6 Deallocate 语句使用说明
用途 DEALLOCATE被用来释放一个之前PREPARE好的SQL语句.如果不显式地释放一个PREPARE语句,那么会话结束时会释放它. prepare语句类似oracle的绑定变量 绑定过程: 1 ...
- MySQL检索和过滤数据
注意 多条SQL语句必须以分号(:)分隔: SQL语句不区分大小写: 在处理SQL语句时,其中所有空格都被忽略: 当选择多个列是,一定要在列名之间加上逗号,但最后一个列名后不加. SELECT语句 检 ...
- #树套树,二维线段树#HDU 4819 Mosaic
题目 多组数据,给定一个\(n*n\)的矩阵(\(n\leq 80,a_{i,j}\leq 10^9\)) 多组询问一个以\((x,y)\)为中心,边长为\(L\)的子矩阵最大值\(mx\)和最小值\ ...
- 深入学习 XML 解析器及 DOM 操作技术
所有主要的浏览器都内置了一个XML解析器,用于访问和操作XML XML 解析器 在访问XML文档之前,必须将其加载到XML DOM对象中 所有现代浏览器都有一个内置的XML解析器,可以将文本转换为XM ...
- 全面指南:技术写作与编辑工具 Markdown、Git 研究工具
技术写作工具 在技术写作领域,"工具"是指技术写作者用于创建.管理和发布高质量技术文档的各种软件和应用程序.这包括文字处理器.桌面出版应用程序.XML 编辑器.内容管理系统等等.一 ...