LlamaIndex 入门教程 (OpenAI)

这是我们著名的使用 OpenAI 的“5 行代码”入门示例。

1. 下载数据

这个例子使用了保罗·格雷厄姆(Paul Graham)的文章“我做了什么”的文本。这个例子和许多其他例子可以在我们的 repo examples 文件夹中找到。

获取它的最简单方法是通过此链接下载它并将其保存在 data 目录下,文件名为:paul_graham_essay.txt

2. 设置 OpenAI API 密钥

LlamaIndex gpt-3.5-turbo 默认使用 OpenAI 的。通过将 API 密钥设置为环境变量,确保 API 密钥可用于代码。在 MacOS 和 Linux 中,以下命令:

在 Windows 上它是

3. 加载数据并构建索引

需要安装一些库

如果运行下面的代码出问题,可能还需要安装和更新

在创建 data 该文件夹的同一文件夹中,使用以下内容创建名为 starter.py 的文件

这将在 data 文件夹中的文档上构建索引(在本例中,该文件夹仅包含论文文本,但可能包含许多文档)。

目录结构应如下所示:

4. 查询数据

将以下行添加到 starter.py

这将创建一个引擎,用于对索引进行问答,并提出一个简单的问题。您应返回类似于以下内容的响应: The author wrote short stories and tried to program on an IBM 1401.

下面是jupyter notebook 运行的截图

5. 使用日志记录查看查询和事件

想看看引擎盖下发生了什么吗?让我们添加一些日志记录。将以下行添加到顶部: starter.py

下面是 DEBUG 下的输出情况

从上面的调试信息可以看出,程序第一次从文件 paul_graham_essay.txt 读取 3475 个字符,分割成更小的块(chunks),操作是添加一个新的文本块到处理队列或索引中。第二块大小是3541。

接着是把文本内容里面的回车换行符替换为\r, ‘替换为\’

每一个 chunk 前面都含有文件名,然后发送给 POST https://api.openai.com/v1/embeddings

您可以 DEBUG 将级别设置为详细输出,也可以将 level=logging.INFO 级别设置为更少。

6. 存储索引

默认情况下,您刚刚加载的数据作为一系列向量嵌入存储在内存中。您可以通过将嵌入保存到磁盘来节省时间(以及对 OpenAI 的请求)。这可以通过以下行来完成:

下面是DEBUG信息

默认情况下,这会将数据保存到 storage 目录 ,但您可以通过传递 persist_dir 参数来更改它。

这个时候,我们可以看到目录下创建了storage 目录,产生了如下的文件:

当然,除非加载数据,否则无法获得持久化的好处。因此,让我们修改 starter.py 以生成和存储索引(如果它不存在),但如果存在,请加载它:

下面是 DEBUG 信息

从上面的信息可以看到

现在,您可以随心所欲地高效查询!但这只是您可以使用 LlamaIndex 做的事情的开始。

原文链接:入门教程 (OpenAI) – LlamaIndex — Starter Tutorial (OpenAI) – LlamaIndex

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部