截至 2024 年 6 月,Rockset 已被 OpenAI 收购并关闭了其公共服务。 Rockset 曾是一个实时分析数据库,以世界级的索引和检索而闻名。现在,其核心团队和技术正在整合到 OpenAI 的基础设施中,为未来的 AI 产品提供支持。 此 LangChain 集成不再可用,仅为存档目的保留。
Rockset 是一个实时分析数据库,可以对海量、半结构化数据进行查询,而无需操作负担。使用 Rockset,摄取的数据可以在一秒内查询,并且针对该数据的分析查询通常在毫秒内执行。Rockset 经过计算优化,适用于提供亚 100TB 范围(或使用汇总后大于 100TB)的高并发应用程序。本笔记本演示了如何将 Rockset 用作 Langchain 中的文档加载器。开始之前,请确保您拥有 Rockset 帐户和可用的 API 密钥。
设置环境
- 前往 Rockset 控制台并获取 API 密钥。从 API 参考中找到您的 API 区域。为了本笔记本的目的,我们假设您正在使用
Oregon(us-west-2)的 Rockset。 - 设置环境变量
ROCKSET_API_KEY。 - 安装 Rockset Python 客户端,Langchain 将使用它与 Rockset 数据库进行交互。
加载文档
Rockset 与 LangChain 的集成允许您使用 SQL 查询从 Rockset 集合加载文档。为此,您必须构造一个RocksetLoader 对象。以下是初始化 RocksetLoader 的示例代码片段。
text 列用作页面内容,记录的 id 和 date 列用作元数据(如果您不向 metadata_keys 传递任何内容,整个 Rockset 文档将用作元数据)。 要执行查询并访问结果 Document 的迭代器,请运行:Document,请运行
loader.load() 的示例响应
使用多列作为内容
您可以选择使用多列作为内容"This is the first sentence.", “sentence2”字段为 "This is the second sentence.",则结果 Document 的 page_content 将是
RocksetLoader 构造函数中设置 content_columns_joiner 参数来定义自己的函数以连接内容列。content_columns_joiner 是一个方法,它接受 List[Tuple[str, Any]]] 作为参数,表示 (列名,列值) 的元组列表。默认情况下,这是一个将每个列值与新行连接的方法。 例如,如果您想用空格而不是新行连接 sentence1 和 sentence2,您可以像这样设置 content_columns_joiner:Document 的 page_content 将是
page_content 中包含列名。您可以这样做:
page_content
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。