LlamaIndex 四 数据连接器

前言

我们通过各项配置,理解了LlamaIndex在构建知识库和基于知识库的推荐两个阶段,怎么和业务相结合。本文,我们将开始深入理解LlamaIndex的各个模块。首先,LlamaIndex强大的Data Connector 数据连接器上场。

LlamaIndex擅长和各种类型或格式的数据打交道,并通过DocumentNodes的概念,embedding索引后,交给大模型处理,高精度完成AI知识库或AI助理应用开发。利用私有知识库,增强LLM的检索能力, 即RAG

现在, 让我们来仔细研究Data Connectors数据连接器模块的细节。

Data Connectors

image.png

开始深入之前,我们先来回顾下LlamaIndex构建知识库(Knowledge Base)阶段的架构图。 最左侧的Data Sources部分展示了RAG应用中,各种数据来源。RAG应用多是聊天机器人或搜索的产品形式,入口简单,这就需要LlamaIndex具备整合或自然语言处理各种格式,或各种渠道数据的能力。图中列出了Databases 数据库,Documents 文档,APIs 应用接口。假如是大型企业或组织,这是要整多少数据库,横跨多长时间的文档,散落在多少业务中的API?

LangChain作为LLm开发框架,将RAG这块交给LlamaIndex, 正因为它的专业。当我们开始着手RAG应用时,数据加载是非常重要的一个环节,且LlamaIndex给我们安排了那些科技和狠活…

数据连接器接口

为支持不同数据源和格式的数据加载,LlamaIndex准备了一堆数据接口类,让人好生欢迎

  • Simple Directory Reader
  • Psychic Reader
  • DeepLake Reader
  • Qdrant Reade
  • Discord Reader
  • MongoDB Reader
  • Chroma Reader
  • MyScale Reader
  • Faiss Reader
  • Obsidian Reader
  • Slack Reader
  • Web Page Reader
  • Pinecone Reader
  • Mbox Reader
  • MilvusReader
  • Notion Reader
  • Github Repo Reader
  • Google Docs Reader
  • Database Reader
  • Twitter Reader
  • Weaviate Reader

连接demos

  • 连接网页数据
ini复制代码from llama_index import download_loader #老版本可以直接import SimpleWebPageReader 现在得这么搞SimpleWebPageReader = download_loader("SimpleWebPageReader")loader = SimpleWebPageReader()
documents = loader.load_data(urls=['http://paulgraham.com/worked.html'])

各位,请留意。最新版本的LlamaIndex 基于llamahub来托管,大家可以到Llama Hub来看最新文档。代码中download_loader的意思就是先从llamahub中加载SimpleWebPageReade连接器。

image.png

从打印结果我们可以看到,SimpleWebPageReader接口将网页数据以Document的格式保存。

  • 连接Markdown格式文件
ini复制代码from pathlib import Path
from llama_index import download_loaderMarkdownReader = download_loader("MarkdownReader")loader = MarkdownReader()
documents = loader.load_data(file=Path('./README.md'))

使用了MarkdownReader读取了当前目录下的README.md文件

  • pdf 格式文件
ini复制代码from pathlib import Path 
from llama_index import download_loader 
PDFReader = download_loader("PDFReader") 
loader = PDFReader() 
documents = loader.load_data(file=Path('./article.pdf'))
  • api
ini复制代码import requests
from llama_index import VectorStoreIndex, download_loader
headers = {
}
data = requests.get("https://api.github.com/users/shunwuyu/repos", headers=headers).json()JsonDataReader = download_loader("JsonDataReader")
loader = JsonDataReader()
documents = loader.load_data(data)
index = VectorStoreIndex.from_documents(documents)
index.query("how many repos are there?")

基于github的api获取了json数据并提问。

综合案例

现在就让我们基于Data Connectors的理解,去开发一个针对langchain文档的知识库RAG应用

  • 安装LlamaIndex
css复制代码!pip install -q -U llama-index
  • 设置OPANAI_API_KEY
lua复制代码import os 
os.environ['OPENAI_API_KEY'] = 'your valid openai api key'
  • 下载langchain文件并使用数据接口加载
bash复制代码!git clone https://github.com/sugarforever/wtf-langchain.git

Wft-langchain这个repo,是langchain的开源教程库,里面的文档都是RAG应用的语料来源

ini复制代码from llama_index import SimpleDirectoryReader 
reader = SimpleDirectoryReader( input_dir="./wtf-langchain", required_exts=[".md"], recursive=True ) 
docs = reader.load_data() #加载数据到文档数组

我们使用SimpleDirectoryReader, 读取了刚刚克隆下来的wtf-langchain目录下的所有markdown格式的文件。

  • 对文档构建索引,生成知识库, 并初始化查询引擎
