LlamaIndex:将个人数据添加到LLM

推荐:使用 NSDT场景编辑器 快速搭建3D应用场景

LlamaIndex是基于大型语言模型(LLM)的应用程序的数据框架。像 GPT-4 这样的 LLM 是在大量公共数据集上预先训练的,允许开箱即用的令人难以置信的自然语言处理能力。但是,如果无法访问您自己的私人数据,它们的效用会受到限制。

LlamaIndex 允许您通过灵活的数据连接器从 API、数据库、PDF 等中提取数据。然后,LlamaIndex 允许通过查询引擎、聊天界面和 LLM 支持的数据代理对数据进行自然语言查询和对话。它使您的LLM能够大规模访问和解释私有数据,而无需在较新的数据上重新训练模型。

无论您是寻找一种以自然语言查询数据的简单方法的初学者,还是需要深度自定义的高级用户,LlamaIndex 都能提供这些工具。高级 API 允许仅使用五行代码即可入门,而较低级别的 API 允许完全控制数据摄取、索引、检索等。

LlamaIndex指数如何运作?

LlamaIndex使用检索增强生成(RAG)系统,该系统将大型语言模型与私有知识库相结合。它通常由两个阶段组成:索引阶段和查询阶段。

来自高级概念的图像

索引阶段

LlamaIndex将在索引阶段有效地将私有数据索引为矢量索引。此步骤有助于创建特定于您的域的可搜索知识库。您可以输入文本文档、数据库记录、知识图谱和其他数据类型。

从本质上讲,索引将数据转换为捕获其语义含义的数字向量或嵌入。它可以跨内容进行快速相似性搜索。

查询阶段

在查询阶段,RAG 管道会根据用户的查询搜索最相关的信息。然后将此信息与查询一起提供给LLM,以创建准确的响应。

此过程允许LLM访问其初始培训中可能未包含的当前和更新信息。

此阶段的主要挑战是对潜在的多个知识库进行检索、组织和推理。

设置LlamaIndex索引

在我们深入研究 LlamaIndex 教程和项目之前,我们必须安装 Python 包并设置 API。

我们可以简单地使用 pip 安装 LlamaIndex。

默认情况下,LlamaIndex使用OpenAI GPT-3 text-davinci-003模型。若要使用此模型,必须具有设置。您可以通过登录OpenAI的新API令牌创建一个免费帐户并获取API密钥。OPENAI_API_KEY

此外,请确保您已安装该软件包。openai

使用LlamaIndex将个人数据添加到LLM

在本节中,我们将学习使用LlamaIndex来创建简历阅读器。您可以通过转到LinkedIn个人资料页面,单击“更多”,然后单击“保存到PDF”来下载简历。

请注意,我们使用 DataCamp 工作区来运行 Python 代码。可以在“LlamaIndex:将个人数据添加到LLM”工作区中访问所有相关代码和输出。

在运行任何内容之前,我们必须安装 、 和 。我们正在安装,以便我们可以读取和转换PDF文件。llama-indexopenaipypdfpypdf

我们有一个名为“Private-Data”的目录,只包含一个PDF文件。我们将使用 来读取它,然后使用 .SimpleDirectoryReaderTreeIndex

为数据编制索引后,可以使用 开始提问。此功能使您能够询问有关文档中特定信息的问题,并在 OpenAI 模型的帮助下收到相应的响应。as_query_engine()GPT-3 text-davinci-003

注意:您可以在DataCamp Workspace中设置OpenAI API,方法是按照使用GPT-3.5和GPT-4通过Python中的OpenAI API教程进行操作。

正如我们所看到的,LLM模型已经准确地响应了查询。它搜索了索引并找到了相关信息。

我们可以进一步询问认证。LlamaIndex似乎已经对候选人有了完整的了解,这对于寻求特定个人的公司来说是有利的。

response = query_engine.query("What is the name of certification that Abid received?")print(response)

