首页/新闻资讯/正文详情

【Agent】【tools】3.Cassandra数据库工具

发布时间:2026/9/24 17:28:54 来源:云帆数科 栏目:资讯中心
【Agent】【tools】3.Cassandra数据库工具
1. 案例目标本案例展示了如何使用LlamaIndex的Cassandra数据库工具使AI代理能够高效地与Cassandra数据库交互。Apache Cassandra®是一个广泛用于存储事务性应用程序数据的数据库。大型语言模型中函数和工具的引入为现有数据在生成式AI应用中的使用开辟了一些令人兴奋的用例。2. 技术栈与核心依赖llama-index- LlamaIndex核心框架用于构建AI代理llama-index-tools-cassandra- Cassandra数据库工具规范llama-index-agent-openai- OpenAI代理集成llama-index-llms-openai- OpenAI语言模型集成cassio- Cassandra数据库连接库python-dotenv- 环境变量管理Apache Cassandra®/DataStax Enterprise™/DataStax Astra™- 支持的Cassandra部署3. 环境配置3.1 安装依赖pip install ipykernel python-dotenv cassio llama-index llama-index-agent-openai llama-index-llms-openai llama-index-tools-cassandra3.2 环境变量配置创建.env文件并设置以下环境变量对于CassandraCASSANDRA_CONTACT_POINTS CASSANDRA_USERNAME CASSANDRA_PASSWORD CASSANDRA_KEYSPACE对于AstraASTRA_DB_APPLICATION_TOKEN ASTRA_DB_DATABASE_ID ASTRA_DB_KEYSPACE示例# Connection to Astra: ASTRA_DB_DATABASE_IDa1b2c3d4-... ASTRA_DB_APPLICATION_TOKENAstraCS:... ASTRA_DB_KEYSPACEnotebooks # Also set OPENAI_API_KEYsk-....3.3 初始化Cassandra连接from dotenv import load_dotenv import os import cassio from llama_index.tools.cassandra.base import CassandraDatabaseToolSpec from llama_index.tools.cassandra.cassandra_database_wrapper import CassandraDatabase from llama_index.core.agent.workflow import FunctionAgent from llama_index.llms.openai import OpenAI # 加载环境变量 load_dotenv(overrideTrue) # 初始化Cassandra连接 cassio.init(autoTrue) session cassio.config.resolve_session() if not session: raise Exception( Check environment configuration or manually configure cassio connection parameters )4. 案例实现4.1 创建测试数据# 测试数据准备 session cassio.config.resolve_session() # 删除已存在的测试键空间 session.execute(DROP KEYSPACE IF EXISTS llamaindex_agent_test; ) # 创建新的测试键空间 session.execute( CREATE KEYSPACE if not exists llamaindex_agent_test WITH replication {class: SimpleStrategy, replication_factor: 1}; ) # 创建用户凭据表 session.execute( CREATE TABLE IF NOT EXISTS llamaindex_agent_test.user_credentials ( user_email text PRIMARY KEY, user_id UUID, password TEXT ); ) # 创建用户表 session.execute( CREATE TABLE IF NOT EXISTS llamaindex_agent_test.users ( id UUID PRIMARY KEY, name TEXT, email TEXT ); ) # 创建用户视频表 session.execute( CREATE TABLE IF NOT EXISTS llamaindex_agent_test.user_videos ( user_id UUID, video_id UUID, title TEXT, description TEXT, PRIMARY KEY (user_id, video_id) ); ) # 插入测试数据 user_id 522b1fe2-2e36-4cef-a667-cd4237d08b89 video_id 27066014-bad7-9f58-5a30-f63fe03718f6 session.execute( f INSERT INTO llamaindex_agent_test.user_credentials (user_id, user_email) VALUES ({user_id}, patrickdatastax.com); ) session.execute( f INSERT INTO llamaindex_agent_test.users (id, name, email) VALUES ({user_id}, Patrick McFadin, patrickdatastax.com); ) session.execute( f INSERT INTO llamaindex_agent_test.user_videos (user_id, video_id, title) VALUES ({user_id}, {video_id}, Use Langflow to Build an LLM Application in 5 Minutes); ) session.set_keyspace(llamaindex_agent_test)4.2 创建Cassandra工具规范# 创建CassandraDatabaseToolSpec对象 db CassandraDatabase() spec CassandraDatabaseToolSpec(dbdb) tools spec.to_tool_list() # 查看可用工具 for tool in tools: print(tool.metadata.name) print(tool.metadata.description) print(tool.metadata.fn_schema)4.3 创建代理# 选择驱动代理的LLM llm OpenAI(modelgpt-4-1106-preview) # 使用我们的工具创建代理 agent FunctionAgent(toolstools, llmllm)4.4 使用代理查询数据# 向代理提出一系列问题观察代理如何使用工具获取答案 await agent.run(What tables are in the keyspace llamaindex_agent_test?) await agent.run(What is the userid for patrickdatastax.com ?) await agent.run(What videos did user patrickdatastax.com upload?)5. 案例效果通过Cassandra数据库工具我们实现了以下功能快速数据访问- 通过优化查询实现快速数据访问大多数查询应在个位数毫秒内完成模式内省- 增强LLM推理能力的模式内省功能多部署兼容- 兼容各种Cassandra部署包括Apache Cassandra®、DataStax Enterprise™和DataStax Astra™安全查询- 目前仅限于SELECT查询和模式内省操作确保安全性智能查询路径- 代理能够推理并选择适当的工具或工具链来满足请求6. 案例实现思路本案例的实现基于以下思路工具封装- 将Cassandra数据库操作封装为LlamaIndex工具规范安全限制- 限制仅支持SELECT查询和模式内省操作确保数据库安全智能推理- 使用特定的提示指导代理使用Cassandra特定的逻辑进行推理查询路径- 代理能够创建查询路径可能需要查询其他表来获取最终答案最佳实践- 代理遵循Cassandra数据建模最佳实践使用分区键和聚簇列代理查询路径示例{query_paths: [{description: Direct query to users table using email,steps: [{table: user_credentials,query: SELECT userid FROM user_credentials WHERE email exampleexample.com;},{table: users,query: SELECT * FROM users WHERE userid ?;}]}]}7. 提供的工具7.1 cassandra_db_schema收集连接数据库或特定模式的所有模式信息。代理在确定操作时至关重要。7.2 cassandra_db_select_table_data从特定的键空间和表中选择数据。代理可以为谓词传递参数并限制返回记录的数量。7.3 cassandra_db_querycassandra_db_select_table_data的实验性替代方案它接受由代理完全形成的查询字符串。警告这可能导致不寻常的查询可能性能不佳甚至无法工作。这可能会在未来的版本中被移除。8. 扩展建议更多查询类型- 扩展支持更多CQL查询类型如INSERT、UPDATE等查询优化- 添加查询优化建议和自动优化功能数据可视化- 集成数据可视化工具如图表生成批量操作- 支持批量数据操作提高处理效率事务支持- 添加事务支持确保数据一致性多数据库支持- 扩展支持更多NoSQL数据库类型9. 总结Cassandra数据库工具为LlamaIndex代理提供了强大的数据库交互能力使其能够安全、高效地查询和分析Cassandra数据库中的数据。通过提供专门的工具和指导代理使用Cassandra特定的推理逻辑该工具大大提高了代理处理数据库任务的准确性和效率。这种能力特别适合需要从大型分布式数据库中检索和分析数据的应用场景如用户分析、内容推荐、业务报告等。

