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 ...
随机推荐
- YCProgress自定义百分比进度条
目录介绍 1.本库优势亮点 2.使用介绍 2.1 圆环百分比进度条 2.2 直线百分比进度条 2.3 仿杀毒类型百分比进度条 3.注意要点 4.效果展示 5.其他介绍 1.本库优势亮点 圆环百分比进度 ...
- 记录--JavaScript原型和原型链复习笔记
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 原型和原型链 1. 原型 每个JS对象一定对应一个原型对象,并从原型对象继承属性和方法 1.1 __proto__ 对象的__proto_ ...
- 记录--Canvas实现打飞字游戏
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 打开游戏界面,看到一个画面简洁.却又富有挑战性的游戏.屏幕上,有一个白色的矩形框,里面不断下落着各种单词,而我需要迅速地输入这些单词.如果 ...
- PDF的分割与合并
1.进行PDF切割 python代码如下: # 20220521 # 1.选择要分割的文件 # 2.选择要保存的位置,分割为多个文件时,可自动用页码命名 # 3.输入要分割的页码,可以是一个范围1-2 ...
- TorchV的RAG实践分享(三):解析llama_index的数据存储结构和召回策略过程
1.前言 LlamaIndex是一个基于LLM的数据处理框架,在RAG领域非常流行,简单的几行代码就能实现本地的文件的对话功能,对开发者提供了极致的封装,开箱即用. 本文以官方提供的最简单的代理示例为 ...
- Oracle 已存在数据的大表 改 分区表
创建表,插入测试数据 -- Create table create table LXW_TEST ( CDATE DATE, T1 NUMBER, T2 VARCHAR2(2) ) ; insert ...
- 鸿蒙HarmonyOS实战-ArkUI组件(mediaquery)
一.mediaquery 1.概述 媒体查询(mediaquery)它允许根据设备的不同特性(如屏幕大小.屏幕方向.分辨率.颜色深度等)来动态地调整网页的样式和布局. 通过媒体查询,可以为不同的设备定 ...
- GID:旷视提出全方位的检测模型知识蒸馏 | CVPR 2021
论文提出的GID框架能够自动选择可辨别目标用于知识蒸馏,而且综合了feature-based.relation-based和response-based知识,全方位蒸馏,适用于不同的检测框架中.从实验 ...
- 一个可以让你有更多时间摸鱼的WPF控件(一)
前言 我们平时在开发软件的过程中,有这样一类比较常见的功能,它没什么技术含量,开发起来也没有什么成就感,但是你又不得不花大量的时间来处理它,它就是对数据的增删改查.当我们每增加一个需求就需要对应若干个 ...
- 队列(ArrayQueue)
队列是一种 先进先出(First In First Out,FILO) 的种线性数据结构 . 代码是在动态数组二次封装,先阅读底层实现体验更佳 Array.h 点它 代码清单 #ifndef C___ ...