创建索引是一个耗时的过程。我们可以通过保存上下文来避免重新创建索引。默认情况下,以下命令会将索引存储保存在目录中。./storage

new_index.storage_context.persist() OpenAI

创建索引

完成后,我们可以快速加载存储上下文并创建索引。

为了验证它是否正常运行,我们将向查询引擎询问简历中的问题。看来我们已经成功加载了上下文。

聊天机器人

除了问答,我们还可以使用LlamaIndex创建一个个人聊天机器人。我们只需要用函数初始化索引。as_chat_engine()

我们将问一个简单的问题。

在不提供额外背景的情况下,我们将提出后续问题。

In 2021, Abid worked as a Data Science Consultant for Guidepoint, a Writer for Towards Data Science and Towards AI, a Technical Writer for Machine Learning Mastery, an Ambassador for Deepnote, and a Technical Writer for Start It Up.

很明显,聊天引擎运行完美。

构建语言应用程序后,时间轴上的下一步是了解在云中使用大型语言模型 (LLM) 与在本地运行它们的优缺点。这将帮助您确定哪种方法最适合您的需求。

使用 LlamaIndex 构建 Wiki 文本到语音

我们的下一个项目涉及开发一个应用程序,该应用程序可以响应来自维基百科的问题并将其转换为语音。

代码源和其他信息可在以下 DataCamp 工作区中找到。

网页抓取维基百科页面

首先,我们将从意大利 - 维基百科网页中抓取数据并将其保存为文件夹中的文件。italy_text.txtdata

意大利文本导入

加载数据并构建索引

接下来,我们需要安装必要的软件包。该软件包允许我们使用 API 轻松地将文本转换为语音。elevenlabs

通过使用,我们将加载数据并使用 将 TXT 文件转换为矢量存储。SimpleDirectoryReaderVectorStoreIndex

查询

我们的计划是询问有关该国的一般问题,并收到LLM的答复。query_engine

提示和输出

文本转语音

之后,我们将使用该模块访问 ElevenLabsTTS api。您需要提供 ElevenLabs API 密钥才能启动音频生成功能。您可以在ElevenLabs网站上免费获得API密钥。llama_index.tts

我们将向函数添加响应以生成自然语音。要收听音频,我们将使用 的函数。generate_audioIPython.displayAudio

音频输出

这是一个简单的例子。您可以使用多个模块来创建助手(如 Siri),通过解释您的私人数据来回答您的问题。有关更多信息,请参阅骆驼索引文档。

除了LlamaIndex之外,LangChain还允许您构建基于LLM的应用程序。此外,您可以阅读 LangChain 数据工程和数据应用简介,了解您可以使用 LangChain 做什么的概述,包括 LangChain 解决的问题和数据用例示例。

LlamaIndex索引用例

LlamaIndex提供了一个完整的工具包来构建基于语言的应用程序。最重要的是,您可以使用Llama Hub的各种数据加载器和代理工具来开发具有多种功能的复杂应用程序。

您可以使用一个或多个插件数据加载器将自定义数据源连接到LLM。

来自骆驼中心的数据加载器

您还可以使用代理工具集成第三方工具和 API。

来自骆驼中心的代理工具

简而言之,您可以使用LlamaIndex来构建:

  • 文档问答
  • 聊天机器人
  • 代理
  • 结构化数据
  • 全栈 Web 应用程序
  • 私人设置

要详细了解这些用例,请前往 LlamaIndex 文档

结论

LlamaIndex 提供了一个强大的工具包,用于构建检索增强生成系统,该系统将大型语言模型的优势与自定义知识库相结合。它支持创建特定于域的数据的索引存储,并在推理过程中利用它来为LLM提供相关上下文以生成高质量的响应。

在本教程中,我们了解了 LlamaIndex 及其工作原理。此外,我们构建了一个简历阅读器和文本到语音转换项目,只有几行 Python 代码。使用 LlamaIndex 创建 LLM 应用程序很简单,它提供了一个庞大的插件库、数据加载器和代理。