ini复制代码from llama_index import VectorStoreIndex 
index = VectorStoreIndex.from_documents(docs) 
query_engine = index.as_query_engine() 
response = query_engine.query("什么是WTF LangChain?") 
print(response)

image.png

从上图看,我们拿到了准确的答案。

总结

  • 在开发RAG应用时,数据加载是非常重要的一个环节。 Data Connectors 是LlamaIndex的第一个核心模块。
  • 操练一些数据接口,开始干活。

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.2.1 什么是Prompt
    • L2.2.2 Prompt框架应用现状
    • L2.2.3 基于GPTAS的Prompt框架
    • L2.2.4 Prompt框架与Thought
    • L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
    • L2.3.1 流水线工程的概念
    • L2.3.2 流水线工程的优点
    • L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
    • L3.1.1 Agent模型框架的设计理念
    • L3.1.2 Agent模型框架的核心组件
    • L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
    • L3.2.1 MetaGPT的基本概念
    • L3.2.2 MetaGPT的工作原理
    • L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
    • L3.3.1 ChatGLM的特点
    • L3.3.2 ChatGLM的开发环境
    • L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
    • L3.4.1 LLAMA的特点
    • L3.4.2 LLAMA的开发环境
    • L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

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

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

相关文章

聆思CSK6大模型开发板英语评测类开源SDK详解

离线英文评测算法SDK 能力简介 CSK6 大模型开发套件可以对用户通过语音输入的英文单词进行精准识别,并对单词的发音、错读、漏读、多读等方面进行评估,进行音素级的识别,根据用户的发音给出相应的建议和纠正,帮助用户更好地掌握单…

C语言中,定义宏求两个数的最大值\最小值

前言 之前笔试过程中&#xff0c;我自认为使用宏来求得最值这方面已经了解的足够清楚。我一直是使用下面两个宏来做题的。直到我最近闲暇下来&#xff0c;阅读了《嵌入式C语言自我修养》这本书&#xff0c;才发现自己很多情形没有考虑到位。 #define MIN(a,b) ((a)<(b)?(a…

银川岗位外包找邦芒 一站式企业外包解决方案

在当今日益多变和竞争激烈的市场环境中&#xff0c;岗位外包作为一种高效、灵活的用工方式&#xff0c;已逐渐成为企业应对业务波动、降低风险成本的首选策略。银川邦芒人力凭借其丰富的经验和专业的服务&#xff0c;为企业提供了卓越的岗位外包解决方案。 为何选择岗位外包&am…

正大国际期货:如何做恒指期货

要想获得较好的收益&#xff0c;就必须要知道恒指做单的技巧&#xff0c;毕竟掌握了技巧才是最重要的。 第一、下单之前一定看准行情并且顺势操作。何为顺势&#xff1f;就是我们平时说的趋势&#xff0c;只要趋势做对了&#xff0c;在中途可能会有一些起伏&#xff0c;但是最后…

中间件复习之-分布式存储系统

单机存储系统介绍 存储引擎&#xff1a;存储系统的发动机&#xff0c;提供数据的增、删、改、查能力&#xff0c;直接决定存储系统的功能&#xff08;支持怎么样的查询&#xff0c;锁能锁到什么程度&#xff09;和性能&#xff08;增删改查速度&#xff09;。 性能因素 写入方…

计算机网络知识CIDR(无类别域区间路由)

目录 介绍 基本信息 优点与关联 如何计算判定范围&#xff08;你应该是来看这个的&#xff0c;前面是水字数的&#xff09; 省流版 介绍 无类别域间路由&#xff08;Classless Inter-Domain Routing、CIDR&#xff09;是一个用于给用户分配IP地址以及在互联网上有效地路由…

智慧监狱大数据整体解决方案(51页PPT)

方案介绍&#xff1a; 智慧监狱大数据整体解决方案通过集成先进的信息技术和大数据技术&#xff0c;实现对监狱管理的全面升级和智能化改造。该方案不仅提高了监狱管理的安全性和效率&#xff0c;还提升了监狱的智能化水平&#xff0c;为监狱的可持续发展提供了有力支持。 部…

transformers库的模型在加载之后,重新设置device_map=auto

from accelerate import infer_auto_device_map, dispatch_modeldevice_map infer_auto_device_map(model, dtypetorch.bfloat16) model dispatch_model(model, device_mapdevice_map)

「小明赠书活动」第五期“网安三剑客”套系图书《内网渗透技术》《渗透测试技术》《Web应用安全》

