搜索
首页科技周边人工智能LlamainDEX:基于大语模型(LLM)应用程序的数据框架

LlamaIndex:赋能大型语言模型的数据框架

LlamaIndex是一个基于大型语言模型(LLM)的应用数据框架。像GPT-4这样的LLM预先训练了海量公共数据集,开箱即用地提供强大的自然语言处理能力。然而,如果没有访问您自己的私有数据,它们的效用将受到限制。

LlamaIndex允许您通过灵活的数据连接器,从API、数据库、PDF等多种来源摄取数据。这些数据被索引成针对LLM优化的中间表示。然后,LlamaIndex允许通过查询引擎、聊天界面和LLM驱动的智能体与您的数据进行自然语言查询和对话。它使您的LLM能够大规模访问和解释私有数据,而无需对模型进行重新训练。

无论您是寻求简单自然语言查询数据方法的初学者,还是需要深度定制的高级用户,LlamaIndex都能提供相应的工具。高级API让您只需五行代码即可上手,而低级API则允许您完全控制数据摄取、索引、检索等更多功能。

LlamaIndex的工作原理

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

LlamaIndex: A Data Framework for the Large Language Models (LLMs) based applications

图片来自高级概念

索引阶段

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

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

查询阶段

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

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

此阶段的主要挑战是从可能存在的多个知识库中检索、组织和推理信息。

在我们的PineCone检索增强生成代码示例中了解更多关于RAG的信息。

LlamaIndex的设置

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

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

<code>pip install llama-index</code>

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

<code>pip install llama-index</code>

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

<code>import os

os.environ["OPENAI_API_KEY"] = "INSERT OPENAI KEY"</code>

使用LlamaIndex向LLM添加个人数据

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

请注意,我们使用DataLab运行Python代码。您可以在LlamaIndex:向LLM添加个人数据工作簿中访问所有相关的代码和输出;您可以轻松创建自己的副本以运行所有代码,而无需在您的计算机上安装任何内容!

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

<code>pip install openai</code>

加载数据并创建索引

我们有一个名为“Private-Data”的目录,其中只包含一个PDF文件。我们将使用SimpleDirectoryReader读取它,然后使用TreeIndex将其转换为索引。

<code>%pip install llama-index openai pypdf</code>

运行查询

一旦数据被索引,您就可以开始通过使用as_query_engine()提问。此函数使您可以询问文档中特定信息的问题,并在OpenAI GPT-3 text-davinci-003模型的帮助下获得相应的响应。

注意:您可以按照在Python教程中使用GPT-3.5和GPT-4通过OpenAI API的说明,在DataLab中设置OpenAI API。

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

<code>from llama_index import TreeIndex, SimpleDirectoryReader

resume = SimpleDirectoryReader("Private-Data").load_data()
new_index = TreeIndex.from_documents(resume)</code>
<code>query_engine = new_index.as_query_engine()
response = query_engine.query("When did Abid graduated?")
print(response)</code>

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

<code>Abid graduated in February 2014.</code>
<code>response = query_engine.query("What is the name of certification that Abid received?")
print(response)</code>

保存和加载上下文

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

<code>Data Scientist Professional</code>

LlamaIndex: A Data Framework for the Large Language Models (LLMs) based applications

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

<code>new_index.storage_context.persist()</code>

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

<code>from llama_index import StorageContext, load_index_from_storage

storage_context = StorageContext.from_defaults(persist_)
index = load_index_from_storage(storage_context)</code>
<code>query_engine = index.as_query_engine()
response = query_engine.query("What is Abid's job title?")
print(response)</code>

聊天机器人

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

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

<code>Abid's job title is Technical Writer.</code>
<code>query_engine = index.as_chat_engine()
response = query_engine.chat("What is the job title of Abid in 2021?")
print(response)</code>

并且无需提供额外的上下文,我们将提出后续问题。

<code>Abid's job title in 2021 is Data Science Consultant.</code>
<code>response = query_engine.chat("What else did he do during that time?")
print(response)</code>

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

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

使用LlamaIndex构建维基文本转语音

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

代码源和附加信息可在DataLab工作簿中找到。

网络抓取维基百科页面

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

<code>pip install llama-index</code>

LlamaIndex: A Data Framework for the Large Language Models (LLMs) based applications

加载数据并构建索引

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

<code>import os

os.environ["OPENAI_API_KEY"] = "INSERT OPENAI KEY"</code>

通过使用SimpleDirectoryReader,我们将加载数据并将TXT文件转换为使用VectorStoreIndex的向量存储。

<code>pip install openai</code>

查询

我们的计划是询问有关该国的一般性问题,并从LLM query_engine获得答复。

<code>%pip install llama-index openai pypdf</code>

