LlamaIndex 一 简单文档查询

前言

在学习LangChain的时候,我接触到了LlamaIndex。它犹如我在开发vue时用到的axios,主要负责数据打理。别问我为什么打这个比方,前端老狗,重走AI路,闭关一年能否学的妥当?

LlamaIndex 是一个用于 LLM 应用程序的数据框架,用于注入,结构化,并访问私有或特定领域数据。LLM(各种大模型)基于全网公开数据,向我们提供了基于自然语言交互的接口能力。但是,当我们在开发一些AI应用时,需要基于私有或特定数据来增强LLM的能力。LlamaIndex擅长将散落于各种数据库、各种文档的知识,与LLM结合,为AI应用提供定制性的ARG能力。如下图:

image.png

左边是它支持的大模型,右边是数据的来源,可以是数据库、各类文档和原有各种APIS。当我们在帮助大型企业或机构开发其私有专家知识库时,LlamaIndex帮我们摆平这些纷繁复杂的数据。

之前帮一位年营业额几个亿的朋友,开发公司内部知识库系统时,看到的数据来源,犹如n年没打扫的房间一样, 乱的要死,如果你在AI应用开发时,也遭遇了这样的感受,就先停下来学习LlamaIndex吧,它为我们建立了数据孤岛,也就是图中的Data Silos。LlamaIndex帮助我们在大模型和私有数据间搭建了沟通的桥梁。

LlamaIndex的功能模块

image.png

LlamaIndex为我们提供了如上图的五大功能模块,我们一一来解析。

  • Data Connectors

它帮助应用程序注入已有的数据,从字面意义也好理解,帮助程序连接各种数据,专治各种数据源、不同格式(数据库、API、…、SQL),Data Connectors都提供了相应的接口。

  • Data Indexes

该模块帮助我们将数据转换成大模型更好处理的数据格式。下图列出了四种,其中包括我们在使用OpenAI的Embedding接口时,经常使用的向量数据,并存到Chromadb中。在后面的例子中,我们会一一介绍。

image.png

  • Engines

引擎提供了我们自然语言访问数据的模块和接口。比如,查询引擎Query,具有强大的查询接口,能够帮助我们构建基于知识的输出。聊天引擎Chat,是一个对话的接口,能够具有沟通能力,具有记忆、聊天历史等功能

  • Application Integrations

如下图,此模块可以方便的将LlamaIndex与AI应用框架结合。目前,用的比较多的是LangChainLangChainLlamaIndex一起联手,打造私有专家知识库AI智能系统,很快很强大。image.png

  • Data Agent

第一个例子

让我们基于官方文档Starter Tutorial - LlamaIndex 🦙 0.9.13使用一下LlamaIndex,这里我们用的是colab环境下的python note book。

  • 安装llama-index
css复制代码!pip install -q llama-index
  • 数据集
bash复制代码!mkdir data
!wget https://raw.githubusercontent.com/jerryjliu/llama_index/main/examples/paul_graham_essay/data/paul_graham_essay.txt -O data/paul_graham_essay.txt

创建data文件夹,并使用wget下载paul_graham_essay.txt文件,保存到data目录下。

  • 引入OpenAI,并设置OPENAI_API_KEY环境变量
lua复制代码import os 
os.environ['OPENAI_API_KEY'] = 'your valid openai api key'

image.png

  • 读取文件,并转化为向量索引
ini复制代码from llama_index import VectorStoreIndex, SimpleDirectoryReader 
documents = SimpleDirectoryReader('data').load_data() 
index = VectorStoreIndex.from_documents(documents)

向量存储索引构建过程中,默认会使用到OpenAI。

  • 构建查询索引
ini复制代码query_engine = index.as_query_engine() 
response = query_engine.query("Who is the author?")
print(response)
response2 = query_engine.query("Introduce me Paul Graham") print(response2)

