Skip to main content

Rockset

Rockset是一个实时分析数据库,可以在没有操作负担的情况下对大规模的半结构化数据进行查询。使用Rockset,导入的数据可以在一秒钟内进行查询,并且对该数据的分析查询通常在毫秒级别执行。Rockset是计算优化的,适用于在子100TB范围内提供高并发应用程序的服务(或者使用滚动聚合大于100TB)。

这个笔记本演示了如何在langchain中使用Rockset作为文档加载器。要开始,请确保您拥有一个Rockset帐户和一个可用的API密钥。

设置环境

  1. 转到Rockset控制台并获取一个API密钥。从API参考中找到您的API区域。对于本笔记本,我们假设您正在使用Rockset的Oregon(us-west-2)区域。
  2. 设置环境变量ROCKSET_API_KEY
  3. 安装Rockset Python客户端,该客户端将被langchain用于与Rockset数据库交互。
$ pip3 install rockset

加载文档

Rockset与LangChain的集成允许您使用SQL查询从Rockset集合中加载文档。为此,您必须构建一个RocksetLoader对象。下面是一个初始化RocksetLoader的示例代码片段。

from langchain.document_loaders import RocksetLoader
from rockset import RocksetClient, Regions, models

loader = RocksetLoader(
RocksetClient(Regions.usw2a1, "<api key>"),
models.QueryRequestSql(query="SELECT * FROM langchain_demo LIMIT 3"), # SQL查询
["text"], # 内容列
metadata_keys=["id", "date"], # 元数据列
)

在这里,您可以看到运行了以下查询:

SELECT * FROM langchain_demo LIMIT 3

集合中的text列用作页面内容,记录的iddate列用作元数据(如果您没有将任何内容传递给metadata_keys,则整个Rockset文档将用作元数据)。

要执行查询并访问结果Document的迭代器,请运行:

loader.lazy_load()

要执行查询并一次性访问所有结果的Document,请运行:

loader.load()

下面是loader.load()的示例响应:

[
Document(
page_content="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas a libero porta, dictum ipsum eget, hendrerit neque. Morbi blandit, ex ut suscipit viverra, enim velit tincidunt tellus, a tempor velit nunc et ex. Proin hendrerit odio nec convallis lobortis. Aenean in purus dolor. Vestibulum orci orci, laoreet eget magna in, commodo euismod justo.",
metadata={"id": 83209, "date": "2022-11-13T18:26:45.000000Z"}
),
Document(
page_content="Integer at finibus odio. Nam sit amet enim cursus lacus gravida feugiat vesti