LlamaIndex: A Data Framework for the Large Language Models (LLMs) based applications

文本转语音

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

<code>from llama_index import TreeIndex, SimpleDirectoryReader

resume = SimpleDirectoryReader("Private-Data").load_data()
new_index = TreeIndex.from_documents(resume)</code>

我们将response添加到generate_audio函数中以生成自然语音。为了收听音频,我们将使用IPython.display的Audio函数。

<code>query_engine = new_index.as_query_engine()
response = query_engine.query("When did Abid graduated?")
print(response)</code>

LlamaIndex: A Data Framework for the Large Language Models (LLMs) based applications

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

除了LlamaIndex之外,LangChain还允许您构建基于LLM的应用程序。此外,您可以阅读数据工程和数据应用程序的LangChain入门,以了解您可以使用LangChain执行的操作概述,包括LangChain解决的问题和数据用例示例。

LlamaIndex的用例

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

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

LlamaIndex: A Data Framework for the Large Language Models (LLMs) based applications

来自Llama Hub的数据加载器

您还可以使用智能体工具来集成第三方工具和API。

LlamaIndex: A Data Framework for the Large Language Models (LLMs) based applications

来自Llama Hub的智能体工具

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

  • 基于文档的问答
  • 聊天机器人
  • 智能体
  • 结构化数据
  • 全栈Web应用程序
  • 私有设置

要详细了解这些用例,请访问LlamaIndex文档。

结论

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

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

要成为一名专家级LLM开发人员,下一步是参加大型语言模型概念大师课程。本课程将使您全面了解LLM,包括它们的应用、训练方法、伦理考虑和最新研究。

以上是LlamainDEX:基于大语模型(LLM)应用程序的数据框架的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
加利福尼亚攻击AI到快速赛道野火恢复许可证加利福尼亚攻击AI到快速赛道野火恢复许可证May 04, 2025 am 11:10 AM

AI简化了野火恢复允许 澳大利亚科技公司Archistar的AI软件利用机器学习和计算机视觉,可以自动评估建筑计划,以遵守当地法规。这种验证前具有重要意义

美国可以从爱沙尼亚AI驱动的数字政府中学到什么美国可以从爱沙尼亚AI驱动的数字政府中学到什么May 04, 2025 am 11:09 AM

爱沙尼亚的数字政府:美国的典范? 美国在官僚主义的效率低下方面挣扎,但爱沙尼亚提供了令人信服的选择。 这个小国拥有由AI支持的近100%数字化的,以公民为中心的政府。 这不是

通过生成AI的婚礼计划通过生成AI的婚礼计划May 04, 2025 am 11:08 AM

计划婚礼是一项艰巨的任务,即使是最有条理的夫妇,也常常压倒了婚礼。 本文是关于AI影响的持续福布斯系列的一部分(请参阅此处的链接),探讨了生成AI如何彻底改变婚礼计划。 婚礼上

什么是数字防御AI代理?什么是数字防御AI代理?May 04, 2025 am 11:07 AM

企业越来越多地利用AI代理商进行销售,而政府则将其用于各种既定任务。 但是,消费者倡导强调个人需要拥有自己的AI代理人作为对经常定位的辩护的必要性

商业领袖生成引擎优化指南(GEO)商业领袖生成引擎优化指南(GEO)May 03, 2025 am 11:14 AM

Google正在领导这一转变。它的“ AI概述”功能已经为10亿用户提供服务,在任何人单击链接之前提供完整的答案。[^2] 其他球员也正在迅速获得地面。 Chatgpt,Microsoft Copilot和PE

该初创公司正在使用AI代理来与恶意广告和模仿帐户进行战斗该初创公司正在使用AI代理来与恶意广告和模仿帐户进行战斗May 03, 2025 am 11:13 AM

2022年,他创立了社会工程防御初创公司Doppel,以此做到这一点。随着网络犯罪分子越来越高级的AI模型来涡轮增压,Doppel的AI系统帮助企业对其进行了大规模的对抗 - 更快,更快,

世界模型如何从根本上重塑生成AI和LLM的未来世界模型如何从根本上重塑生成AI和LLM的未来May 03, 2025 am 11:12 AM

瞧,通过与合适的世界模型进行交互,可以实质上提高生成的AI和LLM。 让我们来谈谈。 对创新AI突破的这种分析是我正在进行的《福布斯》列的最新覆盖范围的一部分,包括

2050年五月:我们要庆祝什么?2050年五月:我们要庆祝什么?May 03, 2025 am 11:11 AM

劳动节2050年。全国范围内的公园充满了享受传统烧烤的家庭,而怀旧游行则穿过城市街道。然而,庆祝活动现在具有像博物馆般的品质 - 历史重演而不是纪念C

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能