LlamaIndex 四 数据连接器

news2025/1/12 18:16:08

前言

我们通过各项配置,理解了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_loader

MarkdownReader = 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.coloradmin.cn/o/1811037.html

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

相关文章

AI绘画Stable Diffusion必看:如何生成人物的全身照实战教程!

大家好,我是画画的小强 在小伙伴们私下留言中,关于如何实现人物的全身照一直有人咨询,看来这个问题还是困惑着不少小伙伴,今天我们就这个问题详细讨论一下。 一. 宽高比参数设置 在讨论如何生成图片的全身照之前,我…

关于用宽带(拨号)连接VPN无法上网,但是wifi或者热点就可以的问题

参考链接:https://zhuanlan.zhihu.com/p/580929250https://zhuanlan.zhihu.com/p/580929250 https://blog.csdn.net/Yaoyao2024/article/details/132245249文章浏览阅读10w次,点赞161次,收藏515次。很多同学在学习访问学校提供的资源时或者一…

等保一体机案例 | 黑龙江某事业单位档案管理系统借助捷云过二级等保

黑龙江某事业单位,聚焦产业发展的应用技术研究,兼顾重大技术应用的基础研究,满足广东省经济社会发展需要。 由于信创要求,也为了满足《关于加强国家电子政务工程建设项目信息安全风险评估工作的通知》(发 改高技〔2008…

[图解]企业应用架构模式2024新译本讲解13-服务层1

1 00:00:00,150 --> 00:00:05,030 接下来我们来看服务层模式 2 00:00:06,070 --> 00:00:11,740 这也是领域逻辑类型的最后一个模式 3 00:00:13,700 --> 00:00:17,110 我们前面实际上已经见过了,事务脚本 4 00:00:17,240 --> 00:00:19,900 的时候&…

citys

城市边界电子围栏 初始化摄像头、灯光等 let renderer, scene, camera, stats, gui, texture;renderer new THREE.WebGLRenderer({logarithmicDepthBuffer: true,});renderer.setPixelRatio(window.devicePixelRatio);renderer.setSize(window.innerWidth, window.innerHeigh…

如何实现单例模式及不同实现方法分析-设计模式

这是 一道面试常考题:(经常会在面试中让手写一下) 什么是单例模式 【问什么是单例模式时,不要答非所问,给出单例模式有两种类型之类的回答,要围绕单例模式的定义去展开。】 单例模式是指在内存中只会创建…

一颗万能的PD协议芯片,能芯Type-C PD协议芯片“ECP5705”, 它是如何实现PD直流风扇应用呢?

文章目录 文章目录 前言 一、PD风扇方案介绍 二、芯片介绍 三、PD风扇-供电方式 四、能芯科技 PD 协议芯片ECP5705-应用场景 总结 前言 随着USB Type-C接口的普及和PD取电芯片的出现,使得小型家电和电动工具可以通过统一的USB Type-C接口进行充电,极大地…

台灯学生用哪个牌子最好?学生台灯十大名牌排行榜分享

近年来,我们注意到儿童近视的现象呈现出增多且趋于低龄化的趋势。这一变化,部分原因可以归咎于孩子们越来越多地使用电子产品,另一部分则与他们面临的学业压力增加有关。鉴于此,家长们在挑选儿童学习用品时变得格外谨慎&#xff0…

js实现简单计算器词法解析语法解析解释器,带可视化界面

代码 Lexer是词法解析器 Parser是语法解析器 Interpreter 是ast解释器 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&q…

【启明智显芯片应用】Model3C芯片4.3寸拼图机应用方案

数据显示&#xff0c;618前期&#xff0c;早教启智、智能玩具、科学启蒙、数字阅读类产品销量增长迅猛。当下&#xff0c;90后新生代父母对于孩子的科学启蒙教育愈发重视&#xff0c;他们在给孩子选择学习产品时&#xff0c;越来越倾向于选择寓教于乐的益智类产品&#xff0c;而…

神奇!你见过生成Prompt的Prompt?

目录 先上干货 这个Prompt是怎么来的 道路是曲折的 总结 PART/ 01 先上干货 你怎么会想到这些场景呢&#xff0c;比如健身计划、英语学习、旅游规划等等&#xff0c;其实挺不好意思的&#xff0c;大家被我骗了&#xff0c;这些都是我使用一个Prompt解决的。 对&#xf…

使用OpenLLM在AMD GPU上的分步指南

Step-by-Step Guide to Use OpenLLM on AMD GPUs — ROCm Blogs 引言 OpenLLM是一个开源平台&#xff0c;旨在促进大型语言模型&#xff08;LLMs&#xff09;的部署和使用&#xff0c;支持多种模型&#xff0c;适应不同的应用&#xff0c;无论是在云环境还是本地环境中。在本教…

何为屎山代码?

在编程界&#xff0c;有一种代码被称为"屎山代码"。这并非指某种编程语言或方法&#xff0c;而是对那些庞大而复杂的项目的一种形象称呼。屎山代码&#xff0c;也被称为"祖传代码"&#xff0c;是历史遗留问题&#xff0c;是前人留给我们的"宝藏"…

丽水职业技术学院:以太彩光网络筑基教育信息化标杆之路

丽水职业技术学院作为教育信息化的先行者,是浙江省首批“浙江省高职高水平学校”、“浙江省教育信息化试点校单位”,也是“浙江省数字校园示范校”的一员。学院紧握“十四五”规划契机,全面加速数字化转型,旨在通过基础网络的革新、数字化教学的深化、信息服务的优化、学生管理…

wma和mp3哪个音质好?让我告诉你哪个更胜一筹

在数字音频领域&#xff0c;WMA和MP3是两种常见的音频格式&#xff0c;它们在网络上的音频传输和储存中都扮演着重要的角色。然而&#xff0c;许多人可能会对这两者之间的音质差异产生疑问&#xff0c;想知道哪一个更适合他们的需求。wma和mp3哪个音质好&#xff1f;在本文中&a…

Transformer介绍

Transformer的诞生 2018年Google发出一篇论文《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》, BERT模型横空出世, 并横扫NLP领域11项任务的最佳成绩&#xff01; 而在BERT中发挥重要作用的结构就是Transformer, 之后又相继出现XLNET&a…

如何制作MapBox个性化地图

我们在《如何在QGIS中加载MapBox图源》一文中&#xff0c;为你分享了在QGIS中加载MapBox的方法。 现在为你分享如何制作MapBox个性化地图的方法&#xff0c;如果你需要最新版本的QGIS及高清图源&#xff0c;请在文末查看获取软件安装包的方法。 新建地图样式 进入Mapbox Stu…

[2024-06]-[大模型]-[Ollama]- WebUI

主要涉及要部署的前端webui是来源于:https://github.com/open-webui/open-webui 正常就使用: docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-web…

MySQL—多表查询—练习(1)

一、引言 上几篇关于多表查询的基本几个部分全部学习完了。 多表查询的基本类型的查询包括以下&#xff1a; 1、内连接&#xff08;隐式内连接、显示内连接&#xff09;&#xff1a;... [INNER] JOIN ... ON 条件; &#xff09; 2、外连接&#xff08;左外连接、右外连接&…

中国蚁剑 安装教程 2024年5月

2024/5/11 中国蚁剑 安装教程 一、下载中国蚁剑的加载器和核心源码&#xff08;两个都要用到&#xff09; github官方下载地址&#xff1a;https://github.com/AntSwordProject/ 参考文档&#xff1a;antSword/README_CN.md at master AntSwordProject/antSword GitHub 核…