这轮的LlamaIndex学习,更加系统。LlamaIndex返回的索引对象,可以创建查询引擎,我们向该引擎的查询,将会由大模型和大模型需要的索引数据一起,得到答案。

image.png

总结

  • LlamaIndex搭建了大模型与私有数据间的沟通桥梁
  • Query Engine模块,LlamaIndex为大模型提供了其需要的数据格式, Data Index 和 查询接口,对打造知识库RAG应用,非常好用。

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

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

相关文章

前端项目打包、部署的基础 (vue)

详细请看B站视频 BV19n4y1d7Gr 《禹神:前端项目部署指南,前端项目打包上线》,本博客为自用视频笔记。 目录 项目打包vue打包打包前分析项目请求 本地服务器部署问题 & 解决问题1:刷新页面404问题问题2:ajax请求废…

【人工智能】第六部分:ChatGPT的进一步发展和研究方向

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

秀肌肉-海外短剧系统的案例展示

多语种可以选择,分销功能,多种海外支付方式,多种登录模式可供选择,总之你想到的我们都做了,你没想到的我们也都做了

Partially Spoofed Audio Detection论文介绍(ICASSP 2024)

An Efficient Temporary Deepfake Location Approach Based Embeddings for Partially Spoofed Audio Detection 论文翻译名:一种基于部分欺骗音频检测的基于临时深度伪造位置方法的高效嵌入 摘要: 部分伪造音频检测是一项具有挑战性的任务&#xff0…

NSSCTF-Web题目6

目录 [NISACTF 2022]checkin 1、题目 2、知识点 3、思路 [NISACTF 2022]babyupload 1、题目 2、知识点 3、思路 [SWPUCTF 2022 新生赛]1z_unserialize 1、题目 2、知识点 3、思路 [NISACTF 2022]checkin 1、题目 2、知识点 010编辑器的使用、url编码 3、思路 打…

基于NANO 9K 开发板加载PICORV32软核,并建立交叉编译环境

目录 0. 环境准备 1. 安装交叉编译器 2. 理解makefile工作机理 3. 熟悉示例程序的代码结构,理解软核代码的底层驱动原理 4. 熟悉烧录环节的工作机理, 建立下载环境 5. 编写例子blink, printf等, 加载运行 6. 后续任务 0.…

2024年华为OD机试真题-多段线数据压缩-C++-OD统一考试(C卷D卷)

