Cassandra 是一个 NoSQL、面向行、高度可扩展且高可用的数据库。从 5.0 版本开始,该数据库内置向量搜索功能。注意:除了访问数据库外,运行完整示例还需要 OpenAI API Key。
设置和通用依赖
使用本集成需要以下 Python 包。datasets、openai、pypdf 和 tiktoken,以及 langchain-community)。
导入向量存储
连接参数
本页面展示的向量存储集成可与 Cassandra 以及其他使用 CQL(Cassandra 查询语言)协议的衍生数据库(如 Astra DB)配合使用。DataStax Astra DB 是基于 Cassandra 构建的托管无服务器数据库,提供相同的接口和优势。根据您连接的是 Cassandra 集群还是通过 CQL 连接到 Astra DB,在创建向量存储对象时需要提供不同的参数。
连接到 Cassandra 集群
您首先需要按照 Cassandra 驱动程序文档中的说明创建一个cassandra.cluster.Session 对象。具体细节因情况而异(例如网络设置和身份验证),但大致如下:
cassio.init 设置更为便捷,特别是当您的应用程序以多种方式使用 Cassandra 时(例如用于向量存储、聊天记忆和 LLM 响应缓存),因为它允许将凭据和数据库连接管理集中在一处。
通过 CQL 连接到 Astra DB
在这种情况下,使用以下连接参数初始化 CassIO:- 数据库 ID,例如
01234567-89ab-cdef-0123-456789abcdef - 令牌,例如
AstraCS:6gBhNmsk135....(必须是”数据库管理员”令牌) - 可选的 Keyspace 名称(如果省略,将使用数据库的默认 Keyspace)
加载数据集
将源数据集中的每个条目转换为Document,然后写入向量存储:
metadata 字典从源数据创建,并作为 Document 的一部分。
使用 add_texts 添加更多条目:
add_texts 和 add_documents 的执行速度,
这些批量操作——查看方法的 batch_size 参数
了解更多详情。根据网络和客户端机器规格,最佳参数选择可能有所不同。
运行搜索
本节演示元数据过滤和返回相似度分数:MMR(最大边际相关性)搜索
删除已存储的文档
一个极简的 RAG 链
以下单元格将实现一个简单的 RAG 管道:- 下载一个示例 PDF 文件并将其加载到向量存储中;
- 使用 LCEL(LangChain 表达式语言)创建一个 RAG 链,向量存储位于其核心;
- 运行问答链。
清理
以下操作实质上是从 CassIO 获取Session 对象,并用它运行一个 CQL DROP TABLE 语句:
(您将丢失存储在其中的数据。)
了解更多
有关更多信息、扩展快速入门和其他使用示例,请访问 CassIO 文档,了解更多关于使用 LangChainCassandra 向量存储的内容。
归属声明
Apache Cassandra、Cassandra 和 Apache 是 Apache 软件基金会在美国和/或其他国家/地区的注册商标或商标。
通过 MCP 将这些文档连接到 Claude、VSCode 等,获取实时答案。