大模型风潮已掀起&#xff0c;各大巨头争相入局&#xff0c;从ChatGPT到Sora&#xff0c;全球的AI应用“卷出了花”。然而&#xff0c;网络安全人员在享受AI技术带来的便捷之余&#xff0c;也不得不面对一系列新兴的安全挑战&#xff0c;无法忽视。 ⭐️ 赠书 - 图书简介 人…

C#学习系列之UDP同端口发送与接收

C#学习系列之UDP同端口发送与接收 啰嗦解决方案代码总结 啰嗦 项目中需要同一端口的发送与接收&#xff0c;当时一直都没有在同一个程序中对同一个端口进行发送与接收的尝试。 采用的形式是定义两个UdpClient&#xff0c;对同一UDP端口进行收发与接收。结果导致总有一个线程会…

双标引领:汽车软件安全的ASPICE与ISO21434之道

随着汽车行业的飞速发展&#xff0c;尤其是智能化、网联化趋势的加剧&#xff0c;汽车软件开发的复杂性和安全性需求日益提升。在这样的背景下&#xff0c;ASPICE标准和ISO21434安全标准应运而生&#xff0c;为汽车软件的开发和管理提供了坚实的支撑。 ASPICE&#xff08;Auto…

2024.6.7 刷题总结

2024.6.7 **每日一题** 3038.相同分数的最大操作数目 Ⅰ&#xff0c;该题为简单模拟题&#xff0c;先计算出前两个元素的和&#xff0c;依次往后遍历两个元素&#xff0c;若它们和与之前的相同&#xff0c;则答案&#xff0c;若不同则直接跳出&#xff0c;结束。 134.加油站,该…

【解读】核密度图

def&#xff1a;what 核密度估计&#xff08;Kernel Density Estimation&#xff0c;简称KDE&#xff09;是一种用来估计随机变量概率密度函数的非参数方法 实现&#xff1a;&#xff08;库函数&#xff09;how import seaborn as sns import matplotlib.pyplot as plt# 使用…

Web前端讲师简历:专业技能与教学经验的完美结合

Web前端讲师简历&#xff1a;专业技能与教学经验的完美结合 作为一名资深的Web前端讲师&#xff0c;我致力于将我的专业技能和丰富经验传授给每一位学生&#xff0c;帮助他们在Web前端领域取得卓越成就。以下是我的个人简历&#xff0c;详细介绍了我的教育背景、专业技能、教学…

GaussDB技术解读——GaussDB架构介绍(二)

上篇图文&#xff0c;从GaussDB关键架构目标、GaussDB分布式架构、数据计算路由层&#xff08;Coordinator&#xff09;关键技术方案等三方面对GaussDB架构进行了介绍。本篇将从数据持久化存取层(DataNode)关键技术方案、全局事务管理层&#xff08;GTM&#xff09;关键技术方案…

目前常用的后端技术

在后端开发中&#xff0c;有多种技术和框架可供选择&#xff0c;具体取决于项目的需求、团队的技能和经验&#xff0c;以及组织的架构决策。以下是一些常见的后端开发技术和框架&#xff1a; 1. 编程语言 Java&#xff1a; 广泛使用于企业级应用&#xff0c;有大量的库和框架…

企业内网安全软件分享,有什么内网安全软件

内网安全&#xff1f; 其实就是网络安全的一种。 什么是内网安全软件&#xff1f; 内网安全软件是企业保障内网安全的一种重要工具。 它主要帮助企业实现对网络设备、应用程序、用户行为等方面的监控和管理&#xff0c;以预防和应对各种网络攻击。 这类软件主要用于对内网中…

【程序员科科】2024年最新Python+Vue前后端分离全栈课程,05python数据类型字典

当涉及到需要存储一组数据或项目时&#xff0c;Python中的列表类型就显得非常重要了。列表类型允许我们保存多个值&#xff0c;这些值可以是不同类型的数据&#xff0c;比如整数、浮点数、字符串等。 为什么有这个类型? 列表类型允许我们以一种结构化的方式存储和组织数据&am…

轻兔推荐 —— hoppscotch

via&#xff1a;轻兔推荐 - https://app.lighttools.net/ 简介 hoppscotch是一个开源的http调试客户端&#xff0c;界面简洁&#xff0c;功能完善&#xff0c;原名叫postwomen&#xff0c;明显是要跟postman干的&#xff0c;作为postman的替代品就挺合适 - 功能完善&#xff…

java接口设计需要考虑哪些方面

1.签名 目的&#xff1a;防止数据被篡改 &#xff08;1&#xff09;接口请求方将请求参数、时间戳和密钥拼接成一个字符串。 &#xff08;2&#xff09;使用MD5等hash算法生成签名。 &#xff08;3&#xff09;在请求参数或请求头中增加sign参数传递给API接口。 &#xff08;4&…