要成为一名专业的LLM开发人员,下一个自然步骤是注册Master Large Language Models Concepts课程。本课程将使您全面了解LLM,包括其应用,培训方法,道德考虑和最新研究。

原文链接:LlamaIndex:将个人数据添加到LLM (mvrlink.com)

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

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

相关文章

HTML的段落中怎么样显示出标签要使用的尖括号<>?

很简单&#xff1a; 符号 < 用 < 替代&#xff1b; 符号 > 用 > 替代。 示例代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>HTML中怎样打出尖括号</title> </head> <b…

AP3266 大功率同步降压恒流芯片 双路并用大电流LED车灯驱动线路 过EMC

产品描述 AP3266 是高效率、外围简单、内置功率管的同步降压恒流芯片&#xff0c;适用于4-40V输入的降压LED恒流驱动芯片。输出最大功率可达 40W&#xff0c;最大电流3.6A。AP3266 可通过调节 OVP 端口的分压电阻&#xff0c;设定输出空载电压 保护&#xff0c;避免高压 空载上…

【数据库事务日志碎片原理分析与方案】-深入解析篇.pdf

日志增长与 VLF 文件的个数 通过上面的相关内容的介绍&#xff0c;我们已经知道了日志文件自动的增长会到了一些问 题&#xff0c;而事实确实如此&#xff0c;下面&#xff0c;我们就来更加清楚的看看这些问题。 很显然&#xff0c;我们不希望日志文件任意的增长&#xff0c;…

外汇交易技巧分享:利用MT4交易平台进行精准的外汇技术分析

在外汇交易市场中&#xff0c;技术分析是一种重要的决策工具&#xff0c;能够帮助交易者预测价格走势和制定交易策略。而MT4交易平台作为一种功能强大、广泛应用的交易软件&#xff0c;为交易者提供了丰富的技术分析工具和功能。本文将与大家分享几个利用MT4交易平台(可在mtw.s…

Revit SDK 介绍:CreateAirHandler 创建户式风管机

前言 这个例子介绍如何通过 API 创建一个户式风管机族的内容&#xff0c;包含几何和接头。 内容 效果 核心逻辑 必须打开机械设备的族模板创建几何实体来表示风管机创建风机的接头 创建几何实体来表示风管机 例子中创建了多个拉伸&#xff0c;下面仅截取一段代码&#xff…

vue2 vuex

一、Vuex 概述 Vuex 是一个 Vue 的 状态管理工具&#xff0c;状态就是数据。 大白话&#xff1a;Vuex 是一个插件&#xff0c;可以帮我们管理 Vue 通用的数据 (多组件共享的数据)。 使用场景 某个状态 在 很多个组件 来使用 (个人信息) 多个组件 共同维护 一份数据 (购物车) …

虚函数、纯虚函数、多态

一.虚函数 在基类的函数前加上virtual关键字&#xff0c;在派生类中重写该函数&#xff0c;运行时将会根据所指对象的实际类型来调用相应的函数&#xff0c;如果对象类型是派生类&#xff0c;就调用派生类的函数&#xff0c;如果对象类型是基类&#xff0c;就调用基类的函数。 …

蓝桥杯打卡Day5

文章目录 日志排序重复者 一、日志排序IO链接 本题思路:本题就是根据就是排序的知识点&#xff0c;在sort内部可以使用仿函数来改变此时排序规则。 #include <bits/stdc.h>const int N10010; int n; std::string logs[N];int main() {std::ios::sync_with_stdio(false)…

java网络编程,套接字socket

目录 一 网络概述 二 网络的类型分类 三 网络体系结构 四 网络通信协议概述 五 网络通信协议种类 六 Socket简介 七 Socket路径 八 java网络编程三要素 九 基于UDP协议的Socket编程 十 基于TCP协议的Socket编程 十一 基于TCP协议和UDP的区别 一 网络概述 多台相互连…

Docker 的常用命令

