Skip to main content
Apache Cassandra® 是一种广泛用于存储事务性应用程序数据的数据库。大型语言模型中函数和 >工具的出现为生成式 AI 应用中的现有数据开启了一些令人兴奋的使用案例。
Cassandra Database 工具包使 AI 工程师能够高效地将代理与 Cassandra 数据集成,提供 以下功能:
  • 通过优化查询实现快速数据访问。大多数查询应在个位数毫秒或更短时间内运行。
  • 模式检查以增强 LLM 推理能力
  • 兼容各种 Cassandra 部署,包括 Apache Cassandra®、DataStax Enterprise™ 和 DataStax Astra™
  • 目前,该工具包仅限于 SELECT 查询和模式检查操作。(安全第一)
有关创建 Cassandra DB 代理的更多信息,请参阅 CQL 代理示例代码库

快速开始

  • 安装 cassio
  • 设置要连接的 Cassandra 数据库的环境变量
  • 初始化 CassandraDatabase
  • 使用 toolkit.get_tools() 将工具传递给您的代理
  • 坐享其成,看着它为您完成所有工作

运作原理

Cassandra Query Language (CQL) 是与 Cassandra 数据库交互的主要以人为本的方式。虽然在生成查询时提供了一定的灵活性,但它需要了解 Cassandra 数据建模的最佳实践。LLM 函数调用赋予代理推理并选择工具以满足请求的能力。使用 LLM 的代理在选择合适的工具包或工具链时应使用 Cassandra 特定逻辑进行推理。这减少了当 LLM 被迫提供自上而下的解决方案时引入的随机性。您希望 LLM 完全无限制地访问您的数据库吗?嗯。可能不希望。为了实现这一点,我们在构建代理问题时提供了一个提示: 你是一位 Apache Cassandra 专家查询分析机器人,具有以下功能和规则:
  • 你将接收来自最终用户的问题,关于在数据库中找到特定数据。
  • 你将检查数据库的模式并创建查询路径。
  • 你将为用户提供正确的查询来找到他们正在寻找的数据,展示查询路径提供的步骤。
  • 你将使用分区键和聚簇列查询 Apache Cassandra 的最佳实践。
  • 避免在查询中使用 ALLOW FILTERING。
  • 目标是找到查询路径,因此可能需要查询其他表才能得到最终答案。
以下是 JSON 格式的查询路径示例:

提供的工具

cassandra_db_schema

收集已连接数据库或特定模式的所有模式信息。对于代理确定操作至关重要。

cassandra_db_select_table_data

从特定的 keyspace 和表中选择数据。代理可以传递参数用于谓词和返回记录数量的限制。

cassandra_db_query

cassandra_db_select_table_data 的实验性替代方案,它接受由代理完全形成的查询字符串而不是参数。警告:这可能导致性能不佳(甚至无法工作)的不寻常查询。这可能会在未来的版本中被移除。如果它做了很酷的事情,我们也想知道。你永远不知道!

环境设置

安装以下 Python 模块:

.env 文件

连接通过 cassio 使用 auto=True 参数,笔记本使用 OpenAI。你应该相应地创建一个 .env 文件。 对于 Casssandra,设置:
对于 Astra,设置:
例如:
(你也可以修改下面的代码直接使用 cassio 连接。)

连接到 Cassandra 数据库