相关推荐

按键控制LED
按键控制LED

GPIO_ Read_ input_ Data_ bit 就是读取这里输入数据寄存器的某一位。 GPIO_ Read_ input_ Data 就是读取这整个输入数据寄存器。 GPIO_ Read_ output_ Data_ bit 就是读取这里输出数据寄存器的某一位。 GPIO_ Read_ output_ Data 就是读取这整个输出数据寄存器。 按键控制LED … · 2026/9/24 17:28:48

11 — 完整 CRUD 示例
11 — 完整 CRUD 示例

11.1 这一篇做什么 前面几篇分别讲了每一层的写法,这一篇把它们串起来,从零写完一个项目管理模块的完整 CRUD。 读完这篇,你应该能照着写出其他任何模块。11.2 要实现的接口方法URL功能GET/api/v1/projects分页查询项目列表,支持按… · 2026/9/24 17:28:48

报告下载丨2025 年 AI Agent 重新定义未来企业:微软集团生产力与企业流程业务研究报告
报告下载丨2025 年 AI Agent 重新定义未来企业:微软集团生产力与企业流程业务研究报告

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 17:28:48

从0到1读懂QuantsPlaybook的ICIR分析:量化因子测试入门指南
从0到1读懂QuantsPlaybook的ICIR分析:量化因子测试入门指南

