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

准备工作

在使用LlamaIndex和OpenAI API获得关键数据之前,首先需要进行一些准备工作。

A. 安装所需的软件和库

为了使用LlamaIndex和OpenAI API,我们需要安装一些必要的软件和库。

  1. 安装Python 3.7或更高版本:LlamaIndex和OpenAI库需要Python的支持。
  2. 安装LlamaIndex库:使用以下命令在终端中安装LlamaIndex库。
  3. pip install llama_index
  4. 安装OpenAI库:使用以下命令在终端中安装OpenAI库。
  5. pip install openai

B. 获得OpenAI API密钥

要使用OpenAI API,您需要获得API密钥。

  1. 登录OpenAI官网并创建新的API令牌:打开OpenAI官网,在设置中创建一个新的API令牌。
  2. 获得API密钥:在创建的API令牌页面中,复制您的API密钥。

数据的摄取和建立索引阶段

通过LlamaIndex将文档转化为矢量数据,并建立索引。

A. 使用LlamaIndex将文档转化为矢量数据

使用LlamaIndex库将文档转化为矢量数据,以便进行进一步的处理和索引。

  1. 导入LlamaIndex库:在Python脚本中导入LlamaIndex库。
  2. from llama_index import GPTVectorStoreIndex
  3. 创建GPTVectorStoreIndex对象:创建一个GPTVectorStoreIndex对象。
  4. index = GPTVectorStoreIndex()
  5. 使用LangChain将文档转化为矢量数据:使用LangChain将文档转化为适用于矢量处理的数据。

B. 建立索引数据

使用GPTVectorStoreIndex将文档转化为矢量数据,并建立索引。

  1. 导入SimpleDirectoryReader和GPTVectorStoreIndex:在Python脚本中导入SimpleDirectoryReader和GPTVectorStoreIndex。
  2. from llama_index import SimpleDirectoryReader, GPTVectorStoreIndex
  3. 创建SimpleDirectoryReader对象:创建一个SimpleDirectoryReader对象。
  4. reader = SimpleDirectoryReader(directory_path)
  5. 使用GPTVectorStoreIndex建立索引:使用GPTVectorStoreIndex的build_index方法建立索引。
  6. index.build_index(reader)

调用OpenAI API获得关键数据

使用OpenAI API获得关键数据。

A. 导入所需库和模块

在开始使用OpenAI API之前,需要导入一些必要的库和模块。

  1. 导入OpenAI和os库:在Python脚本中导入OpenAI和os库。
  2. import OpenAI
    import os
  3. 导入GPTVectorStoreIndex和SimpleDirectoryReader:在Python脚本中导入GPTVectorStoreIndex和SimpleDirectoryReader。
  4. from llama_index import GPTVectorStoreIndex, SimpleDirectoryReader
  5. 导入load_dotenv和os模块:在Python脚本中导入load_dotenv和os模块。
  6. from dotenv import load_dotenv
    import os

B. 从环境变量中读取OpenAI API密钥

为了使用OpenAI API,需要从环境变量中读取API密钥。

  1. 使用load_dotenv加载环境变量:在Python脚本中使用load_dotenv函数加载环境变量。
  2. load_dotenv()
  3. 使用os.getenv获得OpenAI API密钥:使用os.getenv函数从环境变量中获得OpenAI API密钥。
  4. api_key = os.getenv("OPENAI_API_KEY")

C. 使用OpenAI API获得关键数据

通过调用OpenAI API来获得关键数据。

  1. 创建GPTVectorStoreIndex对象:创建一个GPTVectorStoreIndex对象。
  2. index = GPTVectorStoreIndex()
  3. 设置OpenAI API密钥:使用set_api_key方法设置OpenAI API密钥。
  4. index.set_api_key(api_key)
  5. 调用OpenAI API获得关键数据:使用index的query方法调用OpenAI API获得关键数据。
  6. result = index.query(query)

其他注意事项

在使用OpenAI API获得关键数据时,有一些注意事项需要留意。

A. 验证OpenAI API密钥会不会有效

在调用OpenAI API之前,应验证API密钥会不会有效。可以通过调用OpenAI API的某个简单方法来验证API密钥。

B. 保护OpenAI API密钥的安全性

