Cassandra Async

Code

1import asyncio
2
3from kern.agent import Agent
4from kern.knowledge.embedder.mistral import MistralEmbedder
5from kern.knowledge.knowledge import Knowledge
6from kern.models.mistral import MistralChat
7from kern.vectordb.cassandra import Cassandra
8
9try:
10 from cassandra.cluster import Cluster # type: ignore
11except (ImportError, ModuleNotFoundError):
12 raise ImportError(
13 "Could not import cassandra-driver python package.Please install it with pip install cassandra-driver."
14 )
15
16cluster = Cluster()
17
18session = cluster.connect()
19session.execute(
20 """
21 CREATE KEYSPACE IF NOT EXISTS testkeyspace
22 WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }
23 """
24)
25
26knowledge = Knowledge(
27 vector_db=Cassandra(
28 table_name="recipes",
29 keyspace="testkeyspace",
30 session=session,
31 embedder=MistralEmbedder(),
32 ),
33)
34
35agent = Agent(
36 model=MistralChat(),
37 knowledge=knowledge,
38)
39
40if __name__ == "__main__":
41 asyncio.run(
42 knowledge.ainsert(url="https://kern.ndx.rocks/introduction/agents.md")
43 )
44
45 asyncio.run(
46 agent.aprint_response(
47 "What is the purpose of an Kern Agent?",
48 markdown=True,
49 )
50 )

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 mistralai 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 MISTRAL_API_KEY="your-mistral-api-key"

Run Agent

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