从0到1读懂QuantsPlaybook的ICIR分析:量化因子测试入门指南 【免费下载链接】QuantsPlaybook 量化研究-券商金工研报复现 项目地址: https://gitcode.com/GitHub_Trending/qu/QuantsPlaybook "这个因子到底还有没有用?"这是做量化因子检… · 2026/9/24 18:02:26

降ai率的工具免费哪个改得快?2026年10款降AIGC软件实测测评,先用免费额度试再决定花不花钱!
降ai率的工具免费哪个改得快?2026年10款降AIGC软件实测测评,先用免费额度试再决定花不花钱!

降ai率的工具免费哪个改得快?2026年10款降AIGC软件实测测评,先用免费额度试再决定花不花钱! 离提交还剩10天,AI率71.6%,免费的那部分能帮你走到哪一步 土木工程的学妹上周半夜给我发消息,开口第一句就是问… · 2026/9/24 18:02:26

半导体AMHS垂直升降平台厂家怎么选?Vertical Transfer主要看哪些参数
半导体AMHS垂直升降平台厂家怎么选?Vertical Transfer主要看哪些参数

# “半导体垂直升降平台”这个词在不同项目里指向不同设备。有些用于工艺设备内部,有些承担洁净物流里的垂直转运。需求不分清,选型很容易跑偏。 铠铂科技的Vertical Transfer属于AMHS物流系统,主要负责轨道层与地面层之间的垂直移动&#xf… · 2026/9/24 18:02:26

ai写作痕迹检测工具哪个好?2026年12款降AI工具逐家对比,重复率和AI率一起降到合格线!
ai写作痕迹检测工具哪个好?2026年12款降AI工具逐家对比,重复率和AI率一起降到合格线!

ai写作痕迹检测工具哪个好?2026年12款降AI工具逐家对比,重复率和AI率一起降到合格线! 离答辩只剩10天的那个晚上,学弟把一张知网报告截图甩给我,开口就问ai写作痕迹检测工具哪个好,他数字媒体艺术本科&… · 2026/9/24 18:02:20

医疗器械企业,需要什么样的AI落地?
医疗器械企业,需要什么样的AI落地?

集采深化、监管趋严、成本高企——三股力量正把医疗器械产业推向数智化转型。但我们发现,很多器械企业老板一谈AI,第一反应就是"上机器视觉质检"“做设备预测性维护”。结果投入大、周期长,还要过三类证。 其实,对绝大多… · 2026/9/24 18:02:20

免费降aigc率的网站选哪个不翻车?10款降AI工具实测测评,先用免费额度试再决定花不花钱!
免费降aigc率的网站选哪个不翻车?10款降AI工具实测测评,先用免费额度试再决定花不花钱!

免费降aigc率的网站选哪个不翻车?10款降AI工具实测测评,先用免费额度试再决定花不花钱! 2026年这一届最难受的地方,是查重合格了还得再过一道AIGC检测,两份报告两个数,缺一个都定不了稿。学弟学的是化学工… · 2026/9/24 18:02:20

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码