OpenAI API密钥是您的个人访问凭证,应妥善保护其安全性,以避免泄漏和滥用。可以通过以下几种措施来保护API密钥的安全性:

  • 不要将API密钥存储在公然的代码库中。
  • 不要将API密钥在网络传输中明文传输。
  • 定期更改API密钥,以增加安全性。
  • 限制API密钥的使用范围,仅允许特定的IP地址或域名使用。

llama index openai api key的进一步展开说明

LlamaIndex: 构建大范围语言模型利用的数据框架

LlamaIndex是一个用于大型语言模型(LLM)利用的数据框架。像GPT⑷这样的LLM是基于大范围公共数据集进行预训练的,能够在开箱即用的情况下进行出色的自然语言处理。但是,如果没有访问自己的私有数据,它们的功效将遭到限制。

LlamaIndex通过灵活的数据连接器,可以从API、数据库、PDF等多种途径摄取数据。这些数据被索引为LLM优化的中间表示情势。然后,LlamaIndex通过查询引擎、聊天界面和基于LLM的数据代理,实现与数据的自然语言查询和交换。它使得LLM能够在不重新训练模型的情况下访问和解释大范围的私有数据。

不管你是一个初学者,或者一个需要深度定制的高级用户,LlamaIndex都提供了工具。高级API只需要五行代码就能够开始使用,而低级API则允许对数据摄取、索引、检索等进行全面控制。

LlamaIndex的工作原理是怎样的?

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

索引阶段

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

索引的目的是将数据转换为捕捉其语义意义的数字向量或嵌入。它可以在内容之间进行快速的类似性搜索。

查询阶段

在查询阶段,RAG管道根据用户的查询搜索最相关的信息。然后将此信息与查询一起传递给LLM,生成准确的响应。

这个进程可使LLM访问当前和更新的信息,这些信息可能没有包括在其最初的训练中。

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

设置LlamaIndex

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

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

pip install llama-index

默许情况下,LlamaIndex使用OpenAI GPT⑶ text-davinci-003模型。要使用这个模型,你一定要设置OPENAI_API_KEY。你可以创建一个不要钱帐户,并通过登录OpenAI的新API令牌来获得API密钥。

import os os.environ[“OPENAI_API_KEY”] = “INSERT OPENAI KEY”

同时,确保你已安装了openai包。

pip install openai

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

在本节中,我们将学习怎样使用LlamaIndex创建一个简历浏览器。你可以通过进入Linkedin个人资料页面,点击More,然后选择Save as PDF来下载你的简历。

请注意,我们在DataCamp工作空间中运行Python代码。你可以在LlamaIndex: Adding Personal Data to LLMs工作空间中获得所有相关代码和输出。

在运行任何代码之前,我们一定要安装llama-index、openai和pypdf。我们正在安装pypdf以便我们可以读取和转换PDF文件。

%pip install llama-index openai pypdf

加载数据并创建索引

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

from llama_index import TreeIndex, SimpleDirectoryReader resume = SimpleDirectoryReader(“Private-Data”).load_data() new_index = TreeIndex.from_documents(resume)

运行查询

一旦数据被索引,你就能够通过使用as_query_engine()来开始发问。这个函数允许你对文档中的特定信息提出问题,然后根据OpenAI GPT⑶ text-davinci-003模型的帮助,得到相应的回答。

注意:你可以通过参考使用GPT⑶.5和GPT⑷来设置DataCamp Workspace中的OpenAI API。

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

query_engine = new_index.as_query_engine() response = query_engine.query(“When did Abid graduated?”) print(response)

Abid graduated in February 2014.

我们可以进一步了解认证情况。看起来LlamaIndex对候选人的了解是全面的,这对寻觅特定个人的公司来讲是有益的。

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

Data Scientist Professional

保存和加载上下文

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

new_index.storage_context.persist()

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

from llama_index import StorageContext, load_index_from_storage storage_context = StorageContext.from_defaults(persist_dir=”./storage”) index = load_index_from_storage(storage_context)

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

query_engine = index.as_query_engine() response = query_engine.query(“What is Abid’s job title?”) print(response)

Abid’s job title is Technical Writer.

聊天机器人

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

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

query_engine = index.as_chat_engine() response = query_engine.chat(“What is the job title of Abid in 2023?”) print(response)

Abid’s job title in 2023 is Data Science Consultant.

并且不提供额外的上下文,我们将提出进一步的问题。

response = query_engine.chat(“What else did he do during that time?”) print(response)

In 2023, 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.

很明显,聊天引擎运行得非常顺利。

