Cassandra 是一个 NoSQL、面向行、高度可扩展且高可用的数据库。从 5.0 版本开始,该数据库附带了 向量搜索功能。Note: 除了访问数据库外,运行完整示例还需要一个 OpenAI API 密钥。
设置和通用依赖项
使用该集成需要以下 Python 包。datasets, openai, pypdf and tiktoken are required, along with langchain-community).
导入向量存储
连接参数
本页面显示的向量存储集成可用于 Cassandra 以及其他衍生数据库(如 Astra DB),这些数据库使用 CQL(Cassandra 查询语言)协议。DataStax Astra DB 是构建在 Cassandra 之上的托管无服务器数据库,提供相同的接口和优势。根据您是连接到 Cassandra 集群还是通过 CQL 连接到 Astra DB,在创建向量存储对象时将提供不同的参数。
连接到 Cassandra 集群
您首先需要创建一个cassandra.cluster.Session 对象,如 Cassandra 驱动程序文档 中所述。详细信息各不相同(例如网络设置和身份验证),但这可能类似于:
cassio.init 设置会更方便,因为它允许在一个地方集中管理凭据和数据库连接。
通过 CQL 连接到 Astra DB
在这种情况下,您使用以下连接参数初始化 CassIO:- 数据库 ID,例如
01234567-89ab-cdef-0123-456789abcdef - 令牌,例如
AstraCS:6gBhNmsk135....(必须是“数据库管理员”令牌) - 可选的 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 软件基金会 的注册商标或商标。
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

