Cassandra 是一个 NoSQL、面向行、高度可扩展且高可用的数据库。从 5.0 版本开始,该数据库内置了向量搜索功能。注意:除了数据库访问权限外,运行完整示例还需要一个 OpenAI API 密钥。
设置和通用依赖项
使用此集成需要以下 Python 包。datasets、openai、pypdf 和 tiktoken 的最新版本,以及 langchain-community)。
导入向量存储
连接参数
本页面展示的向量存储集成可用于 Cassandra 以及其他衍生数据库,例如使用 CQL(Cassandra 查询语言)协议的 Astra DB。DataStax Astra DB 是一个基于 Cassandra 构建的托管无服务器数据库,提供相同的接口和优势。根据您是通过 CQL 连接到 Cassandra 集群还是 Astra DB,在创建向量存储对象时需要提供不同的参数。
连接到 Cassandra 集群
您首先需要创建一个cassandra.cluster.Session 对象,如 Cassandra 驱动程序文档中所述。具体细节各不相同(例如网络设置和身份验证),但可能类似于:
cassio.init 设置在您的应用程序以多种方式使用 Cassandra 时(例如,用于向量存储、聊天记忆和 LLM 响应缓存)会很方便,因为它允许将凭证和数据库连接管理集中在一处。
通过 CQL 连接到 Astra DB
在这种情况下,您使用以下连接参数初始化 CassIO:- 数据库 ID,例如
01234567-89ab-cdef-0123-456789abcdef - 令牌,例如
AstraCS:6gBhNmsk135....(必须是“数据库管理员”令牌) - 可选的键空间名称(如果省略,将使用数据库的默认键空间)
加载数据集
将源数据集中的每个条目转换为一个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 软件基金会在美国和/或其他国家/地区的注册商标或商标。
将这些文档连接到 Claude、VSCode 等,通过 MCP 获取实时答案。