2024年OD统一考试(D卷)完整题库:华为OD机试2024年最新题库(Python、JAVA、C++合集)​ 题目描述: 下图中,每个方块代表一个像素,每个像素用其行号和列号表示。 为简化处理,多段线的走向只能是水平、竖直、斜向45度。 上图中的多段线可以用下面的坐标串表示:(2, 8), (3…

Modbus TCP转CanOpen网关携手FANUC机器人助力新能源汽车

Modbus TCP转CanOpen网关与FANUC机器手臂的现场应用可以实现FANUC机器手臂与其他设备之间的数据交换和通信。CANopen是一种常见的网络协议,用于处理机器和设备之间的通信,并广泛应用于自动化领域。而Modbus TCP是一种基于TCP/IP协议的通信协议&#xff0…

智慧互联网医院系统开发指南:从源码到在线问诊APP

近期,互联网医院系统的热度非常高,很多人跟小编提问如何开发,今天小编将从零开始为大家详解互联网医院系统源码,以及在线问诊APP开发技术。 一、需求分析与系统设计 1.1 需求分析 用户管理 预约挂号 在线问诊 电子病历 药品…

定个小目标之每天刷LeetCode热题(11)

这是道简单题,只想到了暴力解法,就是用集合存储起来,然后找出其中的众数,看了一下题解,发现有多种解法,我觉得Boyer-Moore 投票算法是最优解,看了官方对这个算法的解释,我是这样理解…

手把手教你用Spring Boot搭建AI原生应用

作者 | 文心智能体平台 导读 本文以快速开发一个 AI 原生应用为目的,介绍了 Spring AI 的包括对话模型、提示词模板、Function Calling、结构化输出、图片生成、向量化、向量数据库等全部核心功能,并介绍了检索增强生成的技术。依赖 Spring AI 提供的功能…

进阶之格式化qDebug()输出

创作灵感 刚刚在看qt帮助手册时&#xff0c;无意间在<QtGlobal>中看见了这个函数void qSetMessagePattern(const QString &pattern)&#xff0c;该函数的精华在于&#xff0c;你可以直接重定义qDebug()的输出结果格式。以往打印调试内容&#xff0c;调试内容所在的行…

00-macOS和Linux安装和管理多个Python版本

在 Mac 上安装多个 Python 版本可通过几种不同方法实现。 1 Homebrew 1.1 安装 Homebrew 若安装过&#xff0c;跳过该步。 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 1.2 安装 Python 如安装 Python …

计算机毕业设计 | SSM 校园线上订餐系统 外卖购物网站(附源码)

1&#xff0c; 概述 1.1 项目背景 传统的外卖方式就是打电话预定&#xff0c;然而&#xff0c;在这种方式中&#xff0c;顾客往往通过餐厅散发的传单来获取餐厅的相关信息&#xff0c;通过电话来传达自己的订单信息&#xff0c;餐厅方面通过电话接受订单后&#xff0c;一般通…

纷享销客集成平台(IPaaS)解决方案

针对传统对接方式中的痛点&#xff0c;集成平台提炼了一套成熟的解决方案和配套工具。 痛点&#xff11;&#xff1a;编码工作量大。 每个功能点&#xff0c;和众多的容错分支&#xff0c;都需要逐行编码实现。日志打少了影响问题排查&#xff0c;打多了浪费大量存储。 集成…

Django里的ModelForm组件

ModelForm组件 自动生成HTML标签 自动读取关联数据表单验证 错误提示数据库进行&#xff1a;新建&#xff0c;修改 步骤如下&#xff1a; 创建类 # 在 views.py 文件里# 创建一个类 class AssetModelForm(forms.ModelForm):class Meta:model models.AssetSet #fields [n…

k8s 对外服务之 Ingress(HTTPS/HTTP 代理访问 以及Nginx 进行 BasicAuth )

目录 一 Ingress HTTP 代理访问虚拟主机 &#xff08;一&#xff09;原理 &#xff08;二&#xff09;实验 1&#xff0c;准备 2&#xff0c;创建虚拟主机1资源 3&#xff0c;创建虚拟主机2资源 4&#xff0c;创建ingress资源 5&#xff0c;查看相关参数 6&#xff0…

【文末附gpt升级秘笈】埃隆·马斯克芯片调配策略对特斯拉股价的影响分析

埃隆马斯克芯片调配策略对特斯拉股价的影响分析 一、引言 在现代商业环境中&#xff0c;企业间的资源调配与策略布局往往对其股价产生深远影响。据外媒CNBC报道&#xff0c;埃隆马斯克在芯片资源分配上的决策引起了业界的广泛关注。他秘密要求英伟达将原本预留给特斯拉的高端…

如何为律师制作专业的商务名片?含电子名片二维码

律师关注细节&#xff0c;律师名片也不例外。它们不仅仅是身份的象征&#xff0c;更是律师专业形象的代表&#xff0c;传递专业知识和信任。今天就来和我们一起来看看制作律师商务名片的注意事项&#xff0c;以及如何制作商务名片上的电子名片二维码&#xff1f; 一、名片的主…

【Text2SQL】评估 LLM 的 Text2SQL 能力

论文&#xff1a;Evaluating the Text-to-SQL Capabilities of Large Language Models ⭐⭐⭐⭐ arXiv:2204.00498 一、论文速读 本论文尝试了多种 prompt 结构&#xff0c;并且评估了他们在 Codex 和 GPT-3 上的表现。下面介绍这些 prompt 结构&#xff1a; 二、不同的 prom…