Cassandra

Code

1from kern.agent import Agent
2from kern.knowledge.embedder.openai import OpenAIEmbedder
3from kern.knowledge.knowledge import Knowledge
4from kern.vectordb.cassandra import Cassandra
5
6try:
7 from cassandra.cluster import Cluster # type: ignore
8except (ImportError, ModuleNotFoundError):
9 raise ImportError(
10 "Could not import cassandra-driver python package.Please install it with pip install cassandra-driver."
11 )
12
13cluster = Cluster()
14
15session = cluster.connect()
16session.execute(
17 """
18 CREATE KEYSPACE IF NOT EXISTS testkeyspace
19 WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }
20 """
21)
22vector_db = Cassandra(
23 table_name="recipes",
24 keyspace="testkeyspace",
25 session=session,
26 embedder=OpenAIEmbedder(
27 dimensions=1024,
28 ),
29)
30
31knowledge = Knowledge(
32 name="My Cassandra Knowledge Base",
33 vector_db=vector_db,
34)
35
36knowledge.insert(
37 name="Recipes",
38 url="https://kern-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf",
39 metadata={"doc_type": "recipe_book"},
40)
41
42agent = Agent(
43 knowledge=knowledge,
44)
45
46agent.print_response(
47 "What are the health benefits of Khao Niew Dam Piek Maphrao Awn?",
48 markdown=True,
49 show_full_reasoning=True,
50)
51
52vector_db.delete_by_name("Recipes")
53# or
54vector_db.delete_by_metadata({"doc_type": "recipe_book"})

Usage

Set up your virtual environment

1uv venv --python 3.12
2source .venv/bin/activate
1uv venv --python 3.12
2.venv\Scripts\activate

Install dependencies

1uv pip install -U cassandra-driver pypdf openai kern-ai

Run Cassandra

1docker run -d \
2--name cassandra-db \
3-p 9042:9042 \
4cassandra:latest

Set environment variables

1export CASSANDRA_HOST="localhost"
2export CASSANDRA_PORT="9042"
3export CASSANDRA_USER="cassandra"
4export CASSANDRA_PASSWORD="cassandra"
5export OPENAI_API_KEY=xxx

Run Agent

1python cookbook/08_knowledge/vector_db/cassandra_db/cassandra_db.py