0 基本命令 概述 [root192 home]# docker --helpUsage: docker [OPTIONS] COMMANDA self-sufficient runtime for containersOptions:--config string Location of client configfiles (default "/root/.docker")-c, --context string Name of the context…

【ES】笔记-Class类剖析

Class Class介绍与初体验ES5 通过构造函数实例化对象ES6 通过Class中的constructor实列化对象 Class 静态成员实例对象与函数对象的属性不相通实例对象与函数对象原型上的属性是相通的Class中对于static 标注的对象和方法不属于实列对象&#xff0c;属于类。 ES5构造函数继承Cl…

【Linux】环境变量

环境变量 一、引子echo $NAME [NAME:环境变量名] 二、基本概念概念常见的环境变量PATH : 指定命令的搜索路径测试HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的家目录)SHELL : 当前Shell,它的值通常是/bin/bash。 和环境变量相关的命令echo -- 显示某个环境变…

[html]当网站搭建、维护的时候,你会放个什么界面?

效果图&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>网站建设中</title><style>/* 基础样式 */body, html {margin: 0;padding: 0;height: 100%;font-family: Arial, sa…

Stable Diffusion stable-diffusion-webui ControlNet Lora

Stable Diffusion Stable Diffusion用来文字生成图片&#xff0c;ControlNet就是用来控制构图的&#xff0c;LoRA就是用来控制风格的 。 stable-diffusion-webui 国内加速官网&#xff1a; mirrors / AUTOMATIC1111 / stable-diffusion-webui GitCode 安装参考&#xff1a…

OpenCV(三十一):形态学操作

​​​​​​1.形态学操作 OpenCV 提供了丰富的函数来进行形态学操作&#xff0c;包括腐蚀、膨胀、开运算、闭运算等。下面介绍一些常用的 OpenCV 形态学操作函数&#xff1a; 腐蚀操作&#xff08;Erosion&#xff09;&#xff1a; erode(src, dst, kernel, anchor, iteration…

Wireshark技巧[监听串口包]

监听串口包 本文摘录于&#xff1a;https://blog.csdn.net/qq_20405005/article/details/79652927只是做学习备份之用&#xff0c;绝无抄袭之意&#xff0c;有疑惑请联系本人&#xff01; 这里要保证安装了USBpcap: 打开USBpcap后一半都要输入过滤条件,否则USB太多数据了,比如…

PHP实现微信小程序状态检测(违规、暂停服务、维护中、正在修复)

实现原理 进入那些状态不正常的小程序会被重定向至一个Url&#xff0c;使用抓包软件抓取这个Url&#xff0c;剔除不必要参数&#xff0c;使用cURl函数请求网页获得HTML内容&#xff0c;根据内容解析出当前APPID的小程序的状态。 代码 <?php// 编码header(Content-type:ap…

正弦信号的平均功率和峰值电压计算举例

正弦信号的平均功率和峰值电压计算举例 一、问题 假设加载在纯电阻为R1Ω&#xff0c;频率为50Hz和60Hz的正弦信号的平均功率分别为0.5W和2W,请求解这两个信号的峰值电压 U p 1 U_{p1} Up1​和 U p 2 U_{p2} Up2​。 二、解答&#xff1a; 根据欧姆定律可知&#xff1a;对于…

docker镜像 容器 仓库

docker镜像 Docker 运行容器前需要本地存在对应的镜像&#xff0c;如果本地不存在该镜像&#xff0c;Docker会从镜像仓库下载该镜像。 获取镜像 Docker Hub 上有大量的高质量的镜像可以用&#xff0c;这里我们就说一下怎么获取这些镜像。 从 Docker 镜像仓库获取镜像的命令…

2023-9-8 求组合数(三)

题目链接&#xff1a;求组合数 IV #include <iostream> #include <algorithm>using namespace std;const int N 5010;int primes[N], cnt; bool st[N]; // 每个质数的次数 int sum[N];void get_primes(int n) {for(int i 2; i < n; i){if(!st[i]) primes[cnt]…