构建具有LlamaIndex的Wiki文本到语音功能

我们的下一个项目触及开发一个可以回答来自维基百科并将其转换为语音的问题的利用程序。

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

从维基百科页面进行网页抓取

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

from pathlib import Path import requests response = requests.get( “https://en.wikipedia.org/w/api.php”, params={ “action”: “query”, “format”: “json”, “titles”: “Italy”, “prop”: “extracts”, # ‘exintro’: True, “explaintext”: True, }, ).json() page = next(iter(response[“query”][“pages”].values())) italy_text = page[“extract”] data_path = Path(“data”) if not data_path.exists(): Path.mkdir(data_path) with open(“data/italy_text.txt”, “w”) as fp: fp.write(italy_text)

加载数据并构建索引

接下来,我们需要安装必要的包。elevenlabs包使我们能够使用API简单地将文本转换为语音。

%pip install llama-index openai elevenlabs

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

from llama_index import VectorStoreIndex, SimpleDirectoryReader from IPython.display import Markdown, display from llama_index.tts import ElevenLabsTTS from IPython.display import Audio documents = SimpleDirectoryReader(“data”).load_data() index = VectorStoreIndex.from_documents(documents)

查询

我们计划提一个关于这个国家的一般性问题,并从LLM查询引擎中取得回答。

query = “Tell me an interesting fact about the country?” query_engine = index.as_query_engine() response = query_engine.query(query) display(Markdown(f”{query}“)) display(Markdown(f”

{response}

“))

文本到语音

接下来,我们将使用llama_index.tts模块来访问ElevenLabsTTS API。你需要提供ElevenLabs API密钥来初始化音频生成函数。你可以避不要钱在ElevenLabs网站上取得API密钥。

import os elevenlabs_key = os.environ[“ElevenLabs_key”] tts = ElevenLabsTTS(api_key=elevenlabs_key)

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

audio = tts.generate_audio(str(response)) Audio(audio)

这只是一个简单的例子。你可使用多个模块创建自己的助手,就像Siri一样,通过解释私有数据来回答你的问题。欲了解更多信息,请参阅LlamaIndex文档。

除LlamaIndex,LangChain还允许您构建基于LLM的利用程序。另外,您还可以浏览《LangChain简介:数据工程和数据利用》了解有关LangChain的概述,包括LangChain解决的问题和数据用例的示例。

LlamaIndex的用例

LlamaIndex提供了一个完全的工具包,用于构建基于语言的利用程序。另外,您还可使用Llama Hub中的各种数据加载器和代理工具来开发具有多种功能的复杂利用程序。

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

来自Llama Hub的数据加载器

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

来自Llama Hub的代理工具

简而言之,您可使用LlamaIndex构建以下利用程序:

文档问答(Q&A)

聊天机器人

代理

结构化数据

全栈Web利用程序

私人设置

要详细了解这些用例,请参阅LlamaIndex文档。

结论

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

在本教程中,我们了解了LlamaIndex和它的工作原理。另外,我们使用了几行Python代码构建了一个简历浏览器和文本到语音项目。使用LlamaIndex创建LLM利用程序非常简单,并且提供了丰富的插件库、数据加载器和代理工具。

要成为专业的LLM开发者,下一步是参加《Master Large Language Models Concepts》课程。此课程将全面介绍LLM,包括其利用、训练方法、道德斟酌和最新研究。

llama index openai api key的常见问答Q&A

问题1:LlamaIndex 是甚么?

答案:LlamaIndex 是一个用于构建索引和查询本地文档的工具。它使用了 GPT 模型,可以轻松地将本地文档转换为矢量表示,并根据查询来搜索和检索相关文档。它提供了一个简单易用的接口,让用户可以方便地构建自己的知识库,让 LLMs(Language Model Machines)能够更好地理解和处理文档数据。

  • LlamaIndex 可以将文档转化为矢量数据,并建立索引,以便快速搜索和检索。
  • 使用 LlamaIndex,用户可以轻松地构建自己的知识库,并使用 GPT 模型进行高效的文档查询与问答。
  • LlamaIndex 提供了一个简单易用的接口,用户可以通过该接口与 LLMs 进行交互,实现智能的文档处理和查询功能。

ChatGPT相关资讯

ChatGPT热门资讯

X

截屏,微信识别二维码

微信号:muhuanidc

(点击微信号复制,添加好友)

打开微信

微信号已复制,请打开微信添加咨询详情!